ScxmlStateMachine QML Type
Bietet eine Schnittstelle zu den aus SCXML-Dateien erstellten Zustandsautomaten. Mehr...
| Import Statement: | import QtScxml 6.11 |
| 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)
Detaillierte Beschreibung
Der Typ ScxmlStateMachine ist eine Implementierung des State Chart XML (SCXML).
Alle Zustände, die in der SCXML-Datei definiert sind, sind als Eigenschaften dieses Typs zugänglich. Diese Eigenschaften sind boolesche Werte und geben an, ob der Zustand aktiv oder inaktiv ist.
Dokumentation der Eigenschaften
dataModel : ScxmlDataModel
Das Datenmodell, das für diesen Zustandsautomaten verwendet werden soll.
SCXML-Datenmodelle werden in SCXML-Spezifikation - 5 Datenmodell und Datenmanipulation beschrieben. Weitere Informationen zu unterstützten Datenmodellen finden Sie unter SCXML Compliance.
Das Ändern des Datenmodells, wenn der Zustandsautomat initialized ist, ist im SCXML-Standard nicht vorgesehen und führt zu undefiniertem Verhalten.
Siehe auch QScxmlDataModel, QScxmlNullDataModel, und QScxmlCppDataModel.
initialValues : var
Die Anfangswerte, die für die Einrichtung des Datenmodells verwendet werden sollen.
initialized : bool [read-only]
Diese schreibgeschützte Eigenschaft wird auf true gesetzt, wenn der Zustandsautomat initialisiert wurde, ansonsten auf false.
invoked : bool [read-only]
Ob der Zustandsautomat von einem äußeren Zustandsautomaten aufgerufen wurde.
Diese schreibgeschützte Eigenschaft ist auf true gesetzt, wenn der Zustandsautomat als Dienst mit dem Element <invoke> gestartet wurde, ansonsten auf false.
invokedServices : list [read-only]
Eine Liste von SCXML-Diensten, die vom Hauptzustandsautomaten aus aufgerufen wurden (möglicherweise rekursiv).
loader : Loader
Der Loader, der derzeit zum Auflösen und Laden von URIs für den Zustandsautomaten verwendet wird.
name : string [read-only]
Der Name des Zustandsautomaten, wie er durch das Attribut name des Tags <scxml> festgelegt ist.
parseErrors : var [read-only]
Die Liste der Parse-Fehler, die beim Erstellen eines Zustandsautomaten aus einer SCXML-Datei aufgetreten sind.
running : bool
Der laufende Zustand dieser Zustandsmaschine.
sessionId : string [read-only]
Die Sitzungs-ID des aktuellen Zustandsautomaten.
Die Sitzungs-ID wird für die Weiterleitung von Nachrichten zwischen übergeordneten und untergeordneten Zustandsautomaten verwendet. Wenn ein Zustandsautomat durch ein <invoke> -Element gestartet wird, wird bei jedem Ereignis, das er sendet, das Feld invokeid auf die Sitzungs-ID gesetzt. Der Zustandsautomat verwendet den Ursprung eines Ereignisses (der durch das target- oder targettexpr-Attribut in einem <send> -Element festgelegt wird), um Nachrichten an den richtigen untergeordneten Zustandsautomaten zu senden.
Signal-Dokumentation
finished()
Dieses Signal wird ausgegeben, wenn der Zustandsautomat einen Endzustand der obersten Ebene erreicht.
Der entsprechende Signalhandler ist onFinished().
Hinweis: Der entsprechende Handler ist onFinished.
log(string label, string msg)
Dieses Signal wird ausgegeben, wenn ein <log> -Tag in SCXML verwendet wird. label ist der Wert des label-Attributs des <log> -Tags. msg ist der Wert des evaluierten expr-Attributs des <log> -Tags. Wenn kein expr-Attribut vorhanden ist, wird ein Null-String zurückgegeben.
Der entsprechende Signalhandler 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 wird.
Der entsprechende Signalhandler ist onreachedStableState().
Hinweis: Der entsprechende Handler ist onReachedStableState.
Dokumentation der Methode
list<string> activeStateNames(bool compress)
Ruft eine Liste der Zustandsnamen aller aktiven Zustände ab.
Wenn ein Zustand aktiv ist, sind alle übergeordneten Zustände per Definition aktiv. Wenn compress true ist (Standardeinstellung), werden die übergeordneten Zustände herausgefiltert und nur die Blatt-Zustände zurückgegeben. Bei 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 den Zustandsautomaten, indem er die Anfangswerte für <data> Elemente setzt und alle <script> Tags des <scxml> Tags ausführt. Die Anfangsdatenwerte werden der Eigenschaft initialValues entnommen.
Gibt false zurück, wenn Parse-Fehler auftreten oder wenn einer der Initialisierungsschritte fehlschlägt. Gibt andernfalls true zurück.
bool isActive(string scxmlStateName)
Gibt true zurück, wenn der durch scxmlStateName angegebene Zustand aktiv ist, andernfalls false.
bool isDispatchableTarget(string target)
Gibt true zurück, wenn eine Nachricht an target von diesem Zustandsautomaten versendet werden kann.
Gültige Ziele sind:
#_parentfür den übergeordneten Zustandsautomaten, wenn der aktuelle Zustandsautomat gestartet wurde von<invoke>#_internalfür den aktuellen Zustandsautomaten#_scxml_sessionidwobeisessioniddie Sitzungs-ID des aktuellen Zustandsautomaten ist#_servicename, wobeiservicenamedie ID oder der Name eines Dienstes ist, der von diesem Zustandsautomaten mit<invoke>gestartet wurde
void start()
Startet diesen Zustandsautomaten. Der Rechner setzt seine Konfiguration zurück und geht in den Ausgangszustand über. Wenn ein endgültiger Top-Level-Zustand erreicht ist, sendet der Automat das Signal finished().
Siehe auch stop() und finished().
list<string> stateNames(bool compress)
Ruft eine Liste der Zustandsnamen aller Zustände ab.
Wenn compress true ist (Standardeinstellung), werden die Zustände, die untergeordnete Zustände enthalten, herausgefiltert und nur die Blatt-Zustände zurückgegeben. Bei false wird die vollständige Liste aller Zustände zurückgegeben.
Die zurückgegebene Liste enthält nicht die Zustände möglicher verschachtelter Zustandsautomaten.
Hinweis: Die Reihenfolge der Zustandsnamen in der Liste entspricht der Reihenfolge, in der die Zustände im SCXML-Dokument vorkommen.
void stop()
Hält diesen Zustandsautomaten an. Der Rechner führt keine weiteren Zustandsübergänge aus. Seine Eigenschaft running wird auf false gesetzt.
Siehe auch start() und finished().
void submitEvent(event)
Übergibt das SCXML-Ereignis event je nach Priorität des Ereignisses an die interne oder externe Ereigniswarteschlange.
Wenn eine Verzögerung eingestellt ist, wird das Ereignis nach Ablauf der Zeitüberschreitung in die Warteschlange gestellt. Der Zustandsautomat übernimmt die Verantwortung für das Ereignis und löscht es nach der Verarbeitung.
Siehe auch QScxmlEvent.
void submitEvent(string eventName, var data)
Eine Dienstprogrammmethode zum Erstellen und Übermitteln 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.