이 페이지에서

ScxmlStateMachine QML Type

SCXML 파일에서 생성된 상태 머신에 대한 인터페이스를 제공합니다. 더 보기...

Import Statement: import QtScxml 6.12
In C++: QScxmlStateMachine

속성

신호

방법

상세 설명

ScxmlStateMachine 유형은 상태 차트 XML(SCXML)을 구현한 것입니다.

SCXML 파일에 정의된 모든 상태는 이 유형의 속성으로 접근할 수 있습니다. 이러한 속성은 부울 값이며, 해당 상태가 활성 상태인지 비활성 상태인지를 나타냅니다.

속성 설명

dataModel : ScxmlDataModel

이 상태 머신에 사용될 데이터 모델입니다.

SCXML 데이터 모델은 SCXML 사양 - 5. 데이터 모델 및 데이터 조작에 설명되어 있습니다. 지원되는 데이터 모델에 대한 자세한 내용은 SCXML 준수 항목을 참조하십시오.

상태 머신이 이미 initialized 된 상태에서 데이터 모델을 변경하는 것은 SCXML 표준에 명시되어 있지 않으며, 정의되지 않은 동작을 초래합니다.

‘ QScxmlDataModel ’, ‘ QScxmlNullDataModel ’ 및 ‘ QScxmlCppDataModel ’항목도 참조하십시오 .

initialValues : var

데이터 모델 설정에 사용될 초기값입니다.

initialized : bool [read-only]

이 읽기 전용 속성은 상태 머신이 초기화된 경우 ` true `로 설정되며, 그렇지 않은 경우 ` false `로 설정됩니다.

invoked : bool [read-only]

상태 머신이 외부 상태 머신에서 호출되었는지 여부.

이 읽기 전용 속성은 상태 머신이 ` <invoke> ` 요소를 사용하여 서비스로 시작된 경우 ` true `로 설정되며, 그 외의 경우에는 ` false `로 설정됩니다.

invokedServices : list [read-only]

메인 상태 머신에서 호출된(재귀적으로 호출되었을 수도 있는) SCXML 서비스 목록입니다.

loader : Loader

현재 상태 머신의 URI를 해결하고 불러오는 데 사용되는 로더입니다.

name : string [read-only]

<scxml> 태그의 name 속성으로 설정된 상태 머신의 이름입니다.

parseErrors : var [read-only]

SCXML 파일에서 상태 머신을 생성하는 과정에서 발생한 구문 분석 오류 목록입니다.

running : bool

이 상태 머신의 현재 상태.

sessionId : string [read-only]

현재 상태 머신의 세션 ID입니다.

세션 ID는 상위 및 하위 상태 기계 간의 메시지 라우팅에 사용됩니다. 상태 기계가 ` <invoke> ` 요소에 의해 시작되는 경우, 해당 상태 기계가 전송하는 모든 이벤트의 ` invokeid ` 필드에는 세션 ID가 설정됩니다. 상태 머신은 이벤트의 출처( <send> 요소의 target 또는 targetexpr 속성으로 설정됨)를 사용하여 메시지를 올바른 자식 상태 머신으로 전달합니다.

신호(Signal) 문서

finished()

이 신호는 상태 머신이 최상위 최종 상태에 도달했을 때 발생합니다.

이에 해당하는 신호 핸들러는 onFinished() 입니다.

참고: 해당 핸들러는 onFinished 입니다.

log(string label, string msg)

SCXML에서 <log> 태그가 사용된 경우 이 신호가 발생합니다. label 는 <log> 태그의 label 속성 값입니다. msg 는 <log> 태그의 expr 속성이 평가된 값입니다. expr 속성이 없는 경우, 빈 문자열이 반환됩니다.

해당 신호 핸들러는 onLog() 입니다.

참고: 해당 핸들러는 onLog 입니다.

reachedStableState()

이 신호는 매크로 단계가 끝날 때 이벤트 큐가 비어 있거나 최종 상태에 도달했을 때 발생합니다.

이에 해당하는 신호 핸들러는 onreachedStableState() 입니다.

참고: 해당 핸들러는 onReachedStableState 입니다.

메서드 문서

list<string> activeStateNames(bool compress)

활성 상태의 목록을 가져옵니다.

상태가 활성 상태일 때, 정의상 해당 상태의 모든 상위 상태도 활성 상태입니다. ` compress `가 ` true `(기본값)인 경우, 상위 상태는 필터링되어 리프 상태만 반환됩니다. ` false`인 경우, 활성 상태의 전체 목록이 반환됩니다.

void cancelDelayedEvent(string sendId)

지정된 ` sendId`을 사용하여 지연된 이벤트를 취소합니다.

bool init()

<data> 요소의 초기값을 설정하고, <scxml> 태그 내의 <script> 태그를 모두 실행하여 상태 머신을 초기화합니다. 초기 데이터 값은 initialValues 속성에서 가져옵니다.

구문 분석 오류가 발생하거나 초기화 단계 중 하나라도 실패하면 false 를 반환합니다. 그 외의 경우에는 true 를 반환합니다.

bool isActive(string scxmlStateName)

scxmlStateName 로 지정된 상태가 활성 상태인 경우 ` true `를 반환하고, 그렇지 않은 경우 ` false `를 반환합니다.

bool isDispatchableTarget(string target)

이 상태 머신에서 target 으로 전송되는 메시지를 발송할 수 있는 경우, ` true `를 반환합니다.

유효한 대상은 다음과 같습니다:

  • #_parent 현재 상태 기계가 <invoke>
  • #_internal 현재 상태 머신의 경우
  • #_scxml_sessionid sessionid 는 현재 상태 머신의 세션 ID입니다
  • #_servicename, 여기서 servicename 는 이 상태 머신이 <invoke> 를 사용하여 시작한 서비스의 ID 또는 이름입니다

void start()

이 상태 머신을 시작합니다. 이 머신은 구성을 초기화하고 초기 상태로 전환합니다. 최상위 최종 상태에 진입하면, 이 머신은 finished() 신호를 출력합니다.

stop() 및 finished()도 참조하십시오 .

list<string> stateNames(bool compress)

모든 주의 이름 목록을 가져옵니다.

compress 가 true (기본값)인 경우, 자식 상태를 포함하는 상태는 필터링되어 리프 상태 만 반환됩니다. false 인 경우, 모든 상태의 전체 목록이 반환됩니다.

반환된 목록에는 중첩된 상태 머신의 상태는 포함되지 않습니다.

참고: 목록 내 상태 이름의순서는 SCXML 문서에서 상태가 나타난 순서와 동일합니다.

void stop()

이 상태 머신을 중지합니다. 이 상태 머신은 더 이상 상태 전환을 수행하지 않습니다. 이 상태 머신의 ` running ` 속성은 ` false`로 설정됩니다.

start() 및 finished()도 참조하십시오 .

void submitEvent(event)

이벤트의 우선 순위에 따라 SCXML 이벤트 event 를 내부 또는 외부 이벤트 큐에 제출합니다.

지연 시간이 설정된 경우, 타임아웃이 경과한 후에 이벤트가 전달 대기열에 추가됩니다. 상태 머신은 이벤트에 대한 소유권을 확보한 후 처리가 완료되면 해당 이벤트를 삭제합니다.

QScxmlEvent도 참조하십시오 .

void submitEvent(string eventName, var data)

지정된 eventName 를 이름으로, data 를 페이로드 데이터(선택 사항)로 사용하여 외부 이벤트를 생성하고 제출하는 유틸리티 메서드입니다.

© 2026 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.