Dient voor het uitvoeren van diagnosebewakingen en de statusmelding aan het Diagnostic Management.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 49f63d89472dHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor het uitvoeren van diagnosebewakingen en de statusmelding aan het Diagnostic Management.
De klasse ara::diag::Monitor stelt de functionele interface voor de implementatie van diagnosebewakingsfuncties en de koppeling daarvan aan het Diagnostic Management beschikbaar [SWS_DM_00548]. Na de binding aan een port-prototype signaleert de applicatie via Offer() haar ontvangstgereedheid en verzendt zij testresultaten doorlopend via ReportMonitorAction()[SWS_DM_01088], [SWS_DM_00543]. Monitor-instanties zijn niet kopieerbaar en niet verplaatsbaar en alle operaties zijn gespecificeerd als niet-thread-safe [SWS_DM_01685].
Context
De klasse ara::diag::Monitor vormt de gestandaardiseerde C++-interface voor het realiseren van diagnosebewakingsfuncties (monitors) binnen het Adaptive Platform [SWS_DM_00548]. Een monitor is verantwoordelijk voor de detectie en melding van foutsymptomen in functionele softwarecomponenten en geeft de toestand daarvan door aan de module Diagnostic Management (DM).
De binding aan het AUTOSAR-systeemmodel vindt plaats via een ara::core::InstanceSpecifier, die dwingend moet verwijzen naar een door een DiagnosticMonitorInterface getypeerde PortPrototype[SWS_DM_00548]. Bij de totale afhandeling zijn in hoofdzaak drie componenten betrokken: de applicatiespecifieke functiebewaking (Application), de lokale interface-instantie van ara::diag::Monitor en de platformmodule Diagnostic Management (DM), die events ontvangt en herinitialisaties aanvraagt.
De instantiëring van een monitor richt zich naar het in het model gedefinieerde ontdaveringsmechanisme (debouncing). Het Adaptive Platform stelt hiervoor vier constructorvarianten beschikbaar:
Monitor-interne ontdavering met registratie van een InitMonitorNotifier-callback en een functiewijzer voor het opvragen van de Fault Detection Counter (std::function<std::int8_t()> getFaultDetectionCounter) [SWS_DM_00548].
Tellergebaseerde ontdavering onder doorgifte van parameters van het type CounterBased[SWS_DM_00549].
Tijdgebaseerde ontdavering onder doorgifte van parameters van het type TimeBased[SWS_DM_00550].
Directe bewaking zonder ontdaveringsalgoritme [SWS_DM_01972].
Instanties van ara::diag::Monitor zijn vast gebonden aan hun oorspronkelijke geheugenlocatie: copy-constructor [SWS_DM_01685] en copy-assignment-operator [SWS_DM_01683] zijn verwijderd (delete). Evenzo zijn move-constructor [SWS_DM_01686] en move-assignment-operator [SWS_DM_01684] expliciet verwijderd.
Na het aanmaken bevindt de instantie zich in de toestand Niet aangeboden (Unoffered). Pas door de expliciete aanroep van Offer() verklaart de applicatie zich bereid om diagnose-callouts zoals initMonitor te ontvangen en te verwerken [SWS_DM_01088]. Met StopOffer() wordt het doorsturen van diagnoseverzoeken vanuit het DM weer gedeactiveerd [SWS_DM_01089]. Na de aanroep van StopOffer() is een latere hervatting van de werking door een hernieuwde aanroep van Offer() vermoedelijk mogelijk. Vraag Q-136565db34b28ae6 (open) Vóór de definitieve vernietiging van het monitor-object moet de applicatie vermoedelijk StopOffer() uitvoeren om openstaande meldingen veilig te verhinderen.
Toestandsdiagram: levenscyclustoestanden en overgangen bij het aanbieden van de service van ara::diag::Monitor. Bronnen: [SWS_DM_01088], [SWS_DM_01089]
Gebruikspad
Het reguliere verloop voor de bewaking van een foutpad omvat de volgende stappen:
Instantiëring: de applicatie maakt de Monitor-instantie aan onder vermelding van de InstanceSpecifier, de callback initMonitor en eventueel benodigde ontdaveringsparameters of de FDC-callback [SWS_DM_00548], [SWS_DM_00549].
Serviceaanbod: via Offer() meldt de monitor zich bij het DM aan als gereed voor ontvangst [SWS_DM_01088].
Initialisatie: het Diagnostic Management informeert de applicatie via de geregistreerde InitMonitorNotifier-callback over aanstaande initialisatiegebeurtenissen [SWS_DM_01088].
Periodieke/eventgebaseerde melding: tijdens de operationele werking meldt de applicatie doorlopend de status van het bewakingspad via ReportMonitorAction(action)[SWS_DM_00543]. De doorgegeven actie bevat ofwel testresultaten (gekwalificeerd/ongekwalificeerd), ofwel opdrachten voor ontdaveringssturing resp. vooropslag (prestorage). Als er monitor-interne debouncing is geconfigureerd, vraagt het DM via de geregistreerde callback desgewenst de foutbegrenzingswaarde op [SWS_DM_00548].
Servicebeëindiging: vóór het afsluiten of bij deactivering van de diagnosefunctie roept de applicatie StopOffer() aan om inkomende DM-berichten te verhinderen [SWS_DM_01089].
Foutsituaties manifesteren zich bij ara::diag::Monitor op twee verschillende niveaus: als foutcode via ara::core::Result of als runtime-schendingen (violations) van het framework.
De methode Offer() retourneert een ara::core::Result<void>. Bevindt de monitor zich reeds in de aangeboden toestand, dan mislukt de aanroep en levert deze de foutcode DiagOfferErrc::kAlreadyOffered op [SWS_DM_01088].
Ernstige configuratie- of aanroepfouten leiden tot gedefinieerde schendingsmeldingen:
InstanceSpecifierMappingIntegrityViolation: de InstanceSpecifier kan in de modelcontext van het proces niet worden opgelost of verwijst niet naar een PortPrototype[SWS_DM_00548].
PortInterfaceMappingViolation: De gerefereerde poort is niet getypeerd door een DiagnosticMonitorInterface[SWS_DM_00548].
ProcessMappingViolation: er bestaat geen passend gemodelleerd proces voor de runtime-instantie [SWS_DM_00548].
InstanceSpecifierAlreadyInUseViolation: de InstanceSpecifier wordt binnen het actuele proces al door een andere monitor gebruikt [SWS_DM_00548].
InvalidDebouncingAlgorithmViolation: het in de constructor gekozen ontdaveringsmechanisme wijkt af van de in de DEXT-diagnosebeschrijvingen gemodelleerde ontdaveringsmethode [SWS_DM_00548], [SWS_DM_00549], [SWS_DM_00550].
UnexpectedMonitorActionHandlingViolation: aan de methode ReportMonitorAction() wordt een actiewaarde doorgegeven die voor het geconfigureerde ontdaveringsalgoritme niet wordt ondersteund [SWS_DM_00543].
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform Release R25-11.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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.
InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
getFaultDetectionCounter
Possibility to register a function to get the current FDC for this event.
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceCounterBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for CounterBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceTimeBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for TimeBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
Request a governed re-review of this record. The record is not changed immediately.
With the Offer the application states that it is ready to receive and process initMonitor callouts.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 2e8d03769af8Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Met de aanroep van de methode Offer signaleert een Adaptive Application aan Diagnostic Management (DM) dat zij gereed is voor de ontvangst en verwerking van initMonitor-callouts [SWS_DM_01088]. De methode van de klasse ara::diag::Monitor bezit geen parameters en levert ara::core::Result<void> terug [SWS_DM_01088]. Hoewel de naam is gekozen naar analogie van ara::com, betreft het een specifieke implementatie van de diagnosecomponent en mag deze niet worden verward met communicatiediensten AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
In geval van een fout retourneert de methode de foutcode DiagOfferErrc::kAlreadyOffered, indien de dienst al eerder werd aangeboden [SWS_DM_01088]. Dit komt overeen met de enumerator voor het melden van reeds actieve aanbiedingen binnen de diagnose-foutdomeinen [SWS_DM_00514]. Bij een succesvolle aanroep bevat het retourobject geen fout.
Wat betreft gelijktijdigheid is de methode gespecificeerd als not thread-safe, waardoor parallelle aanroepen op dezelfde instantie aan applicatiezijde moeten worden gesynchroniseerd [SWS_DM_01088]. Bovendien is de functie als uitzonderingsveilig (exception safe) en met noexcept gedeclareerd [SWS_DM_01088].
Function to report the status information being relevant for error monitoring paths.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 8334da733b55Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De synchrone methode ReportMonitorAction van de klasse ara::diag::Monitor meldt status- en monitoringinformatie van een diagnosecontrole aan de foutmonitoring van de Diagnostic Management Daemon [SWS_DM_00543]. Via de parameter action van het type MonitorAction draagt de applicatie een gekwalificeerd dan wel ongekwalificeerd testresultaat over, of besturingscommando's voor het aansturen van het ontdenderen en het triggeren van een pre-opslag (prestorage) [SWS_DM_00543]. De functie levert geen retourwaarde op (void) en is gedeclareerd als noexcept en exception-safe [SWS_DM_00543].
Wordt ReportMonitorAction aangeroepen met een waarde voor action die niet wordt ondersteund door de geconfigureerde ontdaveringsmethode van het diagnose-event, dan genereert de Diagnostic Manager een processchending [SWS_DM_01988]. Bovendien definieert het systeem interne foutcodes in het type DiagErrc, bijvoorbeeld kReportIgnored voor situaties waarin vrijgavevoorwaarden niet zijn vervuld [SWS_DM_00514].
Voor de integratie en concurrency gelden de volgende randvoorwaarden:
Thread-safety: De functie is niet thread-safe (not thread-safe) [SWS_DM_00543]. Parallelle aanroepen op dezelfde monitor-instantie moeten aan de aanroeperszijde worden gesynchroniseerd (in tegenstelling tot MultipleMonitor, waarbij de thread-safety configureerbaar is via de constructor [SWS_DM_01698]).
Vrijgavevoorwaarden: Als een aan het diagnose-event toegewezen Enable Condition niet is vervuld, wordt de aanroep van ReportMonitorAction genegeerd SWS Diagnostics §7.3.4.1.4 “EnableConditions”.
Ontdendering: Gemelde acties zoals kPrefailed wijzigen de interne ontdaverteller volgens de geconfigureerde stapgrootte [SWS_DM_00875], totdat bij het bereiken van de drempelwaarde de fout wordt geclassificeerd als kFinallyDefective[SWS_DM_00024].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR AP R25-11.
UnexpectedMoni- ara::diag::Monitor::ReportMonitorAction is called with torActionHan- a parameter action value that is not supported by the used dlingViolation debouncing method.
Parameter (in)
Parameter
Beschreibung
action
Contains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e17ef3becf1dHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode ara::diag::Monitor::StopOffer deactiveert het doorsturen van verzoeken en berichten vanuit Diagnostic Management (DM) naar de desbetreffende monitor-instantie ([SWS_DM_01089]). De aanroep wordt synchroon uitgevoerd, vereist geen overdrachtsparameters en heeft geen retourwaarde ([SWS_DM_01089]). De bewerking dient als tegenhanger van Offer en stelt een Adaptive Application in staat om de actieve bewaking te onderbreken, mits het bijbehorende systeemdeel tijdelijk niet bewaakt hoeft te worden (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). Weliswaar oriënteert de identifier zich op de interfaces uit ara::com, maar de specificatie benadrukt uitdrukkelijk dat het om een zelfstandige implementatie van ara::diag::Monitor gaat (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”).
Wat betreft de foutafhandeling is de functie gedeclareerd als noexcept en geldt deze als uitzonderingsveilig (exception safe); specifieke foutcodes of foutmeldingen bestaan niet ([SWS_DM_01089]). Als wezenlijke beperking is StopOffer geclassificeerd als niet-thread-safe (not thread-safe) ([SWS_DM_01089]). Interpretatie: bij gelijktijdige toegangen tot hetzelfde monitor-object is de aanroeper vermoedelijk zelf verantwoordelijk voor een passende synchronisatie. Vraag Q-3ead3049b4378083 (open)
In het totale systeem past StopOffer binnen een uniform patroon van de diagnosemodule: analoge interfaces voor het deactiveren van het doorsturen van DM-berichten zijn onder meer te vinden bij GenericRoutine ([SWS_DM_00558]), CommunicationControl ([SWS_DM_00810]), EcuResetRequest ([SWS_DM_01017]) en Authentication ([SWS_DM_01131]).
Deze gebruiksinstructie is geautomatiseerd gegenereerd en is gebaseerd op de specificaties van AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel