Figure 17: UML sequence diagram for asynchronous call with callback
dd1792d93bd0b632c933cd9dd8b757d95658d688fa80f7ca9a6a6e30b943213d
1. Diagrammtyp & Architektur-Kontext
UML-Sequenzdiagramm (sd Asychronous Call w ith Callback) im Kontext der AUTOSAR-Basissoftware (NVRAM Manager / NvM). Dargestellt wird die asynchrone Auftragsverarbeitung eines Schreibauftrags mit Callback-Benachrichtigung zwischen einem NvM-Nutzer, dem BSW-Scheduler und dem NvM-Modul. Unten links ist ein Metadatenblock (Status: Proposed by TO as per NvM SWS 2.0.7 / Description: / Comments:) integriert.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Lebenslinien:
BSW Task (OS task or cyclic call): Dargestellt mit Zyklus-Symbol; triggert zyklisch die Hauptfunktion des NvM.Generic Elements::NvM User: Anfordernder BSW- oder SWC-Nutzer und Empfänger des Callbacks.«module» NvM::NvM: NVRAM-Manager-Modul.
Schnittstellen und Operationen:
NvM_WriteBlock(return, BlockId, NvM_SrcPtr) : Std_ReturnType/ AntwortNvM_WriteBlock.NvM_MainFunction()/ AntwortNvM_MainFunction.SingleBlockCallbackFunction(return, ServiceId, JobResult) : Std_ReturnTypemit Stereotyp<SingleBlockJobEndNotification>.NvM_GetErrorStatus(BlockId, RequestResultPtr) : NvM_RequestResultType/ AntwortNvM_GetErrorStatus.
3. Dynamisches Verhalten & Sequenzablauf
NvM UserruftNvM_WriteBlock(return, BlockId, NvM_SrcPtr) : Std_ReturnTypeauf. Der NvM prüft und speichert den Auftrag, hinterlegt die Callback-Adresse aus dem NVRAM-Block-Deskriptor, setzt den Auftragsstatus aufNVM_REQ_PENDINGund kehrt zum Aufrufer zurück.- Der
BSW Taskführt die Schleifeloop Job processing([repeat until writing of block is completed]) aus und ruft zyklischNvM_MainFunction()auf. Die Daten werden schrittweise asynchron ins NVRAM geschrieben. Währenddessen bleibt der AuftragsstatusNVM_REQ_PENDING. - Nach Abschluss des Schreibvorgangs ruft der BSW Task erneut
NvM_MainFunction()auf. Aus diesem Kontext heraus ruft der NvM die RückruffunktionSingleBlockCallbackFunction(return, ServiceId, JobResult) : Std_ReturnType(<SingleBlockJobEndNotification>) auf demNvM Userauf. - Bei erfolgreichem Abschluss steht das Auftragsergebnis auf
NVM_REQ_OK. NvM Userfragt überNvM_GetErrorStatus(BlockId, RequestResultPtr) : NvM_RequestResultTypeden finalen Status ab.
4. Normative Relevanz & Entwickler-Hinweise
Die Benachrichtigung erfolgt spezifisch über die im Blockdeskriptor konfigurierte Einzelblock-Rückruffunktion (SingleBlockCallbackFunction), welcher ServiceId und JobResult übergeben werden. Entwickler müssen sicherstellen, dass die Callback-Funktion reentrant und ressourcenschonend implementiert ist, da sie im Kontext von NvM_MainFunction (BSW Task) ausgeführt wird.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.