Тип QML ScxmlStateMachine
Предоставляет интерфейс к автоматам состояний, созданным из файлов SCXML. Подробнее...
| Заявление импорта: | import QtScxml 6.1 |
| С момента: | Qt 5.7 |
| Создаёт экземпляр: | QScxmlStateMachine |
Свойства
- dataModel : ScxmlDataModel
- initialValues : var
- initialized : bool
- invoked : bool
- invokedServices : список
- loader : Loader
- name : строка
- parseErrors : var
- running : bool
- sessionId : строка
Сигналы
- finished()
- log(строка label, строка msg)
- reachedStableState()
Методы
- activeStateNames(bool compress)
- cancelDelayedEvent(строка sendId)
- init()
- isActive(строка scxmlStateName)
- isDispatchableTarget(строка target)
- start()
- stateNames(bool compress)
- stop()
- submitEvent(строка eventName, var data)
- submitEvent(event)
Подробное описание
Тип ScxmlStateMachine является реализацией State Chart XML (SCXML).
Все состояния, определённые в файле SCXML, доступны как свойства этого типа. Эти свойства — булевы значения и указывают, активно или неактивно состояние.
Документация по свойствам
dataModel : ScxmlDataModel
Модель данных, используемая для этого автомата состояний.
Модели данных SCXML описаны в Спецификации SCXML - 5 Модель данных и манипулирование данными. Более подробная информация о поддерживаемых моделях данных приведена в Соответствии SCXML.
Изменение модели данных, когда автомат состояний уже инициализирован, не определено в стандарте SCXML и приводит к неопределённому поведению.
См. также QScxmlDataModel, QScxmlNullDataModel и QScxmlCppDataModel.
initialValues : var
Начальные значения, используемые для настройки модели данных.
initialized : bool
Это только для чтения свойство устанавливается в true если автомат состояний был инициализирован, в false в противном случае.
invoked : bool
Вызван ли автомат состояний из внешнего автомата состояний.
Это только для чтения свойство устанавливается в true когда автомат состояний был запущен как служба с элементом <invoke>, в false в противном случае.
invokedServices : список
Список SCXML-служб, которые были вызваны из основного автомата состояний (возможно, рекурсивно).
loader : Loader
Загрузчик, который в настоящее время используется для разрешения и загрузки URL-адресов для автомата состояний.
name : строка
Имя автомата состояний, заданное атрибутом name тега <scxml>.
parseErrors : var
Список ошибок разбора, возникших при создании автомата состояний из файла SCXML.
running : bool
Состояние выполнения этого автомата состояний.
sessionId : строка
Идентификатор сеанса текущего автомата состояний.
Идентификатор сеанса используется для маршрутизации сообщений между родительским и дочерними автоматами состояний. Если автомат состояний запущен элементом <invoke>, любое отправленное им событие будет содержать поле invokeid, установленное в идентификатор сеанса. Автомат состояний будет использовать происхождение события (которое задаётся атрибутом target или targetexpr в элементе <send>) для отправки сообщений в соответствующий дочерний автомат состояний.
Документация по сигналам
finished()
Этот сигнал испускается, когда автомат состояний достигает конечного состояния верхнего уровня.
Соответствующий обработчик сигналов — onFinished().
Примечание: Соответствующий обработчик — onFinished.
log(строка label, строка msg)
Этот сигнал испускается, если используется тег <log> в SCXML. label — значение атрибута label тега <log>. msg — значение вычисленного атрибута expr тега <log>. Если атрибут expr отсутствует, возвращается пустая строка.
Соответствующий обработчик сигналов — onLog().
Примечание: Соответствующий обработчик — onLog.
reachedStableState()
Этот сигнал испускается, когда очередь событий пуста в конце шага макроса или когда достигнуто конечное состояние.
Соответствующий обработчик сигналов — onreachedStableState().
Примечание: Соответствующий обработчик — onReachedStableState.
Документация по методам
activeStateNames(bool compress)
Возвращает список имён состояний всех активных состояний.
Когда состояние активно, все его родительские состояния также активны по определению. Если compress имеет значение true (по умолчанию), родительские состояния отфильтровываются, и возвращаются только листовые состояния. Если оно имеет значение false, возвращается весь список активных состояний.
cancelDelayedEvent(строка sendId)
Отменяет отложенное событие с указанным sendId.
init()
Инициализирует автомат состояний, устанавливая начальные значения для элементов <data> и выполняя все теги <script> тега <scxml>. Начальные значения данных берутся из свойства initialValues.
Возвращает false если возникают ошибки разбора или любой из шагов инициализации завершается неудачно. Возвращает true в противном случае.
isActive(строка scxmlStateName)
Возвращает true если состояние, заданное scxmlStateName, активно, в false в противном случае.
isDispatchableTarget(строка target)
Возвращает true если сообщение для target может быть обработано этим автоматом состояний.
Допустимые адресаты:
-
#_parentдля родительского автомата состояний, если текущий автомат состояний запущен элементом<invoke> -
#_internalдля текущего автомата состояний -
#_scxml_sessionid, гдеsessionid— идентификатор сеанса текущего автомата состояний -
#_servicename, гдеservicename— идентификатор или имя службы, запущенной с помощью<invoke>этим автоматом состояний
start()
Запускает этот автомат состояний. Автомат сбрасывает свою конфигурацию и переходит в начальное состояние. При переходе в конечное состояние верхнего уровня автомат испускает сигнал finished().
См. также stop() и finished().
stateNames(bool compress)
Возвращает список имён всех состояний.
When compress is true (the default), the states that contain child states are filtered out and only the leaf states are returned. When it is false, the full list of all states is returned.
The returned list does not contain the states of possible nested state machines.
Note: The order of the state names in the list is the order in which the states occurred in the SCXML document.
stop()
Stops this state machine. The machine will not execute any further state transitions. Its running property is set to false.
See also start() and finished().
submitEvent(string eventName, var data)
A utility method to create and submit an external event with the specified eventName as the name and data as the payload data (optional).
submitEvent(event)
Submits the SCXML event event to the internal or external event queue depending on the priority of the event.
When a delay is set, the event will be queued for delivery after the timeout has passed. The state machine takes ownership of the event and deletes it after processing.
See also QScxmlEvent.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtscxml-scxmlstatemachine.html