DEENESPTFRRUARHIKOZHNL

class ara::diag::MultipleMonitor

[SWS_DM_01694] Upstream: RS_Diag_04179

class MultipleMonitor final {...};

Class to implement monitor operations on the multiple monitor interfaces.

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

User GuideAI-GENERATED

Bundles and controls diagnostic test results of multiple monitors via a shared adaptive port interface.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5649718bd703 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Bundles and controls diagnostic test results of multiple monitors via a shared adaptive port interface.

The class ara::diag::MultipleMonitor bundles the monitoring operations of multiple diagnostic monitors via a shared port interface in the AUTOSAR system [SWS_DM_01695]. Before reporting test results, each monitor must be configured individually and the overall service must be enabled for Diagnostic Management via Offer [SWS_DM_01696]. Because copy and move operations are completely prohibited, each instance is permanently bound to its creation context. Faulty monitor handles are fault-tolerantly ignored when issuing status reports during ongoing operation.

Context

The class ara::diag::MultipleMonitor is used to implement monitor operations via multiple monitor interfaces within the AUTOSAR Adaptive Platform [SWS_DM_01695]. In contrast to interfaces for single monitors, MultipleMonitor bundles the fault monitoring and status reporting of multiple diagnostic monitors via a shared PortPrototype, which must be typed in the model by a DiagnosticMultipleMonitorInterface [SWS_DM_01695].

The overall system integrates three central interaction partners:

  • Application software: Instantiates the class, configures the individual monitors, and delivers test results as well as debouncing instructions cyclically or event-based [SWS_DM_01695], [SWS_DM_01698].
  • MultipleMonitor: Manages the monitor configurations, accepts action reports, and ensures forwarding to Diagnostic Management [SWS_DM_01696], [SWS_DM_01699].
  • Diagnostic Management (DM): Processes the status information of relevant fault monitoring paths and forwards incoming request messages to the monitor handler after the service has been offered [SWS_DM_01698], [SWS_DM_01699], [SWS_DM_01700].
MultipleMonitorContext App Anwendungssoftware MM ara::diag::MultipleMonitor App->MM Konfiguration & Testergebnisse DM Diagnostic Management (DM) MM->DM Statusweiterleitung DM->MM Anforderungsnachrichten

Context diagram: Embedding of MultipleMonitor between application software and Diagnostic Management. Sources: [SWS_DM_01695], [SWS_DM_01698], [SWS_DM_01699].

Lifecycle

Instantiation of MultipleMonitor occurs synchronously by passing a ara::core::InstanceSpecifier, which establishes the port mapping [SWS_DM_01695]. Regarding ownership, the class is designed as a purely location-bound resource: both the copy constructor [SWS_DM_02065] and the move constructor [SWS_DM_02066] as well as all assignment operators [SWS_DM_02063], [SWS_DM_02064] are explicitly deleted (delete). An instance can therefore neither be copied nor moved.

With regard to service state, the instance is initially inactive after creation. Calling Offer() activates the forwarding of diagnostic requests by the DM [SWS_DM_01699]. With StopOffer(), this forwarding can be selectively disabled again, for instance prior to shutdown or during reconfigurations [SWS_DM_01700].

The concurrency requirements are governed in a differentiated manner: The constructor is declared as thread-safe [SWS_DM_01695]. In contrast, monitor configuration via ConfigureMonitor as well as the service controls Offer and StopOffer are specified as not thread-safe and require externally coordinated calls [SWS_DM_01696], [SWS_DM_01699], [SWS_DM_01700]. The thread safety of ReportMonitorAction is conditional: it is defined via the ConcurrencyType stored in the construction context [SWS_DM_01698]. Interpretation: Because the C++ constructor only accepts the InstanceSpecifier, this ConcurrencyType is likely configured via the manifest stored in the model. Question Q-33b384f8537e387b (open)

Usage Path

The typical usage of MultipleMonitor follows a fixed sequence of phases:

  1. Creation: Creating the object with the configured InstanceSpecifier [SWS_DM_01695].
  2. Configuration: Each assigned monitor must be configured exactly once prior to its use via an overload of ConfigureMonitor [SWS_DM_01696]. Four debouncing types are available for selection:
    • Without debouncing, registering the InitMonitorNotifier [SWS_DM_01973],
    • time-based debouncing with default values of TimeBased [SWS_DM_01697],
    • counter-based debouncing with default values of CounterBased [SWS_DM_01702], or
    • monitor-internal debouncing, passing a function pointer to query the current fault detection counter (FDC) [SWS_DM_01696].
  3. Offer: Calling Offer() to enable Diagnostic Management to forward requests [SWS_DM_01699].
  4. Operation: Ongoing reporting of monitor results or control commands to the DM via ReportMonitorAction, passing the respective monitorHandle and action [SWS_DM_01698].
  5. Termination: Calling StopOffer() to disable the forwarding of request messages [SWS_DM_01700].
Nutzungsablauf von MultipleMonitorApplicationMultipleMonitorDiagnostic ManagementUse Case: 1. InstanziierungMultipleMonitor(specifier)Use Case: 2. KonfigurationConfigureMonitor(monitorHandle, ...)Result<void>Use Case: 3. DienstfreigabeOffer()Handler registrierenResult<void>Use Case: 4. BetriebsphaseReportMonitorAction(monitorHandle, action)Statusinformation weiterleitenUse Case: 5. BeendigungStopOffer()Weiterleitung stoppen

Sequence diagram: Phases of the lifecycle and usage cycle of MultipleMonitor. Sources: [SWS_DM_01695], [SWS_DM_01696], [SWS_DM_01699], [SWS_DM_01698], [SWS_DM_01700].

Error Scenarios

The specification defines clear error and exception behaviors for MultipleMonitor:

  • Integration and modeling violations:\nUpon instantiation, the framework verifies model consistency [SWS_DM_01695]:
    • InstanceSpecifierMappingIntegrityViolation: The identifier does not reference a PortPrototype or cannot be resolved in the model.
    • PortInterfaceMappingViolation: The port is not typed by a DiagnosticMultipleMonitorInterface.
    • ProcessMappingViolation: No matching modeled process exists for the executing process.
    • InstanceSpecifierAlreadyInUseViolation: The identifier is already used by another instance in the same process.
  • Configuration errors:\nAll overloads of ConfigureMonitor return an ara::core::Result<void>. For invalid parameters, such as prohibited debouncing values or rollback semantics (e.g. kPreFailed for internal debouncing), the error DiagErrc::kInvalidArgument is returned [SWS_DM_01696], [SWS_DM_01697], [SWS_DM_01702], [SWS_DM_01973].
  • Error during service offering:\nIf Offer() is called when the service is already actively offered, the call fails with the error code DiagOfferErrc::kAlreadyOffered [SWS_DM_01699].
  • Fault tolerance for action reports:\nThe method ReportMonitorAction returns no error code (return type void). If called with an invalid or unknown monitorHandle, the call is silently ignored according to the specification [SWS_DM_01698].

This guide is based on the AUTOSAR Adaptive Platform R25-11 specification and was curated automatically.

Member map

Class diagram

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

G nara__diag__MultipleMonitor546 MultipleMonitor + MultipleMonitor() + operator=() + ConfigureMonitor() + Offer() + ReportMonitorAction() + StopOffer()

Detail view

Select an entry in the outline.

Constructors and destructor

MultipleMonitor function 3

MultipleMonitor constructor allows to report status of more than one monitor. using ara::diag::CounterBased; using ara::diag::TimeBased;

Overloads MultipleMonitor 3
MultipleMonitor (const ara::core::InstanceSpecifier &specifier) noexcept; SWS_DM_01695
MultipleMonitor (MultipleMonitor &)=delete; SWS_DM_02065
MultipleMonitor (MultipleMonitor &&) noexcept=delete; SWS_DM_02066

Methods

ConfigureMonitor function 4

Configures a monitor with Monitor-internal debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

Overloads ConfigureMonitor 4
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept; SWS_DM_01696
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, TimeBased defaultValues) noexcept; SWS_DM_01697
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, CounterBased defaultValues) noexcept; SWS_DM_01702
ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor) noexcept; SWS_DM_01973
Offer function

This Offer will enable the DM to forward request messages to this handler.

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

Function to report the status information being relevant for error monitoring paths. Calls with invalid monitorHandle are ignored.

void ReportMonitorAction (MonitorHandleType monitorHandle, Monitor Action action) noexcept;
StopOffer function

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

void StopOffer () noexcept;

Operators

operator= function 2

Copy assignment operator of MultiMonitor.

Overloads = 2

Method documentation

function ConfigureMonitor [SWS_DM_01696] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, std::function< std::int8_t()> getFaultDetectionCounter) noexcept;

Configures a monitor with Monitor-internal debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

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

use

The method ara::diag::MultipleMonitor::ConfigureMonitor initializes a diagnostic monitor for monitor-internal debouncing [SWS_DM_01696]. Via parameter monitorHandle, the monitor to be configured is addressed, while initMonitor registers a notifier callback for re-initializations and getFaultDetectionCounter registers a function to retrieve the current fault detection counter (FDC) [SWS_DM_01696]. Execution is synchronous and returns a ara::core::Result<void> AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.4 “ConfigureMonitor”.

Error Handling and Concurrency

In case of error, the error result DiagErrc::kInvalidArgument is returned [SWS_DM_01696]. This is likely to occur in particular if invalid function pointers are passed or incompatible states exist in internal debouncing (interpretation). Question Q-3de0f2b0cc427ef3 (open) The operation is specified as noexcept as well as exception safe, but explicitly marked as not thread-safe [SWS_DM_01696]. Invocations on the same monitor instance must therefore be synchronized on the application side.

Sequence and Interaction

Each overload of ConfigureMonitor may only be called exactly once for a monitor; the monitor is ready for use only after this initialization step [SWS_DM_01696]. In monitor-internal debouncing, the diagnostic monitor application processes the debouncing logic autonomously and only transmits final results to the Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.3 “Monitor-internal debouncing”. For other debouncing mechanisms, alternative overloads are available for time-based [SWS_DM_01697], counter-based [SWS_DM_01702], or unbounced monitors [SWS_DM_01973].

This usage note was created automatically based on the specification.

Implementer's Guide to follow (complexity I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
getFaultDetectionCounterPossibility to register a function to get the current FDC for this event.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01696
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01696@rel:R25-11#c62b4011
Content hash
c62b4011
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01696
Status: valid/unmigrated Version: rel:R25-11#8434f254 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_01696@rel:R25-11#8434f254
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#c62b40112026-09-30
  • R23-11rel:R23-11#daa241aa2026-10-14
  • R24-11rel:R24-11#b8bb06ec2026-10-14
  • R25-11rel:R25-11#8434f2542026-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 ConfigureMonitor [SWS_DM_01697] Upstream: RS_AP_00137, RS_Diag_04179, RS_Diag_04225, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, TimeBased defaultValues) noexcept;

Configures a monitor with time-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

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

use

The synchronous member function ara::diag::MultipleMonitor::ConfigureMonitor from header file ara/diag/multiple_monitor.h configures a diagnostic monitor with time-based debouncing ([SWS_DM_01697], SWS Diagnostics §8.44.2.1.3.2 “ConfigureMonitor(MonitorHandleType, InitMonitorNotifier, TimeBased)”). Upon invocation, handle monitorHandle for identifying the monitor, callback function initMonitor of type InitMonitorNotifier, and debouncing parameters defaultValues of type TimeBased are passed ([SWS_DM_01697]). The return value is ara::core::Result<void>, and the function signature is declared as noexcept ([SWS_DM_01697]).

Invocation conditions and concurrency

A monitor can only be used after completion of this initialization step ([SWS_DM_01697]). Each overloaded variant of ConfigureMonitor may only be called exactly once per monitor instance ([SWS_DM_01697]). Although the interface is exception safe (exception safe), it is not thread-safe (not thread-safe), so parallel calls on the same instance must be synchronized by the user ([SWS_DM_01697]).

Error handling

If configuration fails, the call returns an error object within ara::core::Result, in particular error code DiagErrc::kInvalidArgument ([SWS_DM_01697]).

Interaction

The method complements the alternative initialization functions for counter-based debouncing ([SWS_DM_01702]), monitor-internal debouncing ([SWS_DM_01696]), and monitors without debouncing ([SWS_DM_01973]). For time-based debounced events, the Diagnostic Manager also supports targeted freezing of the debouncing timer ([SWS_DM_00880]) and its subsequent resumption from the frozen state ([SWS_DM_00038]).

This usage note was generated by an AI and serves as guidance based on the specification AUTOSAR AP R25-11.

Implementer's Guide to follow (complexity I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for TimeBased debouncing

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01697
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01697@rel:R25-11#e8248288
Content hash
e8248288
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01697
Status: valid/unmigrated Version: rel:R25-11#8ee088b6 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_01697@rel:R25-11#8ee088b6
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#e82482882026-09-30
  • R23-11rel:R23-11#a7b946392026-10-14
  • R24-11rel:R24-11#1af4bda12026-10-14
  • R25-11rel:R25-11#8ee088b62026-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 ConfigureMonitor [SWS_DM_01702] Upstream: RS_AP_00137, RS_Diag_04179, RS_Diag_04068, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor, CounterBased defaultValues) noexcept;

Configures a monitor with counter-based debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

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

The synchronous method ConfigureMonitor of class ara::diag::MultipleMonitor serves to initialize a diagnostic monitor with counter-based debouncing ([SWS_DM_01702], AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.1 “ConfigureMonitor”). The declaration is provided via header file ara/diag/multiple_monitor.h ([SWS_DM_01702]).

Usage and Parameters

The function accepts the following input parameters ([SWS_DM_01702]):

  • monitorHandle (MonitorHandleType): Identifies the diagnostic monitor to be configured.
  • initMonitor (InitMonitorNotifier): Registers a notification callback function for initializing the monitor.
  • defaultValues (CounterBased): Passes default configuration values for counter-based debouncing.

As a return value, the operation provides a ara::core::Result<void> that provides information about success or failure ([SWS_DM_01702]).

Error handling

If configuration fails, an error is reported in the return value. In case of invalid arguments, error code DiagErrc::kInvalidArgument is returned ([SWS_DM_01702]). The function is declared as noexcept and guarantees exception safety (exception safe) ([SWS_DM_01702]).

Concurrency and Limitations

Each overload of ConfigureMonitor must strictly be called only exactly once for a monitor; the monitor is only usable after this initialization step ([SWS_DM_01702]). Because the operation is classified as not thread-safe (not thread-safe) ([SWS_DM_01702]), external synchronization is likely required if calls occur across thread boundaries (interpretation). Question Q-fcb809ccb021dd6d (open)

Interaction

The method is part of the configuration interface in MultipleMonitor. It complements related overloads for time-based debouncing with TimeBased ([SWS_DM_01697]), for monitor-internal debouncing with a readout function ([SWS_DM_01696]), and for monitors without any debouncing mechanism ([SWS_DM_01973]).

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

Implementer's Guide to follow (complexity I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
initMonitorPossibility to register an InitMonitor callback
defaultValuesDefault values for CounterBased debouncing

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01702
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01702@rel:R25-11#fa2b5a6d
Content hash
fa2b5a6d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01702
Status: valid/unmigrated Version: rel:R25-11#989ecee5 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_01702@rel:R25-11#989ecee5
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#fa2b5a6d2026-09-30
  • R23-11rel:R23-11#f97ffce82026-10-14
  • R24-11rel:R24-11#617225532026-10-14
  • R25-11rel:R25-11#989ecee52026-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 ConfigureMonitor [SWS_DM_01973] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121

ara::core::Result< void > ConfigureMonitor (MonitorHandleType monitor Handle, InitMonitorNotifier initMonitor) noexcept;

Configures a monitor without debouncing. Any overloaded ConfigureMonitor shall be only called once per monitor. The monitor can only be used after this initialisation step.

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

The synchronous method ConfigureMonitor serves to initialize a diagnostic monitor without debouncing within ara::diag::MultipleMonitor ([SWS_DM_01973], AUTOSAR_AP_SWS_Diagnostics §8.44.2.1.3.3 “ConfigureMonitor(MonitorHandleType, InitMonitorNotifier)”). It accepts as input parameters the handle of the monitor (monitorHandle) and a callback function (initMonitor) for registering an InitMonitorNotifier notification ([SWS_DM_01973]). Only after this mandatory initialization step can the monitor in question be used actively ([SWS_DM_01973]).

Regarding the call context and concurrency, the following boundary conditions apply:

  • Each overload of ConfigureMonitor may be called exactly once for each individual monitor ([SWS_DM_01973]).
  • The method is specified as exception safe, but classified as not thread-safe ([SWS_DM_01973]). Concurrent access to the same monitor is therefore likely to require external synchronization by the application. Question Q-2272f26f380a5a11 (open)

The function returns a ara::core::Result<void> as a result ([SWS_DM_01973]). If configuration fails, an error is returned, for example DiagErrc::kInvalidArgument ([SWS_DM_01973]). If a debouncing method is required for the diagnostic monitor, the overloaded variants for monitor-internal debouncing ([SWS_DM_01696]), time-based debouncing ([SWS_DM_01697]), or counter-based debouncing ([SWS_DM_01702]) are available instead.

This text was created by an AI and curated by autodocs.

Implementer's Guide to follow (complexity I2)

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

Parameter (in)

ParameterBeschreibung
monitorHandleHandle of the monitor
initMonitorPossibility to register an InitMonitor callback.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
DiagErrc::kInvalidArgumentrollback_semantics e.g. kPreFailed with internal debouncing

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

Record
AUTOSAR/AP/record/SWS_DM_01973
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01973@rel:R25-11#82431ed1
Content hash
82431ed1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01973
Status: valid/unmigrated Version: rel:R25-11#13fc3ba7 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_01973@rel:R25-11#13fc3ba7
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#82431ed12026-09-30
  • R24-11rel:R24-11#41b36eef2026-10-14
  • R25-11rel:R25-11#13fc3ba72026-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 MultipleMonitor [SWS_DM_01695] Upstream: RS_AP_00137, RS_Diag_04179, RS_AP_00121, RS_AP_00170, RS_AP_00171, RS_AP_00172, RS_AP_00173

MultipleMonitor (const ara::core::InstanceSpecifier &specifier) noexcept;

MultipleMonitor constructor allows to report status of more than one monitor. using ara::diag::CounterBased; using ara::diag::TimeBased;

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
Exception-Sicherheitexception safe
Thread-Sicherheitthread-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 DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleMonitorInterface. 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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticMultipleMonitorInterface.

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

Record
AUTOSAR/AP/record/SWS_DM_01695
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01695@rel:R25-11#8cca70aa
Content hash
8cca70aa
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01695
Status: valid/unmigrated Version: rel:R25-11#1473320e 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_01695@rel:R25-11#1473320e
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#8cca70aa2026-09-30
  • R23-11rel:R23-11#eed8da002026-10-14
  • R24-11rel:R24-11#3a6f42062026-10-14
  • R25-11rel:R25-11#1473320e2026-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 MultipleMonitor [SWS_DM_02065] Upstream: RS_AP_00147

MultipleMonitor (MultipleMonitor &)=delete;

Copy constructor of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02065@rel:R25-11#6c568a37
Content hash
6c568a37
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02065
Status: valid/unmigrated Version: rel:R25-11#c21a7312 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_02065@rel:R25-11#c21a7312
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#6c568a372026-09-30
  • R24-11rel:R24-11#c21a73122026-10-14
  • R25-11rel:R25-11#c21a73122026-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 MultipleMonitor [SWS_DM_02066] Upstream: RS_AP_00147

MultipleMonitor (MultipleMonitor &&) noexcept=delete;

Move constructor of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02066
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02066@rel:R25-11#30301a46
Content hash
30301a46
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02066
Status: valid/unmigrated Version: rel:R25-11#8b9fcedb 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_02066@rel:R25-11#8b9fcedb
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#30301a462026-09-30
  • R24-11rel:R24-11#8b9fcedb2026-10-14
  • R25-11rel:R25-11#8b9fcedb2026-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_01699] Upstream: RS_AP_00119, RS_AP_00139, RS_Diag_04169

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

This Offer will enable the DM to forward request messages to this handler.

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

The function Offer enables the forwarding of incoming diagnostic requests by the Diagnostic Management daemon (DM) to the respective handler [SWS_DM_01699]. The synchronous call takes no parameters and is specified as noexcept with exception safety (exception safe) [SWS_DM_01699].

In the event of success, the function returns an empty ara::core::Result<void> [SWS_DM_01699]. If registration for the handler was already performed successfully beforehand, the call fails and returns the error code DiagOfferErrc::kAlreadyOffered with rollback semantics [SWS_DM_01699]; this error state is anchored in the diagnostic error domain [SWS_DM_00514].

Regarding concurrency, the method is declared as not thread-safe [SWS_DM_01699]. Interpretation: Calls on the same handler instance presumably must not be made unprotected from different threads in order to avoid inconsistencies in the registration state. Question Q-95f2e0895004c73b (open)

The pattern of the Offer method corresponds to the uniform offering mechanism for diagnostic handlers in AUTOSAR Adaptive, as used analogously for generic routines [SWS_DM_00557] or UDS services [SWS_DM_00619], for example. Although the naming is based on service offering in ara::com, it is an independent diagnosis-specific implementation AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.

This text was created by an AI and is based on the AUTOSAR R25-11 specification.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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_01699
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01699@rel:R25-11#b32da78a
Content hash
b32da78a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01699
Status: valid/unmigrated Version: rel:R25-11#dbadad89 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_01699@rel:R25-11#dbadad89
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#b32da78a2026-09-30
  • R23-11rel:R23-11#58671f562026-10-14
  • R24-11rel:R24-11#f4bbc99a2026-10-14
  • R25-11rel:R25-11#dbadad892026-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_01698] Upstream: RS_Diag_04179, RS_AP_00139, RS_AP_00119

void ReportMonitorAction (MonitorHandleType monitorHandle, Monitor Action action) noexcept;

Function to report the status information being relevant for error monitoring paths. Calls with invalid monitorHandle are ignored.

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

The function [SWS_DM_01698] in ara::diag::MultipleMonitor is used to report status information and debouncing commands for a specific diagnostic monitor to the Diagnostic Manager (DM). The target monitor is addressed via the parameter monitorHandle, while action passes the (un)qualified test result or commands for debouncing and pre-storing.

Regarding the error behavior, calls with an invalid monitorHandle are ignored by the DM [SWS_DM_01698]. If an action is passed that is not supported by the configured debouncing algorithm, the DM triggers a violation [SWS_DM_01988]. In addition, unmet enable conditions can cause reports to be discarded (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.4 “EnableConditions”), which corresponds to internal error codes [SWS_DM_00514].

Regarding concurrency and execution:

  • The method is declared as noexcept and is therefore exception-safe [SWS_DM_01698].
  • Thread safety is conditional: whether calls must be thread-safe is determined via the ConcurrencyType passed to the constructor [SWS_DM_01698].
  • In conjunction with counter-based debouncing, the report kPrefailed, for instance, leads to the incrementation of the internal counter [SWS_DM_00875]. Interpretation: The debouncing mechanisms and enable conditions defined for individual monitors presumably apply identically to the multi-instance controlled via handles. Question Q-ff29529143d35ca2 (open)

This text was generated by an artificial intelligence and serves as a guideline. Only the specification is authoritative.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
monitorHandleIdentifies the requested monitor
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_01698
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01698@rel:R25-11#35d2f04a
Content hash
35d2f04a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01698
Status: valid/unmigrated Version: rel:R25-11#484acfb0 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_01698@rel:R25-11#484acfb0
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#35d2f04a2026-09-30
  • R23-11rel:R23-11#5e30ecc22026-10-14
  • R24-11rel:R24-11#0e71631b2026-10-14
  • R25-11rel:R25-11#484acfb02026-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_01700] 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: 5c610df99c8e Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The method StopOffer of class ara::diag::MultipleMonitor serves to disable the forwarding of request messages from Diagnostic Management (DM) to the handler [SWS_DM_01700]. It forms the functional counterpart to offering the interface and enables the application to stop processing incoming diagnostic requests in a targeted manner.

Usage is subject to the following characteristics and boundary conditions:

  • Signature and call context: The function is declared via header ara/diag/multiple_monitor.h and has the signature void StopOffer() noexcept; [SWS_DM_01700]. It takes no parameters and returns no value. The call is executed synchronously.
  • Error handling: The method is specified as noexcept and exception-safe (exception safe) [SWS_DM_01700]. It throws no exceptions and provides no specific error codes or error messages.
  • Concurrency: The element is explicitly classified as not thread-safe (not thread-safe) [SWS_DM_01700]. A concurrent call on the same instance would likely need to be synchronized externally by the application. Question Q-b73ead392f8b95b2 (open)

The semantics of StopOffer follow the uniform design pattern for diagnostic handlers in AUTOSAR Adaptive, where services are controlled via Offer and StopOffer AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”. The same principle of disabling request forwarding is found in related ports such as ara::diag::Monitor::StopOffer [SWS_DM_01089] as well as generic routines [SWS_DM_00558] and UDS services [SWS_DM_00620].

This text was created by an AI and is based on the AUTOSAR Adaptive R25-11 specification.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor
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_01700
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01700@rel:R25-11#4730b46b
Content hash
4730b46b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01700
Status: valid/unmigrated Version: rel:R25-11#ee360dce 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_01700@rel:R25-11#ee360dce
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#4730b46b2026-09-30
  • R23-11rel:R23-11#cdd2dfd42026-10-14
  • R24-11rel:R24-11#7600bb892026-10-14
  • R25-11rel:R25-11#ee360dce2026-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_02063] Upstream: RS_AP_00147

MultipleMonitor & operator= (MultipleMonitor &)=delete;

Copy assignment operator of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02063
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02063@rel:R25-11#c56ac9f0
Content hash
c56ac9f0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02063
Status: valid/unmigrated Version: rel:R25-11#5988d6ad 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_02063@rel:R25-11#5988d6ad
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#c56ac9f02026-09-30
  • R24-11rel:R24-11#5988d6ad2026-10-14
  • R25-11rel:R25-11#5988d6ad2026-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_02064] Upstream: RS_AP_00147

MultipleMonitor & operator= (MultipleMonitor &&)=delete;

Move assignment operator of MultiMonitor.

Header-Datei#include "ara/diag/multiple_monitor.h"
Scopeclass ara::diag::MultipleMonitor

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

Record
AUTOSAR/AP/record/SWS_DM_02064
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02064@rel:R25-11#55db677c
Content hash
55db677c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02064
Status: valid/unmigrated Version: rel:R25-11#7267f3fb 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_02064@rel:R25-11#7267f3fb
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#55db677c2026-09-30
  • R24-11rel:R24-11#7267f3fb2026-10-14
  • R25-11rel:R25-11#7267f3fb2026-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