ScxmlStateMachine QML Type
SCXML 파일에서 생성된 상태 머신에 대한 인터페이스를 제공합니다. 더 보기...
Import Statement: | import QtScxml 6.8 |
In C++: | 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(event)
- submitEvent(string eventName, var data)
상세 설명
ScxmlStateMachine 유형은 상태 차트 XML(SCXML)의 구현입니다.
SCXML 파일에 정의된 모든 상태는 이 유형의 프로퍼티로 액세스할 수 있습니다. 이러한 프로퍼티는 부울 값이며 상태가 활성 상태인지 비활성 상태인지를 나타냅니다.
속성 문서
dataModel : ScxmlDataModel |
이 상태 머신에 사용할 데이터 모델입니다.
SCXML 데이터 모델은 SCXML 사양 - 5 데이터 모델 및 데이터 조작에 설명되어 있습니다. 지원되는 데이터 모델에 대한 자세한 내용은 SCXML 규정 준수를 참조하세요.
상태 머신이 initialized 인 상태에서 데이터 모델을 변경하는 것은 SCXML 표준에 명시되어 있지 않으며 정의되지 않은 동작으로 이어집니다.
QScxmlDataModel, QScxmlNullDataModel, QScxmlCppDataModel도 참조하세요 .
initialValues : var |
데이터 모델을 설정하는 데 사용할 초기 값입니다.
initialized : bool |
이 읽기 전용 속성은 상태 머신이 초기화된 경우 true
로 설정되고, 그렇지 않은 경우 false
로 설정됩니다.
invoked : bool |
스테이트 머신이 외부 스테이트 머신에서 호출되었는지 여부.
이 읽기 전용 속성은 상태 머신이 <invoke>
요소가 있는 서비스로 시작된 경우 true
, 그렇지 않은 경우 false
로 설정됩니다.
invokedServices : list |
주 상태 머신에서 호출된(재귀적으로 호출되었을 수 있는) SCXML 서비스 목록입니다.
loader : Loader |
현재 상태 머신의 URI를 확인하고 로드하는 데 사용되는 로더입니다.
name : string |
<scxml>
태그의 이름 속성에 의해 설정된 상태 머신의 이름입니다.
parseErrors : var |
SCXML 파일에서 상태 머신을 만드는 동안 발생한 구문 분석 오류 목록입니다.
running : bool |
이 스테이트 머신의 실행 상태입니다.
sessionId : string |
현재 상태 머신의 세션 ID입니다.
세션 ID는 상위 및 하위 스테이트 머신 간의 메시지 라우팅에 사용됩니다. 상태 머신이 <invoke>
요소에 의해 시작되는 경우, 상태 머신이 보내는 모든 이벤트에는 invokeid
필드가 세션 ID로 설정됩니다. 스테이트 머신은 이벤트의 출처( <send>
요소의 target 또는 targetexpr 속성으로 설정됨)를 사용하여 올바른 하위 스테이트 머신으로 메시지를 발송합니다.
신호 문서
finished() |
이 신호는 스테이트 머신이 최상위 최종 상태에 도달할 때 발생합니다.
해당 신호 핸들러는 onFinished()
입니다.
참고: 해당 핸들러는 onFinished
입니다.
log(string label, string msg) |
<log>
label 은 태그의 <log>
label 속성 값이고, 은 태그의 평가된 msg <log>
expr 속성 값입니다. expr 속성이 없는 경우 null 문자열이 반환됩니다.
해당 신호 핸들러는 onLog()
입니다.
참고: 해당 핸들러는 onLog
입니다.
reachedStableState() |
이 신호는 매크로 단계가 끝날 때 이벤트 대기열이 비어 있거나 최종 상태에 도달할 때 발생합니다.
해당 신호 처리기는 onreachedStableState()
입니다.
참고: 해당 핸들러는 onReachedStableState
입니다.
메서드 문서
activeStateNames(bool compress) |
모든 활성 상태의 상태 이름 목록을 검색합니다.
상태가 활성화되면 정의에 따라 모든 상위 상태가 활성화됩니다. compress 이 true
(기본값)인 경우 부모 상태는 필터링되고 리프 상태만 반환됩니다. false
인 경우 활성 상태의 전체 목록이 반환됩니다.
cancelDelayedEvent(string sendId) |
지정된 sendId 으로 지연된 이벤트를 취소합니다.
init() |
<data>
요소의 초기 값을 설정하고 <scxml>
태그의 <script>
태그를 실행하여 상태 머신을 초기화합니다. 초기 데이터 값은 initialValues 속성에서 가져옵니다.
구문 분석 오류가 발생하거나 초기화 단계 중 하나라도 실패하면 false
을 반환합니다. 그렇지 않으면 true
을 반환합니다.
isActive(string scxmlStateName) |
scxmlStateName 으로 지정된 상태가 활성화된 경우 true
, 그렇지 않으면 false
을 반환합니다.
isDispatchableTarget(string target) |
이 상태 머신에서 target 으로 메시지를 보낼 수 있는 경우 true
을 반환합니다.
유효한 대상은
#_parent
현재 상태 머신이 다음에 의해 시작된 경우 상위 상태 머신의 경우<invoke>
#_internal
에 의해 시작된 경우 현재 상태 머신의 경우#_scxml_sessionid
, 여기서sessionid
은 현재 상태 머신의 세션 ID입니다.#_servicename
에서servicename
는 이 스테이트 머신이<invoke>
로 시작한 서비스의 ID 또는 이름입니다.
start() |
stateNames(bool compress) |
모든 상태의 상태 이름 목록을 검색합니다.
compress 이 true
(기본값)인 경우 하위 상태를 포함하는 상태는 필터링되고 리프 상태만 반환됩니다. false
인 경우 모든 상태의 전체 목록이 반환됩니다.
반환된 목록에는 중첩 가능한 상태 머신의 상태는 포함되지 않습니다.
참고: 목록에 있는 상태 이름의 순서는 SCXML 문서에서 상태가 발생한 순서입니다.
stop() |
submitEvent(event) |
이벤트의 우선순위에 따라 내부 또는 외부 이벤트 대기열에 SCXML 이벤트 event 를 제출합니다.
지연이 설정된 경우 이벤트는 시간 초과가 지난 후 전달을 위해 대기열에 대기합니다. 상태 머신이 이벤트의 소유권을 가져와 처리 후 삭제합니다.
QScxmlEvent도 참조하세요 .
submitEvent(string eventName, var data) |
지정된 eventName 을 이름으로, data 을 페이로드 데이터로 사용하여 외부 이벤트를 만들고 제출하는 유틸리티 메서드(선택 사항).
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.