DEENESPTFRRUARHIKOZHNL

class ara::diag::Monitor

[SWS_DM_00542] Upstream: RS_Diag_04179

class Monitor final {...};

Class to implement operations on diagnostic Monitor interface.

Header-Datei#include "ara/diag/monitor.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

User GuideAI-GENERATED

Serves to execute diagnostic monitorings and report status to Diagnostic Management.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 49f63d89472d Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Serves to execute diagnostic monitorings and report status to Diagnostic Management.

The class ara::diag::Monitor provides the functional interface for implementing diagnostic monitoring functions and connecting them to Diagnostic Management [SWS_DM_00548]. After binding to a port prototype, the application signals its readiness to receive via Offer() and continuously transmits test results via ReportMonitorAction() [SWS_DM_01088], [SWS_DM_00543]. Monitor instances are neither copyable nor movable, and all operations are specified as not thread-safe [SWS_DM_01685].

Context

The class ara::diag::Monitor represents the standardized C++ interface for realizing diagnostic monitoring functions (monitors) within the Adaptive Platform [SWS_DM_00548]. A monitor is responsible for detecting and reporting fault symptoms in functional software components and transmits their states to the Diagnostic Management (DM) module.

Binding to the AUTOSAR system model is performed via an ara::core::InstanceSpecifier, which must mandatory reference a PortPrototype typed by a DiagnosticMonitorInterface [SWS_DM_00548]. Essentially three components are involved in the overall execution: the application-specific function monitoring (Application), the local interface instance of ara::diag::Monitor, and the platform module Diagnostic Management (DM), which accepts events and requests re-initializations.

diag_kontext app Anwendungssoftware (Monitor-Logik) mon ara::diag::Monitor (Port-Schnittstelle) app->mon ReportMonitorAction() Offer() / StopOffer() mon->app initMonitor-Callback getFaultDetectionCounter() dm Diagnostic Management (DM daemon) mon->dm Status- & Entprellmeldungen dm->mon Initialisierungs- & Steuerbefehle

Context diagram: Interaction relationships between application software, ara::diag::Monitor, and Diagnostic Management. Sources: [SWS_DM_00548], [SWS_DM_00543], [SWS_DM_01088], [SWS_DM_01089]

Lifecycle

Instantiation of a monitor depends on the debouncing mechanism defined in the model. The Adaptive Platform provides four constructor variants for this purpose:

  • Monitor-internal debouncing with registration of a InitMonitorNotifier callback and a function pointer for querying the Fault Detection Counter (std::function<std::int8_t()> getFaultDetectionCounter) [SWS_DM_00548].
  • Counter-based debouncing by passing parameters of type CounterBased [SWS_DM_00549].
  • Time-based debouncing by passing parameters of type TimeBased [SWS_DM_00550].
  • Direct monitoring without debouncing algorithm [SWS_DM_01972].

Instances of ara::diag::Monitor are firmly bound to their original storage location: copy constructor [SWS_DM_01685] and copy assignment operator [SWS_DM_01683] are deleted (delete). Likewise, move constructor [SWS_DM_01686] and move assignment [SWS_DM_01684] are explicitly deleted.

After creation, the instance is in the Unoffered state. Only through the explicit call of Offer() does the application declare its readiness to receive and process diagnostic callouts such as initMonitor [SWS_DM_01088]. With StopOffer(), the forwarding of diagnostic requests from the DM is deactivated again [SWS_DM_01089]. After calling StopOffer(), resuming operation later by calling Offer() again would presumably be possible. Question Q-136565db34b28ae6 (open) Prior to the final destruction of the monitor object, the application would presumably have to execute StopOffer() to reliably prevent pending notifications.

Regarding concurrency, all member functions of ara::diag::Monitor are specified as not thread-safe [SWS_DM_00548], [SWS_DM_01088], [SWS_DM_00543], [SWS_DM_01089]. If multiple threads of the application software access the same monitor, synchronization is the responsibility of the application. However, all methods are declared as exception-safe (noexcept) [SWS_DM_00548], [SWS_DM_01088], [SWS_DM_00543], [SWS_DM_01089].

diag_lebenszyklus unoffered Not offered (Unoffered / Created) offered Angeboten (Offered / Aktiv) unoffered->offered Offer() [Erfolg] offered->offered Offer() [kAlreadyOffered] stopped Gestoppt (Stopped / Inaktiv) offered->stopped StopOffer() stopped->offered Offer()

State diagram: Lifecycle states and transitions during service offering of ara::diag::Monitor. Sources: [SWS_DM_01088], [SWS_DM_01089]

Usage Path

The regular sequence for monitoring a fault path comprises the following steps:

  1. Instantiation: The application creates the Monitor instance by specifying the InstanceSpecifier, the callback initMonitor, and any required debouncing parameters or the FDC callback [SWS_DM_00548], [SWS_DM_00549].
  2. Service offering: Via Offer(), the monitor registers with the DM as ready to receive [SWS_DM_01088].
  3. Initialization: Diagnostic Management informs the application about pending initialization events via the registered InitMonitorNotifier callback [SWS_DM_01088].
  4. Cyclic/event-based reporting: During operative operation, the application continuously reports the status of the monitoring path via ReportMonitorAction(action) [SWS_DM_00543]. The passed action contains either test results (qualified/unqualified) or commands for debounce control or prestorage. If monitor-internal debouncing was configured, the DM queries the fault detection value via the registered callback if needed [SWS_DM_00548].
  5. Service termination: Prior to shutdown or upon deactivation of the diagnostic function, the application calls StopOffer() to prevent incoming DM messages [SWS_DM_01089].
Typical sequence of monitor usageApplicationara::diag::MonitorDiagnostic ManagementMonitor(specifier, initMonitor, ...)Offer()Service anbietenResult<void>Use Case: Initialization and monitoringinitMonitor(action)ReportMonitorAction(action)Status aktualisierenoptMonitor-internes DebouncinggetFaultDetectionCounter()std::int8_t FDCUse Case: DeaktivierungStopOffer()Weiterleitung deaktivieren

Sequence diagram: Typical call sequence from initialization via status reporting to deactivation. Sources: [SWS_DM_00548], [SWS_DM_01088], [SWS_DM_00543], [SWS_DM_01089]

Error Scenarios

Error situations manifest themselves in ara::diag::Monitor on two different levels: as an error code via ara::core::Result or as runtime violations of the framework.

The method Offer() returns a ara::core::Result<void>. If the monitor is already in the offered state, the call fails and returns the error code DiagOfferErrc::kAlreadyOffered [SWS_DM_01088].

Severe configuration or call errors trigger defined violation messages:

  • InstanceSpecifierMappingIntegrityViolation: The InstanceSpecifier cannot be resolved in the model context of the process or does not reference a PortPrototype [SWS_DM_00548].
  • PortInterfaceMappingViolation: The referenced port is not typed by a DiagnosticMonitorInterface [SWS_DM_00548].
  • ProcessMappingViolation: No matching modeled process exists for the runtime instance [SWS_DM_00548].
  • InstanceSpecifierAlreadyInUseViolation: The InstanceSpecifier is already used by another monitor within the current process [SWS_DM_00548].
  • InvalidDebouncingAlgorithmViolation: The debouncing mechanism selected in the constructor deviates from the debouncing method modeled in the DEXT diagnostic descriptions [SWS_DM_00548], [SWS_DM_00549], [SWS_DM_00550].
  • UnexpectedMonitorActionHandlingViolation: An action value that is not supported for the configured debouncing algorithm is passed to the method ReportMonitorAction() [SWS_DM_00543].

This guide is based on the specification AUTOSAR Adaptive Platform Release R25-11.

Member map

Constructors and destructor

1

Operators

1

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__Monitor586 Monitor + Monitor() + operator=() + Offer() + ReportMonitorAction() + StopOffer()

Detail view

Select an entry in the outline.

Constructors and destructor

Monitor function 6

Monitor constructor for Monitors with Monitor-internal debouncing. using ara::diag::CounterBased; using ara::diag::TimeBased;

Overloads Monitor 6
Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, std::function< std::int8_t()> getFaultDetection Counter) noexcept; SWS_DM_00548
Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, CounterBased defaultValues) noexcept; SWS_DM_00549
Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, TimeBased defaultValues) noexcept; SWS_DM_00550
Monitor (Monitor &)=delete; SWS_DM_01685
Monitor (Monitor &&) noexcept=delete; SWS_DM_01686
Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor) noexcept; SWS_DM_01972

Methods

Offer function

With the Offer the application states that it is ready to receive and process initMonitor callouts.

ara::core::Result< void > Offer () noexcept;

Function to report the status information being relevant for error monitoring paths.

void ReportMonitorAction (MonitorAction action) noexcept;
StopOffer function

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;

Operators

operator= function 2

Monitor shall be a single not assignable instance.

Overloads = 2
Monitor & operator= (Monitor &)=delete; SWS_DM_01683
Monitor & operator= (Monitor &&)=delete; SWS_DM_01684

Method documentation

function Monitor [SWS_DM_00548] Upstream: RS_AP_00121, RS_AP_00137, RS_Diag_04179, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, std::function< std::int8_t()> getFaultDetection Counter) noexcept;

Monitor constructor for Monitors with Monitor-internal debouncing. using ara::diag::CounterBased; using ara::diag::TimeBased;

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Verletzungen (Violations)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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
getFaultDetectionCounterPossibility 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.

Record
AUTOSAR/AP/record/SWS_DM_00548
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00548@rel:R25-11#b150023b
Content hash
b150023b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00548
Status: valid/unmigrated Version: rel:R25-11#c407131c Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00548@rel:R25-11#c407131c
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b150023b2026-09-30
  • R19-11rel:R19-11#9dae45942026-10-14
  • R20-11rel:R20-11#1b9245172026-10-14
  • R21-11rel:R21-11#9d09d2232026-10-14
  • R22-11rel:R22-11#96a416ec2026-10-14
  • R23-11rel:R23-11#bc098b922026-10-14
  • R24-11rel:R24-11#5a7c66fa2026-10-14
  • R25-11rel:R25-11#c407131c2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Monitor [SWS_DM_00549] Upstream: RS_AP_00137, RS_AP_00121, RS_Diag_04179, RS_Diag_04068, RS_ AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, CounterBased defaultValues) noexcept;

Monitor constructor for Monitors with counter-based debouncing.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Verletzungen (Violations)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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for CounterBased debouncing

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00549
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00549@rel:R25-11#aa05357e
Content hash
aa05357e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00549
Status: valid/unmigrated Version: rel:R25-11#b6b90a41 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00549@rel:R25-11#b6b90a41
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#aa05357e2026-09-30
  • R19-11rel:R19-11#409ae35a2026-10-14
  • R20-11rel:R20-11#c96bf0f52026-10-14
  • R21-11rel:R21-11#269dc8742026-10-14
  • R22-11rel:R22-11#0b5b8e002026-10-14
  • R23-11rel:R23-11#86fe0f482026-10-14
  • R24-11rel:R24-11#363e9ef32026-10-14
  • R25-11rel:R25-11#b6b90a412026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Monitor [SWS_DM_00550] Upstream: RS_AP_00121, RS_AP_00137, RS_Diag_04179, RS_Diag_04225, RS_ AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor, TimeBased defaultValues) noexcept;

Monitor constructor for Monitors with time-based debouncing.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Verletzungen (Violations)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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for TimeBased debouncing

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00550
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00550@rel:R25-11#1ba6e97a
Content hash
1ba6e97a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00550
Status: valid/unmigrated Version: rel:R25-11#37a4f2c0 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00550@rel:R25-11#37a4f2c0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#1ba6e97a2026-09-30
  • R19-11rel:R19-11#4f8f56cd2026-10-14
  • R20-11rel:R20-11#cbc0dc0f2026-10-14
  • R21-11rel:R21-11#ed45df312026-10-14
  • R22-11rel:R22-11#7eec884b2026-10-14
  • R23-11rel:R23-11#6ec7d8d22026-10-14
  • R24-11rel:R24-11#1f707ece2026-10-14
  • R25-11rel:R25-11#37a4f2c02026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Monitor [SWS_DM_01685] Upstream: RS_AP_00147

Monitor (Monitor &)=delete;

Monitor shall be a single not copy-able instance.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01685
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01685@rel:R25-11#885cac44
Content hash
885cac44
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01685
Status: valid/unmigrated Version: rel:R25-11#b61bdc4e Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01685@rel:R25-11#b61bdc4e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#885cac442026-09-30
  • R23-11rel:R23-11#1187bdc12026-10-14
  • R24-11rel:R24-11#b61bdc4e2026-10-14
  • R25-11rel:R25-11#b61bdc4e2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Monitor [SWS_DM_01686] Upstream: RS_AP_00147

Monitor (Monitor &&) noexcept=delete;

Move constructor of Monitor.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01686
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01686@rel:R25-11#e3f6b2e1
Content hash
e3f6b2e1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01686
Status: valid/unmigrated Version: rel:R25-11#0958d508 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01686@rel:R25-11#0958d508
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e3f6b2e12026-09-30
  • R23-11rel:R23-11#f9be95aa2026-10-14
  • R24-11rel:R24-11#0958d5082026-10-14
  • R25-11rel:R25-11#0958d5082026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Monitor [SWS_DM_01972] Upstream: RS_AP_00121, RS_AP_00137, RS_Diag_04179, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

Monitor (const ara::core::InstanceSpecifier &specifier, InitMonitor Notifier initMonitor) noexcept;

Monitor constructor for Monitors without debouncing.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Verletzungen (Violations)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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitorPossibility to register an InitMonitor callback

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01972
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01972@rel:R25-11#2b82c40a
Content hash
2b82c40a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01972
Status: valid/unmigrated Version: rel:R25-11#9ab5ff05 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01972@rel:R25-11#9ab5ff05
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#2b82c40a2026-09-30
  • R24-11rel:R24-11#9596c0212026-10-14
  • R25-11rel:R25-11#9ab5ff052026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function Offer [SWS_DM_01088] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04169

ara::core::Result< void > Offer () noexcept;

With the Offer the application states that it is ready to receive and process initMonitor callouts.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2e8d03769af8 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

By calling the method Offer, an Adaptive Application signals to Diagnostic Management (DM) that it is ready to receive and process initMonitor callouts [SWS_DM_01088]. The method of class ara::diag::Monitor has no parameters and returns ara::core::Result<void> [SWS_DM_01088]. Although the name was chosen in reference to ara::com, it is a specific implementation of the diagnostic component and must not be confused with communication services AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.

In case of an error, the method returns the error code DiagOfferErrc::kAlreadyOffered if the service was already offered previously [SWS_DM_01088]. This corresponds to the enumerator for reporting already active offers within the diagnostic error domains [SWS_DM_00514]. Upon a successful call, the return object contains no error.

Regarding concurrency, the method is specified as not thread-safe, meaning concurrent calls on the same instance must be synchronized on the application side [SWS_DM_01088]. In addition, the function is declared as exception-safe (exception safe) and with noexcept [SWS_DM_01088].

In interaction, the interface serves as a provided port for notifications from the DM, while the application reports diagnostic states to the DM AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. Offering via Offer enables the DM to trigger the notifiers initMonitor for monitors with internal, counter-based, or time-based debouncing AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. Terminating service readiness is done via the method StopOffer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.

This usage note was generated automatically. All statements are substantiated by the AUTOSAR Adaptive Platform specification.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01088
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01088@rel:R25-11#14a77d03
Content hash
14a77d03
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01088
Status: valid/unmigrated Version: rel:R25-11#c26ecf6d Versionshistorie & Revisions (1 transition, 6 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01088@rel:R25-11#c26ecf6d
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#14a77d032026-09-30
  • R21-11rel:R21-11#faa82eee2026-10-14
  • R22-11rel:R22-11#a9c6d5b82026-10-14
  • R23-11rel:R23-11#2bc534172026-10-14
  • R24-11rel:R24-11#51ad38872026-10-14
  • R25-11rel:R25-11#c26ecf6d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ReportMonitorAction [SWS_DM_00543] Upstream: RS_Diag_04179, RS_AP_00139, RS_AP_00119

void ReportMonitorAction (MonitorAction action) noexcept;

Function to report the status information being relevant for error monitoring paths.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8334da733b55 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous method ReportMonitorAction of class ara::diag::Monitor reports status and monitoring information of a diagnostic check to the error monitoring of the Diagnostic Management daemon [SWS_DM_00543]. Via parameter action of type MonitorAction, the application passes either a qualified or unqualified test result, or control commands for controlling debouncing and triggering prestorage [SWS_DM_00543]. The function returns no value (void) and is declared as noexcept as well as exception-safe [SWS_DM_00543].

If ReportMonitorAction is called with a value for action that is not supported by the configured debouncing algorithm of the diagnostic event, the Diagnostic Manager triggers a process violation [SWS_DM_01988]. In addition, the system defines internal error codes in type DiagErrc, for example kReportIgnored for situations in which enable conditions are not fulfilled [SWS_DM_00514].

The following boundary conditions apply to integration and concurrency:

  • Thread safety: The function is not thread-safe (not thread-safe) [SWS_DM_00543]. Concurrent calls on the same monitor instance must be synchronized on the caller side (in contrast to MultipleMonitor, where thread safety is configurable via the constructor [SWS_DM_01698]).
  • Enable conditions: If an enable condition assigned to the diagnostic event is not fulfilled, the call to ReportMonitorAction is ignored SWS Diagnostics §7.3.4.1.4 “EnableConditions”.
  • Debouncing: Reported actions such as kPrefailed modify the internal debouncing counter according to the configured step size [SWS_DM_00875], until the error is classified as kFinallyDefective when the threshold is reached [SWS_DM_00024].

This usage note was generated automatically based on specification AUTOSAR AP R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe
Verletzungen (Violations)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)

ParameterBeschreibung
actionContains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00543
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00543@rel:R25-11#060fb875
Content hash
060fb875
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00543
Status: valid/unmigrated Version: rel:R25-11#f21b58da Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00543@rel:R25-11#f21b58da
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#060fb8752026-09-30
  • R19-11rel:R19-11#ecd452012026-10-14
  • R20-11rel:R20-11#601960092026-10-14
  • R21-11rel:R21-11#e35f2a592026-10-14
  • R22-11rel:R22-11#52a806d52026-10-14
  • R23-11rel:R23-11#3d9de7712026-10-14
  • R24-11rel:R24-11#f069565a2026-10-14
  • R25-11rel:R25-11#f21b58da2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function StopOffer [SWS_DM_01089] Upstream: RS_Diag_04169

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: e17ef3becf1d Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The method ara::diag::Monitor::StopOffer disables the forwarding of requests and messages from Diagnostic Management (DM) to the respective monitor instance ([SWS_DM_01089]). The call is executed synchronously, requires no input parameters, and has no return value ([SWS_DM_01089]). The operation serves as the counterpart to Offer and allows an Adaptive Application to suspend active monitoring if the associated system part does not need to be monitored temporarily (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”). Although the identifier is oriented toward the interfaces from ara::com, the specification explicitly emphasizes that it is an independent implementation of ara::diag::Monitor (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”).

Regarding error handling, the function is declared as noexcept and considered exception safe; specific error codes or error messages do not exist ([SWS_DM_01089]). As a key constraint, StopOffer is classified as not thread-safe ([SWS_DM_01089]). Interpretation: In the case of concurrent accesses to the same monitor object, the caller is likely responsible for suitable synchronization itself. Question Q-3ead3049b4378083 (open)

In the overall system, StopOffer fits into a uniform pattern of the diagnostic module: Analogous interfaces for disabling DM message forwarding can be found, among others, in GenericRoutine ([SWS_DM_00558]), CommunicationControl ([SWS_DM_00810]), EcuResetRequest ([SWS_DM_01017]), and Authentication ([SWS_DM_01131]).

This usage note was automatically generated and is based on the specifications of AUTOSAR Adaptive R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01089
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01089@rel:R25-11#25a3dd98
Content hash
25a3dd98
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01089
Status: valid/unmigrated Version: rel:R25-11#66952c09 Versionshistorie & Revisions (1 transition, 6 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01089@rel:R25-11#66952c09
Point-in-Time History:
Recorded Revisions (6):
  • R25-11rel:R25-11#25a3dd982026-09-30
  • R21-11rel:R21-11#ba7933502026-10-14
  • R22-11rel:R22-11#70e8e0742026-10-14
  • R23-11rel:R23-11#b0a4240b2026-10-14
  • R24-11rel:R24-11#44f352c32026-10-14
  • R25-11rel:R25-11#66952c092026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_DM_01683] Upstream: RS_AP_00147

Monitor & operator= (Monitor &)=delete;

Monitor shall be a single not assignable instance.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01683
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01683@rel:R25-11#e8fea5aa
Content hash
e8fea5aa
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01683
Status: valid/unmigrated Version: rel:R25-11#35cb3ac0 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01683@rel:R25-11#35cb3ac0
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e8fea5aa2026-09-30
  • R23-11rel:R23-11#f832beb72026-10-14
  • R24-11rel:R24-11#35cb3ac02026-10-14
  • R25-11rel:R25-11#35cb3ac02026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_DM_01684] Upstream: RS_AP_00147

Monitor & operator= (Monitor &&)=delete;

Move assignment operator of Monitor.

Header-Datei#include "ara/diag/monitor.h"
Scopeclass ara::diag::Monitor

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01684
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01684@rel:R25-11#ea640fb1
Content hash
ea640fb1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01684
Status: valid/unmigrated Version: rel:R25-11#0f50b9c9 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01684@rel:R25-11#0f50b9c9
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#ea640fb12026-09-30
  • R23-11rel:R23-11#e3480a782026-10-14
  • R24-11rel:R24-11#0f50b9c92026-10-14
  • R25-11rel:R25-11#0f50b9c92026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill