AUTOSAR_SWS_Diagnostics
FIG-552618e746e1de10
924 × 1260 px
1 Release(s)
Figure 8.2: UDS Transport Request Processing 130 of 312 — AUTOSAR CONFIDENTIAL —
SHA-256 Inhalts-Fingerabdruck:
552618e746e1de1039df4b75db4287b3bc098574208b8d688d375c380321585b
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
UML-Sequenzdiagramm zur Interaktion im AUTOSAR Adaptive Platform Diagnostic Management (DM). Das Diagramm stellt den Nachrichten- und Kontrollfluss bei der Verarbeitung einer eingehenden UDS-Transportanfrage dar, die von einem externen Diagnose-Client/Tester empfangen und über den UdsTransportProtocolHandler an die generische Instanz des Diagnostic Management (DM_Generic) weitergeleitet und verarbeitet wird.
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Lebenslinien und Entitäten:
Diagnostic Client/Tester: Externer Akteur (Tester/Client), der UDS-Anfragen sendet und Fehlermeldungen empfängt.Instance1: UdsTransportProtocolHandlerImpl: Implementierung des UDS-Transportprotokoll-Handlers im Diagnostic Stack.DM Instance: DM_Generic: Generische Instanz des Diagnostic Managers; implementiert das Interface/die RolleUdsTransportProtocolMgr(dokumentiert via Notiz „Implements UdsTransportProtocolMgr“).Request: UdsMessage: Dynamisch erzeugte Entität zur Repräsentation der UDS-Nachricht im Speicher.
Schnittstellen und Operationen:
UDS Request(): Eingehende Diagnoseanfrage vom Tester an den Handler.IndicateMessage(UdsMessage::Address, UdsMessage::Address, UdsMessage::TargetAddressType, GlobalChannelIdentifier, std::size_t, std::shared_ptr<const UdsMessage::MetaInfoMap>): std::pair<IndicationResultType, UdsMessagePtr>: Aufruf vom Handler anDM_Genericzur Ankündigung der Nachricht inklusive Adressierungsdaten, Kanalidentifikation, Längenangabe und Metainformationen.GetPayload(): udstransport::ByteVector&: Abfrage des Payload-Puffers auf der erzeugtenRequest: UdsMessage.NotifyMessageFailure(UdsMessageConstPtr): Benachrichtigung des DM bei fehlgeschlagener Nachrichtenverarbeitung.AddMetaInfo(std::shared_ptr<const MetaInfoMap>): Zuweisung von Meta-Informationen an die Nachrichteninstanz.HandleMessage(UdsMessagePtr): Übergabe der vollständig assemblierten UDS-Nachricht anDM_Genericzur diagnostischen Abarbeitung.Uds Transport Protocol specific Error(): Protokollspezifische Fehlerrückmeldung an den Tester.
3. Dynamisches Verhalten & Sequenzablauf
Der Ablauf gliedert sich in folgende Phasen:
- Nachrichtenempfang und Indikation:
- Der Tester sendet
UDS Request()anInstance1: UdsTransportProtocolHandlerImpl. - Der Handler ruft synchron
IndicateMessage(...)anDM Instance: DM_Genericauf.
- Der Tester sendet
- Alternative: Verwerfen vs. Akzeptieren (
alt):- Zweig
[UDS Request NOT Accepted by DM]:DM_Genericantwortet mitstd::pair(kIndicationOccupied, UdsMessagePtr(nullptr))oderstd::pair(kIndicationOverflow, UdsMessagePtr(nullptr)). Optional (opt) sendet der HandlerUds Transport Protocol specific Error()an den Client. - Zweig
[UDS Request Accepted by DM]:DM_Genericinstanziiert die LebenslinieRequest: UdsMessagevia KonstruktoraufrufUdsMessage()und liefertstd::pair(kIndicationOK, UdsMessagePtr)zurück. Der Handler fordert viaGetPayload(): udstransport::ByteVector&den Nutzdatenvektor an.
- Zweig
- Alternative: Verarbeitungsstatus (
alt):- Zweig
[Processing UDS Request NOT OK]: Der Handler meldet das Scheitern an den DM mittelsNotifyMessageFailure(UdsMessageConstPtr)und sendetUds Transport Protocol specific Error()an den Tester. - Zweig
[Processing UDS Request OK]: Der Handler führt interne Operationen durch:Fill Payload From received UDS Request(),Discard Bytes from UDS Request, which do not fit into provided message(),Prepare/Create MetaInfo(). Anschließend ruft erAddMetaInfo(std::shared_ptr<const MetaInfoMap>)aufRequest: UdsMessageauf und übergibt die Nachricht mitHandleMessage(UdsMessagePtr)anDM_Generic. Die LebenslinieRequest: UdsMessageendet/wird freigegeben.
- Zweig
- Folgeinteraktion (
ref):- Verweis auf den nachgelagerten Ablauf
UDS Pos/Neg Response Transmission.
- Verweis auf den nachgelagerten Ablauf
4. Normative Relevanz & Entwickler-Hinweise
- Der UDS-Transportprotokoll-Handler alloziiert den Nachrichtenpuffer nicht autonom, sondern delegiert die Pufferbereitstellung über
IndicateMessagezwingend an denUdsTransportProtocolMgr(DM_Generic). - Pufferüberlauf (
kIndicationOverflow) und Ressourcenbelegung (kIndicationOccupied) führen zu einem Nullpointer (UdsMessagePtr(nullptr)) und bedingen eine protokollspezifische Fehlerbehandlung (z. B. DoIP-/ISO-TP-Fehlerframes). - Bei
kIndicationOKmuss der Handler den Payload-Vektor überGetPayload()abrufen und befüllen; überzählige Bytes, die die Puffergröße übersteigen, müssen abgeschnitten/verworfen werden (Discard Bytes...). - Scheitert der Empfang oder die Formatierung im Transport-Handler vor Abschluss, ist zwingend
NotifyMessageFailure(UdsMessageConstPtr)anDM_Genericabzusetzen, um bereitgestellte Ressourcen freizugeben. - Nach erfolgreichem Zusammenbau und Anfügen von Metadaten (
AddMetaInfo) schließtHandleMessage(UdsMessagePtr)den Transport-Empfangspfad ab und initiiert die Diagnoseverarbeitung sowie die nachfolgende Antwortübertragung (UDS Pos/Neg Response Transmission).
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.