Spec-Zone.ru › Qt 5.9

Тип QML ScxmlStateMachine

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

Оператор импорта: import QtScxml 5.8
С момента: 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, QScxmlEcmaScriptDataModel и QScxmlCppDataModel.

initialValues : var

Начальные значения для настройки модели данных.

initialized : bool

Это только для чтения свойство, установленное в true при инициализации автомата, false в противном случае.

invoked : bool

Вызван ли автомат из внешнего автомата.

Это только для чтения свойство, установленное в true при запуске автомата как службы с элементом <invoke>, false в противном случае.

invokedServices : список

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

loader : Loader

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

name : строка

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

parseErrors : var

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

running : bool

Состояние выполнения данного автомата.

sessionId : строка

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

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

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

finished()

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

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

log(строка label, строка msg)

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

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

reachedStableState()

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

Соответствующий обработчик сигнала — 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 может быть обработано данным автоматом.

Допустимые значения target:

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

start()

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

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

stateNames(bool compress)

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

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

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

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

stop()

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

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

submitEvent(string eventName, var 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-5.9/qml-qtscxml-scxmlstatemachine.html

Spec-Zone.ru

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