AUTOSAR_AP_EXP_ARAComAPI
FIG-8e3e17175147377d
934 × 531 px
1 Release(s)
Figure 6.10: CG Template Service Interface Descritpion, example PowerMode
SHA-256 Inhalts-Fingerabdruck:
8e3e17175147377d08467316f4231fa25749a37b891855163b63e1bc40e38d43
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: Formales ARXML-Instanzauszug / Metamodell-Serialisierung eines AUTOSAR Adaptive
ServiceInterface-Deskriptors (XML-Fragment gemäß AUTOSAR Adaptive Schema). - Architektur-Kontext:
- Subsystem: AUTOSAR Adaptive Platform (AP), Functional Cluster Communication Management (
ara::com) in Interaktion mit State Management (ara::sm). - Funktionaler Zweck: Standardisiertes Template-Design (Communication Group Template, kurz CG Template) zur Abbildung von Kontroll- und Statuskommunikation. Am Beispiel des
PowerMode-Dienstes wird demonstriert, wie interprozessuale bzw. maschinenweite Zustandsübergänge (hier State Management / Power Mode) über ein entkoppeltes Request-Response-Muster perara::comtypisiert und modelliert werden.
- Subsystem: AUTOSAR Adaptive Platform (AP), Functional Cluster Communication Management (
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Metamodell-Struktur:
<SERVICE-INTERFACE>:SHORT-NAME:PowerMode(eindeutiger Bezeichner des Service-Interfaces und Namensgeber der Kommunikationsgruppe, vgl. Annotation(1)).CATEGORY:COMMUNICATION_GROUP(semantische Metadaten-Klassifizierung für den Code-Generator und Stack zur Identifikation des Kommunikationsgruppen-Musters).
<NAMESPACES>:- Aggregiert hierarchische
<SYMBOL-PROPS>(ara→sm). - Definiert bindend das C++ Namespace-Target
::ara::smfür die Codegenerierung (proxy/skeleton).
- Aggregiert hierarchische
<METHODS>→<CLIENT-SERVER-OPERATION>:SHORT-NAME:message(RPC-Einstiegspunkt für Kommandos/Requests).<ARGUMENTS>→<ARGUMENT-DATA-PROTOTYPE>:SHORT-NAME:msgDIRECTION:IN(unidirektionaler Eingabeparameter).TYPE-TREF: ReferenziertDEST="STD-CPP-IMPLEMENTATION-DATA-TYPE"auf/AUTOSAR/StateM/Imp/PowerModeMsg.
<EVENTS>→<VARIABLE-DATA-PROTOTYPE>:SHORT-NAME:response(asynchroner Rückmelde-/Broadcast-Kanal).TYPE-TREF: ReferenziertDEST="STD-CPP-IMPLEMENTATION-DATA-TYPE"auf/AUTOSAR/StateM/Imp/PowerModeRespMsg.
- Beziehungen & Kardinalitäten:
ServiceInterfaceaggregiert exakt eine Operation (message, Kardinalität 1) und exakt ein Event (response, Kardinalität 1).- Keine
OUT- oderINOUT-Parameter in der Operation: Entkopplung von Anfrage (Method) und Status-/Rückmeldung (Event). - Typ-Assoziationen verweisen über modellweite Pfade strikt auf standardisierte C++-Implementierungsdatentypen (
STD-CPP-IMPLEMENTATION-DATA-TYPE) des Functional Clusters State Management (/AUTOSAR/StateM/Imp/...).
3. Dynamisches Verhalten & Sequenzablauf
Das Template erzwingt ein asynchron entkoppeltes Messaging-Pattern anstelle eines blockierenden RPCs:
- Service Registration & Subscription:
- Der Service-Provider (State Management Daemon / Skeleton) bietet die Instanz von
ara::sm::PowerModeSkeletonan (OfferService()). - Der Service-Consumer (Client-Applikation / Proxy) abonniert das Event
response(proxy->response.Subscribe(1)), um Statusrückmeldungen empfangen zu können.
- Der Service-Provider (State Management Daemon / Skeleton) bietet die Instanz von
- Kommando-Trigger (Request-Pfad):
- Consumer ruft
proxy->message(msg)auf. - Da
msgrein vom TypDIRECTION: INist und keineOUT-Parameter existieren, liefert die Methode einara::core::Future<void>(nicht-blockierend bzw. Fire-and-Forget-Semantik auf Applikationsebene).
- Consumer ruft
- Zustandsverarbeitung & Notifikation (Response-Pfad):
- Das State Management führt die interne Zustandsüberführung (Power Mode State Transition) asynchron aus.
- Nach Abschluss oder Statusänderung publiziert das Skeleton das Event
response.Send(respMsg). - Der Consumer empfängt das Event via Event-Receive-Handler (
SetReceiveHandler) oder zyklisches Abfragen (GetNewSamples).
4. Normative Relevanz & Entwickler-Hinweise
- Generierte C++-Artefakte & Signatur:
- Der AP-Codegenerator erzeugt unter dem Namespace
ara::smdie Headerpowermode_proxy.hundpowermode_skeleton.h. - Signatur auf Proxy-Ebene:
namespace ara::sm::proxy::methods { using message = ...; // Aufruf: ara::core::Future<void> message(const PowerModeMsg& msg); } namespace ara::sm::proxy::events { using response = ...; // Event-Wrapper für PowerModeRespMsg }
- Der AP-Codegenerator erzeugt unter dem Namespace
- Korrelation & Parallelität:
- Da die Zuordnung von Anfrage zu Rückmeldung nicht über die RPC-Infrastruktur (
SessionId/ Request-ID des Transport-Stacks) korreliert wird, muss eine logische Correlation-ID/Transaktions-ID innerhalb der PayloadsPowerModeMsgundPowerModeRespMsgtransportiert werden, falls mehrere Anfragen überlappend aktiv sind.
- Da die Zuordnung von Anfrage zu Rückmeldung nicht über die RPC-Infrastruktur (
- Race-Condition-Vermeidung:
- Applikations-Entwickler müssen
proxy->response.Subscribe()zwingend vor dem Absenden des Methodenaufrufsproxy->message(...)ausführen und den Subscription-State verifizieren (GetSubscriptionState() == kSubscribed), da sonst schnelle Antworten verloren gehen.
- Applikations-Entwickler müssen
- Deployment & Binding:
- Das Template erfordert im weiteren AP-Workflow ein passendes Service-Interface-Deployment (z. B. SOME/IP- oder Shared-Memory/IPC-Deployment), in dem Method-ID, Event-ID und Event-Group konfiguriert werden.