Figure 13.9: V-UCM state machine
aed7612a40a36901240a2880c57d987cc9760452738096bf0c3704555314b742
1. Diagrammtyp & Architektur-Kontext
UML-Zustandsdiagramm (stm DOC_V-UCM_StM_CampaignState) zur Modellierung der Update-Kampagnen-Zustandsmaschine des Vehicle Update and Configuration Management (V-UCM) innerhalb der AUTOSAR Adaptive Platform. Das Diagramm spezifiziert die hierarchischen und sequenziellen Makro- und Mikrozustände von der Kampagneninitiierung über die Verteilung und Paketverarbeitung bis zur Aktivierung und Verifikation auf Gesamtfahrzeugebene.
2. Komponenten, Entitäten & Schnittstellen
Das Diagramm umfasst als Zustände:
IDLE: Grundzustand.SYNCINGmitdo / ComputeUpdates.TRANSFERRING: Verbundzustand mit den UnterzuständenVEHICLEPACKAGE_TRANSFERRING(do / VehiclePackageReceiving) undSOFTWAREPACKAGE_TRANSFERRING(do / DistributeSoftwarePackages) sowie Übergangs- und Entscheidungsknoten.UPDATING: Verbundzustand mit den UnterzuständenPROCESSING(do / ProcessingSoftwarePackages),ACTIVATING(do / UCM.Activate()) undVEHICLE_CHECKING(do / VehicleSanityCheck).CANCELLING(do / Cancelling) undROLLINGBACK_FAILED.
Schnittstellen, Methoden und Trigger umfassen SwPackageInventory(), GetSwClusterInfo(), transferVehiclePackage(), transferData(), transferExit(), TransferStart, die generische Bestätigung Approve(), VehicleCheck(True|False), cancelCampaign() und UCMMaster.deleteTransfer(). Zustands- und Guard-Variablen sind CurrentStatus (Wertebereich u. a. kPreparing), ProcessingStates / ProcessingState (Wertebereich u. a. kProcessed, kReady) sowie das Feld approvalRequired[transfer|process|activate].
3. Dynamisches Verhalten & Sequenzablauf
Aus IDLE wird über SYNCING ([SyncingDone]) die Aktualisierung ermittelt. transferVehiclePackage() führt bei [All CurrentStatus == kPreparing] nach TRANSFERRING in den Unterzustand VEHICLEPACKAGE_TRANSFERRING.
Im Zustand VEHICLEPACKAGE_TRANSFERRING wird das Fahrzeugpaket empfangen. Über den Selbstübergang transferExit() / Check vehicle package integrity, available resources and dependencies erfolgt die Prüfung. Das Ergebnis führt über Successful VP check / ApprovalRequired := approvalRequired[transfer] und gegebenenfalls Approve() / ApprovalRequired := False zur Freigabe. Bei Validität (ApprovalRequired set False [All CurrentStatus == kPreparing & not(InvalidPackageManifest | LackResources | FailedDependency)]) geht die Steuerung zu SOFTWAREPACKAGE_TRANSFERRING über; Fehler leiten über Campaign aborted nach CANCELLING.
In SOFTWAREPACKAGE_TRANSFERRING werden Softwarepakete übertragen. Nach Paketübertragung wird bei Bedarf über Approve() bestätigt. Sind alle Bedingungen erfüllt ([(Start Proc. first SWP || All SWPs transferred) & ApprovalRequired[process]==False & All ProcessingState==kReady]), verlässt die Zustandsmaschine TRANSFERRING über Transfer finished / Update start nach UPDATING.
In UPDATING verarbeitet PROCESSING die Pakete. Sind alle Pakete prozessiert (All Packages processed successfully [All ProcessingStates == kProcessed ...]), führt der Pfad direkt oder nach Approve() [approvalRequired[activate]==True] zu ACTIVATING. Nach Aktivierung (All CurrentStatus == Activated) führt VEHICLE_CHECKING den Sanity-Check aus: VehicleCheck(True) markiert die Kampagne als erfolgreich (Campaign successful) mit Rückkehr nach IDLE. Bei Fehlern (ActivationFailure, VehicleCheck(False), NonRecoverableFailure) wird Campaign failed ausgelöst, wodurch CANCELLING betreten wird. Bei Rollback-Fehlern führt [Any CurrentStatus == kRollingBackFailed] von ROLLINGBACK_FAILED ebenfalls nach CANCELLING, von wo aus bei [All CurrentStatus == kPreparing] die Rückkehr nach IDLE erfolgt.
4. Normative Relevanz & Entwickler-Hinweise
Normativ bindend ist die Verwendung der typspezifischen Statuswerte kPreparing, kProcessed und kReady für die Synchronisation verteilter UCM-Zustände. Die Autorisierung ist über die standardisierte Operation Approve() spezifiziert. Fehler- und Rollback-Pfade fordern explizite Konsistenzbedingungen vor der Rückkehr in den Zustand IDLE.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.