Maakt het opvragen en bewaken van meerdere diagnose-events via event-handles en callback-notificaties mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4cd8b0cbe34dHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt het opvragen en bewaken van meerdere diagnose-events via event-handles en callback-notificaties mogelijk.
De klasse stelt applicaties in staat om toestandsgerelateerd meerdere diagnose-events op te vragen en te bewaken via een gemeenschappelijke interface aan de hand van event-handles [SWS_DM_01705]. Naast de registratie van notificatie-callbacks zijn er asynchrone methoden beschikbaar voor het bepalen van de event-status, ontdavering, foutenteller en het DTC-nummer [SWS_DM_01707], [SWS_DM_01709]. Instanties zijn niet kopieerbaar en niet verplaatsbaar en vereisen vanwege de niet-thread-safe destructor een ordentelijke beëindiging van actieve operaties vóór vrijgave [SWS_DM_01706], [SWS_DM_02067].
Context
De klasse ara::diag::MultipleEvent stelt interfaces ter beschikking aan de applicatie om diagnose-events via interfaces voor meervoudige events op te vragen en te bewaken [SWS_DM_01705]. In tegenstelling tot enkelvoudige-event-klassen adresseren operaties op instanties van MultipleEvent concrete events via een identificator van het type EventHandleType[SWS_DM_01707], [SWS_DM_01708]. De klasse fungeert als interface tussen de toepassende softwarecomponent en het Diagnostic Management (DM) van Adaptive AUTOSAR AUTOSAR AP SWS Diagnostics, p. 69. Via het port-prototype van een DiagnosticMultipleEventInterface wordt het object aan de geconfigureerde diagnose-infrastructuur gebonden [SWS_DM_01705].
Levenscyclus
Een instantie van MultipleEvent wordt aangemaakt via een expliciete constructor onder opgave van een ara::core::InstanceSpecifier[SWS_DM_01705]. De constructor is thread-safe en verifieert de gemodelleerde binding aan een port-prototype van het interfacetype DiagnosticMultipleEventInterface[SWS_DM_01705]. Mislukt de mapping of wordt dezelfde instantie-identificator binnen het proces hergebruikt, dan meldt het platform overeenkomstige schendingen zoals InstanceSpecifierAlreadyInUseViolation of PortInterfaceMappingViolation[SWS_DM_01705].
Kopieer- en verplaatsoperaties zijn voor MultipleEvent volledig verhinderd: zowel de copy- en move-constructor als de overeenkomstige toewijzingsoperatoren zijn als verwijderd gedeclareerd [SWS_DM_02067], [SWS_DM_02068], [SWS_DM_02069], [SWS_DM_02070]. Het object bezit zodoende een strikte identiteit en blijft op de plaats van aanmaak. De destructor ~MultipleEvent() is niet-thread-safe gespecificeerd [SWS_DM_01706]. Aanroepende componenten moeten daarom vóór de vernietiging waarborgen dat er geen asynchrone opvragingen of notificaties meer via de instantie lopen AUTOSAR AP SWS Diagnostics, p. 78.
Gebruikspad
Na de instantiëring registreert de applicatie typisch een callback-functie middels SetEventStatusChangedNotifier om over statuswijzigingen van een bepaald event (geïdentificeerd via EventHandleType) geïnformeerd te worden [SWS_DM_01708]. Een hernieuwde aanroep van deze methode voor hetzelfde event overschrijft de eerder ingestelde notifier [SWS_DM_01708]. Deze registratiefunctie is niet-thread-safe [SWS_DM_01708].
Tijdens het bedrijf kan actuele diagnose-informatie gericht per event-handle worden opgevraagd. Alle toestandsgerelateerde leesoperaties leveren hun gegevens asynchroon in een ara::core::Future terug:
GetEventStatus levert de actuele statusbyte van het event als EventStatusByte[SWS_DM_01707].
GetDebouncingStatus retourneert de ontdaveringstoestand (DebouncingState) van het event [SWS_DM_01710].
GetFaultDetectionCounter levert de actuele foutdetectieteller (FaultDetectionCounter) als een 8-bits geheel getal met teken [SWS_DM_01711].
GetDTCNumber vraagt het toegewezen DTC-nummer in het gevraagde DTCFormatType op [SWS_DM_01709].
Sequentiediagram: typisch gebruikspad voor het observeren en opvragen van diagnose-events via MultipleEvent. Bronnen: [SWS_DM_01705], [SWS_DM_01707], [SWS_DM_01708], [SWS_DM_01709], [SWS_DM_01710], [SWS_DM_01711]
Foutscenario's
Methoden van MultipleEvent signaleren fouttoestanden via het type DiagErrc, dat ingekapseld wordt getransporteerd in een ara::core::Result of in de geretourneerde ara::core::Future[SWS_DM_01707], [SWS_DM_01708], [SWS_DM_01709]. De volgende foutgevallen zijn gespecificeerd:
DiagErrc::kNoSuchDTC: wordt door GetDTCNumber gemeld wanneer voor het opgevraagde diagnose-event geen corresponderende DTC is geconfigureerd of toegewezen [SWS_DM_01709].
DiagErrc::kServiceNotAvailable: treedt op bij leesoperaties wanneer essentiële basisfunctionaliteiten van het Diagnostic Management op het moment van uitvoering niet beschikbaar zijn [SWS_DM_01707], [SWS_DM_01709], [SWS_DM_01710], [SWS_DM_01711].
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleEventInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMultipleEventInterface.
Request a governed re-review of this record. The record is not changed immediately.
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: bd91ad4f4cb5HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De methode ara::diag::MultipleEvent::SetEventStatusChangedNotifier[SWS_DM_01708] registreert een callback-functie van het type EventStatusByteNotifier, die wordt aangeroepen wanneer de toestand van een diagnose-event verandert. Via de parameter eventHandle wordt het gewenste event binnen de instantie geïdentificeerd. De methode is gespecificeerd als noexcept en retourneert een ara::core::Result<void>. Een hernieuwde aanroep overschrijft de eerder geregistreerde notifier [SWS_DM_01708].
Foutafhandeling
Treedt er bij de registratie een fout op, dan levert de ara::core::Result een bijbehorende foutcode op. Gespecificeerd is de fout DiagErrc::kInvalidArgument, bijvoorbeeld in de context van interne ontkoppeling zoals kPreFailed[SWS_DM_01708].
Gelijktijdigheid en beperkingen
De operatie is gedeclareerd als exception safe, maar uitdrukkelijk geclassificeerd als not thread-safe[SWS_DM_01708]. Gelijktijdige aanroepen op dezelfde instantie moeten daarom extern worden gesynchroniseerd.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel