ScxmlStateMachine QML Type
Bietet eine Schnittstelle zu den aus SCXML-Dateien erstellten Zustandsautomaten. Mehr...
Import Statement: | import QtScxml 6.8 |
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
- 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)
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 zum Einrichten des Datenmodells verwendet werden sollen.
initialized : bool |
Diese schreibgeschützte Eigenschaft wird auf true
gesetzt, wenn der Zustandsautomat initialisiert wurde, andernfalls auf false
.
invoked : bool |
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, andernfalls auf false
.
invokedServices : list |
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 |
Der Name des Zustandsautomaten, wie er durch das Attribut name des Tags <scxml>
festgelegt wurde.
parseErrors : var |
Die Liste der Parse-Fehler, die beim Erstellen eines Zustandsautomaten aus einer SCXML-Datei aufgetreten sind.
running : bool |
Der laufende Zustand dieses Zustandsautomaten.
sessionId : string |
Die Sitzungs-ID des aktuellen Zustandsautomaten.
Die Sitzungs-ID wird für das Nachrichtenrouting zwischen übergeordneten und untergeordneten Zustandsautomaten verwendet. Wird ein Zustandsautomat durch ein <invoke>
-Element gestartet, 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 der 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 Signal-Handler ist onreachedStableState()
.
Hinweis: Der entsprechende Handler ist onReachedStableState
.
Dokumentation der Methode
activeStateNames(bool compress) |
Ruft eine Liste der Zustandsnamen aller aktiven Zustände ab.
Wenn ein Zustand aktiv ist, sind per Definition alle seine übergeordneten Zustände 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.
cancelDelayedEvent(string sendId) |
Bricht ein verzögertes Ereignis mit dem angegebenen sendId ab.
init() |
Initialisiert den Zustandsautomaten, indem die Anfangswerte für <data>
Elemente gesetzt und alle <script>
Tags des <scxml>
Tags ausgeführt werden. Die Anfangsdatenwerte werden der Eigenschaft initialValues entnommen.
Gibt false
zurück, wenn Parse-Fehler auftreten oder wenn einer der Initialisierungsschritte fehlschlägt. Gibt ansonsten true
zurück.
isActive(string scxmlStateName) |
Gibt true
zurück, wenn der durch scxmlStateName angegebene Zustand aktiv ist, andernfalls false
.
isDispatchableTarget(string target) |
Gibt true
zurück, wenn eine Nachricht an target von diesem Zustandsautomaten versendet werden kann.
Gültige Ziele sind:
#_parent
für den übergeordneten Zustandsautomaten, wenn der aktuelle Zustandsautomat gestartet wurde von<invoke>
#_internal
für den aktuellen Zustandsautomaten#_scxml_sessionid
wobeisessionid
die Session-ID des aktuellen Zustandsautomaten ist#_servicename
, wobeiservicename
die ID oder der Name eines Dienstes ist, der mit<invoke>
von diesem Zustandsautomaten gestartet wurde
start() |
stateNames(bool compress) |
Ruft eine Liste der Zustandsnamen aller Zustände ab.
Wenn compress true
ist (die Voreinstellung), 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.
stop() |
submitEvent(event) |
Übergibt das SCXML-Ereignis event an die interne oder externe Ereigniswarteschlange, je nach Priorität des Ereignisses.
Wenn eine Verzögerung eingestellt ist, wird das Ereignis in die Warteschlange gestellt, nachdem die Zeitüberschreitung abgelaufen ist. Der Zustandsautomat übernimmt die Verantwortung für das Ereignis und löscht es nach der Verarbeitung.
Siehe auch QScxmlEvent.
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).
© 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.