Stelt adaptieve applicaties in staat om voertuigdiagnose-indicatoren op te vragen en gebeurtenisgestuurd te bewaken.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7d81598b6e77HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Stelt adaptieve applicaties in staat om voertuigdiagnose-indicatoren op te vragen en gebeurtenisgestuurd te bewaken.
De interface dient voor het gestructureerd opvragen en bewaken van voertuigdiagnose-indicatoren binnen het AUTOSAR Adaptive Platform. Applicaties instantiëren het object via een gemodelleerde identifier en kunnen de actuele status via een asynchrone opvraagmethode ophalen [SWS_DM_00744]. Daarnaast kan een door de gebruiker gedefinieerde callback-functie worden geregistreerd, die statusupdates rechtstreeks bij wijzigingen ontvangt [SWS_DM_00745]. Als essentiële randvoorwaarde is de instantie strikt aan een poort gebonden, noch kopieerbaar noch verplaatsbaar en vereist deze bij registratie en vernietiging synchronisatie tegen gelijktijdige aanroepen.
Context
De klasse ara::diag::Indicator fungeert in de Adaptive Platform-module diag als centrale representatie van het DiagnosticIndicatorInterface[SWS_DM_00742]. Haar kerntaak bestaat erin applicaties toegang te bieden tot diagnose-indicatoren zoals waarschuwingslampjes of functieweergaven (bijvoorbeeld een Malfunction Indicator Light, MIL).
Bij de interactie zijn in hoofdzaak drie componenten betrokken: een gebruikende adaptieve applicatie (zoals een instrumentenpaneel of een HMI-dienst), de instantie van ara::diag::Indicator als lokaal interface-eindpunt en de Diagnostic Management Daemon (DM). Deze laatste verwerkt de voertuigbrede diagnosegebeurtenissen en UDS-DTC-statussen en levert de onderliggende diagnosefunctionaliteit [SWS_DM_00744].
Contextdiagram: interactiepartners van de interface ara::diag::Indicator tussen applicatielogica en Diagnostic Management Daemon. Bronnen: [SWS_DM_00742], [SWS_DM_00744].
Levenscyclus
De creatie van een ara::diag::Indicator-object vindt expliciet plaats door doorgifte van een ara::core::InstanceSpecifier aan de constructor [SWS_DM_00742]. Deze identifier bindt het object aan een in het ontwerpmodel gedefinieerde PortPrototype, die dwingend als DiagnosticIndicatorInterface getypeerd moet zijn [SWS_DM_00742].
Wat betreft eigendomsverhoudingen en objectsemantiek is ara::diag::Indicator ontworpen als een strikte enkele instantie: noch kopiëren noch verplaatsen is toegestaan. Dienovereenkomstig zijn de copy-constructor [SWS_DM_01629], de move-constructor [SWS_DM_01630], de copy-toewijzingsoperator [SWS_DM_01627] en de move-toewijzingsoperator [SWS_DM_01628] als verwijderd (=delete) gedeclareerd.
De levenscyclus eindigt met de aanroep van de destructor ~Indicator()[SWS_DM_00743]. Terwijl constructor en statusopvraag als thread-safe zijn gespecificeerd [SWS_DM_00742], [SWS_DM_00744], is de destructor niet thread-safe [SWS_DM_00743]. De aanroepende applicatie moet daarom waarborgen dat er tijdens de vernietiging geen gelijktijdige methode-aanroepen of notifier-uitvoeringen meer plaatsvinden.
Gebruikspad
Na succesvolle initialisatie ondersteunt de klasse twee complementaire gebruiksmodellen voor het bepalen van de indicatortoestand:
Gebeurtenisgestuurde notificatie: via SetNotifier() kan een callback-functie van het type IndicatorStatusTypeNotifier worden geregistreerd [SWS_DM_00745], [SWS_DM_02129]. Zodra de status van de indicator verandert, roept de runtime-omgeving deze notifier aan. Een opeenvolgende aanroep van SetNotifier() overschrijft de eerder geregistreerde handler [SWS_DM_00745]. Omdat SetNotifier() niet thread-safe is, moet de registratie extern worden gesynchroniseerd [SWS_DM_00745]. Vermoedelijk wordt de notifier uitgevoerd in de context van een achtergrondthread van Diagnostic Management, waardoor hierin geen tijdsintensieve blokkades mogen plaatsvinden. Vraag Q-c27898ecefb8006f (open)
Gerichte opvraag: via GetIndicatorState() kan de actuele toestand op elk willekeurig moment actief worden opgevraagd [SWS_DM_00744]. De methode is thread-safe en levert een ara::core::Future<IndicatorStatusType> op [SWS_DM_00744]. Interpretatie: de asynchrone beschikbaarstelling via een future wijst erop dat de opvraag intern via interprocescommunicatie (IPC) wordt gedelegeerd aan de centrale Diagnostic Management Daemon. Vraag Q-61a650bd8ab7fc04 (open)
Foutcondities kunnen zowel in de initialisatiefase als tijdens runtime optreden:
Configuratieschendingen bij de constructie: de constructor meldt modelleringsinconsistenties in de vorm van gedefinieerde violations [SWS_DM_00742]. Hiertoe behoren InstanceSpecifierMappingIntegrityViolation (de identifier kan niet worden herleid of verwijst niet naar een poort), PortInterfaceMappingViolation (de gereferentieerde poort is niet getypeerd door een DiagnosticIndicatorInterface), ProcessMappingViolation (geen passend gemodelleerd proces voor de runtime-instantie aanwezig) en InstanceSpecifierAlreadyInUseViolation (de identifier wordt in het proces al door een andere instantie gebruikt) [SWS_DM_00742].
Uitval van diagnosefuncties: als de uitvoering van GetIndicatorState() mislukt, wordt via de geretourneerde future de foutcode DiagErrc::kServiceNotAvailable getransporteerd [SWS_DM_00744]. Dit gebeurt wanneer essentiële functies van Diagnostic Management op het moment van aanroepen niet beschikbaar zijn [SWS_DM_00744].
Gelijktijdige toegangen: aangezien SetNotifier()[SWS_DM_00745] en de destructor [SWS_DM_00743] niet thread-safe zijn, leidt onbeschermde gelijktijdige toegang tot ongedefinieerd runtimegedrag.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 en is opgesteld door een AI-curatie-assistent.
Register a notifier function which is called if the indicator is updated. 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 DiagnosticIndicatorPortMapping needs to be typed by a DiagnosticIndicatorInterface. 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 DiagnosticIndicatorInterface.
Request a governed re-review of this record. The record is not changed immediately.
Register a notifier function which is called if the indicator is updated. 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: f2935619a27aHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie SetNotifier van de klasse ara::diag::Indicator ([SWS_DM_00745], gedeclareerd in header ara/diag/indicator.h) registreert een applicatiespecifieke notificatiefunctie van het type IndicatorStatusTypeNotifier. Deze callback-functie wordt aangeroepen door Diagnostic Management zodra er een statusactualisatie van de diagnose-waarschuwingsindicator beschikbaar is ([SWS_DM_00745]).
Gedrag bij meervoudige aanroep
Een herhaalde aanroep van SetNotifier op dezelfde instantie overschrijft de eerder geregistreerde notifier volledig ([SWS_DM_00745], [SWS_DM_01359]). Dit overschrijfgedrag komt overeen met het algemene patroon in Diagnostic Management, zoals dit op gelijke wijze is vastgelegd voor ara::diag::OperationCycle::SetNotifier ([SWS_DM_00755]) en ara::diag::CancellationHandler::SetNotifier ([SWS_DM_00615]).
Foutafhandeling en gelijktijdigheid
Foutafhandeling: De methode is gespecificeerd als noexcept en uitzonderingsveilig (exception safe) ([SWS_DM_00745]). Aangezien er geen gestandaardiseerde fouten zijn gedefinieerd, kapselt de geretourneerde ara::core::Result<void> als interpretatie vermoedelijk steeds een succesvolle aanroep in. Vraag Q-dcde3dd383fbfb4a (open)
Gelijktijdigheid: De interface is uitdrukkelijk gedeclareerd als niet-thread-safe (not thread-safe) ([SWS_DM_00745]). Gelijktijdige aanroepen op dezelfde instantie moeten door de applicatie worden gesynchroniseerd.
Diagnostische context
Statusactualisaties van de indicator houden verband met DTC-statusbit 7 (WarningIndicatorRequested) ([SWS_DM_00224], AUTOSAR_AP_SWS_Diagnostics p. 260). De bit wordt geactiveerd bij bevestiging van een fout ([SWS_DM_01266]) en gereset bij het bereiken van de ontstoor- respectievelijk hersteldrempels aan het einde van een bedrijfscyclus ([SWS_DM_00224], [SWS_DM_01582]).
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel