Spec-Zone.ru › Qt

Тип QML ScxmlStateMachine

Предоставляет интерфейс к состояниям автомата, созданным из файлов SCXML. Подробнее...

Заявление импорта: import QtScxml
С: Qt 5.7
Инициализирует: QScxmlStateMachine
  • Список всех членов, включая унаследованные

Свойства

  • dataModel : ScxmlDataModel
  • initialValues : var
  • initialized : bool
  • invoked : bool
  • invokedServices : list
  • loader : Loader
  • name : string
  • parseErrors : var
  • running : bool
  • sessionId : string

Сигналы

  • finished()
  • log(string label, string msg)
  • reachedStableState()

Методы

  • activeStateNames(bool compress)
  • cancelDelayedEvent(string sendId)
  • init()
  • isActive(string scxmlStateName)
  • isDispatchableTarget(string target)
  • start()
  • stateNames(bool compress)
  • stop()
  • submitEvent(string 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 : list

Список SCXML-сервисов, которые были вызваны из основного автомата состояний (возможно, рекурсивно).

loader : Loader

Загрузчик, который используется в данный момент для разрешения и загрузки URL-адресов для автомата состояний.

name : string

Имя автомата состояний, заданное атрибутом name тега <scxml>.

parseErrors : var

Список ошибок разбора, произошедших во время создания автомата состояний из файла SCXML.

running : bool

Состояние работы этого автомата состояний.

sessionId : string

Идентификатор сессии текущего автомата состояний.

Идентификатор сессии используется для маршрутизации сообщений между родительским и дочерним автоматами состояний. Если автомат состояний запущен с элементом <invoke>, все отправляемые им события будут иметь поле invokeid установленное в идентификатор сессии. Автомат состояний будет использовать источник события (который задаётся атрибутом target или targetexpr в элементе <send>), чтобы отправлять сообщения в правильный дочерний автомат состояний.

Документация по сигналам

finished()

Этот сигнал испускается, когда автомат состояний достигает конечного состояния верхнего уровня.

Соответствующий обработчик сигналов — onFinished().

Примечание: Соответствующий обработчик — onFinished.

log(string label, string msg)

Этот сигнал испускается, если используется тег <log> в SCXML. label — значение атрибута label тега <log>. msg — значение вычисленного атрибута expr тега <log>. Если атрибут expr отсутствует, возвращается пустая строка.

Соответствующий обработчик сигналов — onLog().

Примечание: Соответствующий обработчик — onLog.

reachedStableState()

Этот сигнал испускается, когда очередь событий пуста в конце шага макроса или когда достигнуто конечное состояние.

Соответствующий обработчик сигналов — onreachedStableState().

Примечание: Соответствующий обработчик — onReachedStableState.

Документация по методам

activeStateNames(bool compress)

Возвращает список имён состояний всех активных состояний.

Когда состояние активно, все его родительские состояния по определению также активны. Когда compress — true (по умолчанию), родительские состояния отфильтровываются, и возвращаются только листовые состояния. Когда оно false, возвращается полный список активных состояний.

cancelDelayedEvent(string sendId)

Отменяет отложенное событие с указанным sendId.

init()

Инициализирует автомат состояний, устанавливая начальные значения для элементов <data> и выполняя любые теги <script> тега <scxml>. Начальные значения данных берутся из свойства initialValues.

Возвращает false если произошли ошибки разбора или какой-либо из шагов инициализации завершился неудачно. Возвращает true в противном случае.

isActive(string scxmlStateName)

Возвращает true если состояние, заданное scxmlStateName, активно, false в противном случае.

isDispatchableTarget(string target)

Возвращает true если сообщение в target может быть отправлено этим автоматом состояний.

Допустимые целевые адреса:

  • #_parent для родительского автомата состояний, если текущий автомат состояний запущен элементом <invoke>
  • #_internal для текущего автомата состояний
  • #_scxml_sessionid, где sessionid — идентификатор сессии текущего автомата состояний
  • #_servicename, где servicename — идентификатор или имя службы, запущенной с помощью <invoke> этим автоматом состояний

start()

Запускает этот автомат состояний. Автомат сбрасывает свою конфигурацию и переходит в начальное состояние. Когда введено конечное состояние верхнего уровня, автомат испускает сигнал finished().

См. также stop() и finished().

stateNames(bool compress)

Возвращает список имён всех состояний.

Когда compress имеет значение true (по умолчанию), состояния, содержащие дочерние состояния, отфильтровываются, и возвращаются только листовые состояния. Когда оно равно false, возвращается полный список всех состояний.

Возвращаемый список не содержит состояний возможных вложенных автоматов состояний.

Примечание: Порядок имен состояний в списке соответствует порядку их появления в документе SCXML.

stop()

Останавливает этот автомат состояний. Автомат больше не будет выполнять дальнейшие переходы состояний. Его свойство running устанавливается в значение false.

См. также start() и finished().

submitEvent(строка eventName, переменная data)

Утилитарный метод для создания и отправки внешнего события с заданным именем eventName и данными data в качестве полезной нагрузки (необязательно).

submitEvent(event)

Отправляет событие SCXML event во внутреннюю или внешнюю очередь событий в зависимости от приоритета события.

Если установлен задержки, событие будет помещено в очередь для доставки после истечения таймаута. Автомат состояний берет событие на себя и удаляет его после обработки.

См. также QScxmlEvent.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtscxml-scxmlstatemachine.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API