ScxmlStateMachine QML Type
Bietet eine Schnittstelle zu den aus SCXML-Dateien erstellten Zustandsmaschinen. Mehr...
| Import Statement: | import QtScxml 6.12 |
| In C++: | QScxmlStateMachine |
Eigenschaften
- dataModel : ScxmlDataModel
- initialValues : var
- initialized : bool
- invoked : bool
- invokedServices : list
- loader : Loader
- name : string
- parseErrors : var
- running : bool
- sessionId : string
Signale
- finished()
- log(string label, string msg)
- reachedStableState()
Methoden
- list<string> activeStateNames(bool compress)
- void cancelDelayedEvent(string sendId)
- bool init()
- bool isActive(string scxmlStateName)
- bool isDispatchableTarget(string target)
- void start()
- list<string> stateNames(bool compress)
- void stop()
- void submitEvent(event)
- void submitEvent(string eventName, var data)
Ausführliche Beschreibung
Der Typ „ScxmlStateMachine“ ist eine Implementierung des State Chart XML (SCXML).
Alle in der SCXML-Datei definierten Zustände sind als Eigenschaften dieses Typs zugänglich. Diese Eigenschaften sind boolesche Werte und geben an, ob der Zustand aktiv oder inaktiv ist.
Dokumentation zu den Eigenschaften
dataModel : ScxmlDataModel
Das für diese Zustandsmaschine zu verwendende Datenmodell.
SCXML-Datenmodelle werden in der SCXML-Spezifikation – 5 „Datenmodell und Datenbearbeitung“ beschrieben. Weitere Informationen zu unterstützten Datenmodellen finden Sie unter „SCXML-Konformität“.
Das Ändern des Datenmodells, nachdem die Zustandsmaschine bereits „ initialized “ ist, ist im SCXML-Standard nicht festgelegt und führt zu undefiniertem Verhalten.
Siehe auch „ QScxmlDataModel “, „ QScxmlNullDataModel “ und „ QScxmlCppDataModel “.
initialValues : var
Die Anfangswerte, die zum Einrichten des Datenmodells verwendet werden sollen.
initialized : bool [read-only]
Diese schreibgeschützte Eigenschaft wird auf „ true “ gesetzt, wenn die Zustandsmaschine initialisiert wurde, andernfalls auf „ false “.
invoked : bool [read-only]
Ob die Zustandsmaschine von einer übergeordneten Zustandsmaschine aufgerufen wurde.
Diese schreibgeschützte Eigenschaft ist auf „ true “ gesetzt, wenn die Zustandsmaschine als Dienst mit dem Element „ <invoke> “ gestartet wurde, andernfalls auf „ false “.
invokedServices : list [read-only]
Eine Liste der SCXML-Dienste, die von der Hauptzustandsmaschine (möglicherweise rekursiv) aufgerufen wurden.
loader : Loader
Der Loader, der derzeit zum Auflösen und Laden von URIs für die Zustandsmaschine verwendet wird.
name : string [read-only]
Der Name der Zustandsmaschine, wie er durch das Attribut „name“ des Tags „ <scxml> “ festgelegt wurde.
parseErrors : var [read-only]
Die Liste der Parsing-Fehler, die beim Erstellen einer Zustandsmaschine aus einer SCXML-Datei aufgetreten sind.
running : bool
Der aktuelle Zustand dieser Zustandsmaschine.
sessionId : string [read-only]
Die Sitzungs-ID der aktuellen Zustandsmaschine.
Die Sitzungs-ID wird für die Nachrichtenweiterleitung zwischen über- und untergeordneten Zustandsmaschinen verwendet. Wird eine Zustandsmaschine durch ein ` <invoke> `-Element gestartet, wird bei jedem von ihr gesendeten Ereignis das Feld ` invokeid ` auf die Sitzungs-ID gesetzt. Die Zustandsmaschine verwendet den Ursprung eines Ereignisses (der durch das Attribut „target“ oder „targetexpr“ in einem „ <send> “-Element festgelegt wird), um Nachrichten an die richtige untergeordnete Zustandsmaschine weiterzuleiten.
Signal-Dokumentation
finished()
Dieses Signal wird ausgegeben, wenn die Zustandsmaschine einen Endzustand der obersten Ebene erreicht.
Der zugehörige Signal-Handler lautet „ onFinished() “.
Hinweis: Der zugehörige Handler ist onFinished.
log(string label, string msg)
Dieses Signal wird ausgelöst, wenn im SCXML ein <log> -Tag verwendet wird. label ist der Wert des Attributs „label“ des <log> -Tags. msg ist der Wert des ausgewerteten Attributs „expr“ des <log> -Tags. Wenn kein „expr“-Attribut vorhanden ist, wird eine leere Zeichenkette zurückgegeben.
Der entsprechende Signal-Handler ist „ onLog() “.
Hinweis: Der entsprechende Handler ist „ onLog “.
reachedStableState()
Dieses Signal wird ausgegeben, wenn die Ereigniswarteschlange am Ende eines Makroschritts leer ist oder wenn ein Endzustand erreicht wurde.
Der zugehörige Signal-Handler lautet „ onreachedStableState() “.
Hinweis: Der zugehörige Handler ist „ onReachedStableState “.
Methodendokumentation
list<string> activeStateNames(bool compress)
Ruft eine Liste der Namen aller aktiven Zustände ab.
Ist ein Zustand aktiv, sind per Definition auch alle seine übergeordneten Zustände aktiv. Wenn „ compress “ auf „ true “ gesetzt ist (Standard), werden die übergeordneten Zustände herausgefiltert und nur die Endzustände zurückgegeben. Ist der Wert „ false “, wird die vollständige Liste der aktiven Zustände zurückgegeben.
void cancelDelayedEvent(string sendId)
Bricht ein verzögertes Ereignis mit dem angegebenen ` sendId` ab.
bool init()
Initialisiert die Zustandsmaschine, indem die Anfangswerte für die Elemente „ <data> “ festgelegt und alle „ <script> “-Tags des „ <scxml> “-Tags ausgeführt werden. Die Anfangswerte der Daten werden aus der Eigenschaft „ initialValues “ übernommen.
Gibt „ false “ zurück, wenn Parsing-Fehler auftreten oder einer der Initialisierungsschritte fehlschlägt. Andernfalls wird „ true “ zurückgegeben.
bool isActive(string scxmlStateName)
Gibt „ true “ zurück, wenn der durch „ scxmlStateName “ angegebene Status aktiv ist, andernfalls „ false “.
bool isDispatchableTarget(string target)
Gibt „ true “ zurück, wenn eine Nachricht an „ target “ von dieser Zustandsmaschine versendet werden kann.
Gültige Ziele sind:
#_parentdie übergeordnete Zustandsmaschine, wenn die aktuelle Zustandsmaschine durch<invoke>#_internalfür die aktuelle Zustandsmaschine#_scxml_sessionid, wobei „sessionid“ die Sitzungs-ID der aktuellen Zustandsmaschine ist#_servicename, wobeiservicenamedie ID oder der Name eines Dienstes ist, der von dieser Zustandsmaschine mit<invoke>gestartet wurde
void start()
Startet diese Zustandsmaschine. Die Maschine setzt ihre Konfiguration zurück und wechselt in den Anfangszustand. Wenn ein endgültiger Zustand der obersten Ebene erreicht wird, gibt die Maschine das Signal „ finished()“ aus.
Siehe auch „ stop()“ und „ finished()“.
list<string> stateNames(bool compress)
Ruft eine Liste mit den Namen aller Bundesländer ab.
Wenn „ compress “ auf „ true “ gesetzt ist (Standardeinstellung), werden die Zustände, die untergeordnete Zustände enthalten, herausgefiltert und nur die Blattzustände zurückgegeben. Ist der Wert „ false “, wird die vollständige Liste aller Zustände zurückgegeben.
Die zurückgegebene Liste enthält keine Zustände von möglicherweise verschachtelten Zustandsmaschinen.
Hinweis: Die Reihenfolge der Zustandsnamen in der Liste entspricht der Reihenfolge, in der die Zustände im SCXML-Dokument vorkamen.
void stop()
Hält diese Zustandsmaschine an. Die Maschine führt keine weiteren Zustandsübergänge mehr aus. Ihre Eigenschaft „ running “ wird auf „ false “ gesetzt.
Siehe auch „ start()“ und „ finished()“.
void submitEvent(event)
Übermittelt das SCXML-Ereignis „ event “ je nach Priorität des Ereignisses an die interne oder externe Ereigniswarteschlange.
Wenn eine Verzögerung festgelegt ist, wird das Ereignis zur Übermittlung in die Warteschlange gestellt, sobald die Zeitüberschreitung abgelaufen ist. Die Zustandsmaschine übernimmt die Verantwortung für das Ereignis und löscht es nach der Verarbeitung.
Siehe auch „ QScxmlEvent “.
void submitEvent(string eventName, var data)
Eine Hilfsmethode zum Erstellen und Senden eines externen Ereignisses mit dem angegebenen „ eventName “ als Namen und „ data “ als Nutzdaten (optional).
© 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.