DEENESPTFRRUARHIKOZHNL

class ara::diag::EcuResetRequest

[SWS_DM_01009] Upstream: RS_Diag_04169, RS_Diag_04279

class EcuResetRequest {...};

Service EcuReset Request interface.

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

User GuideAI-GENERATED

Serves as an interface for applications to verify and execute UDS ECU resets in Diagnostic Management.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5b921e2dd86f Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Serves as an interface for applications to verify and execute UDS ECU resets in Diagnostic Management.

The class ara::diag::EcuResetRequest represents the application interface for handling UDS reset services (Service 0x11) in Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1. After activation by means of Offer(), it accepts requests to verify and execute restarts as well as for rapid shutdown control ([SWS_DM_01016], [SWS_DM_01013], [SWS_DM_01014]). Instances are neither copyable nor movable, and all methods are specified as not thread-safe ([SWS_DM_01010], [SWS_DM_01621]).

Context

The interface class ara::diag::EcuResetRequest serves to handle the UDS service ECUReset (Service 0x11) in the AUTOSAR Adaptive Platform AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 “Service 0x11 – ECUReset – RapidPowerShutdown sub function”. It enables an application to act as a handler for reset requests from the Diagnostic Management (DM). Its responsibilities include enabling or disabling rapid shutdown ([SWS_DM_01012]), checking incoming reset requests ([SWS_DM_01013]), and the actual execution of the restart ([SWS_DM_01014]). Involved interaction partners are the external diagnostic tester, the instance of the Diagnostic Management (DM or Diagnostic Server), and the application-side implementation of EcuResetRequest.

EcuResetContext Tester Diagnosetester DM Diagnostic Management (DM) Tester->DM UDS Service 0x11 (ECUReset) Handler ara::diag::EcuResetRequest (Anwendungshandler) DM->Handler Offer / StopOffer EnableRapidShutdown RequestReset ExecuteReset

Context diagram: Interaction between diagnostic tester, Diagnostic Management (DM), and the handler application. Sources: AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1, AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2, [SWS_DM_01010], [SWS_DM_01016].

Lifecycle

An instance of EcuResetRequest is created via its explicit constructor by specifying an ara::core::InstanceSpecifier that refers to an PortPrototype of an DiagnosticEcuResetInterface ([SWS_DM_01010]). According to the design guidelines, the class is neither copyable nor movable; copy and move constructors ([SWS_DM_01621], [SWS_DM_01622]) as well as the corresponding assignment operators ([SWS_DM_01619], [SWS_DM_01620]) are explicitly deleted (=delete). All interface methods as well as the destructor ([SWS_DM_01011]) are specified as not thread-safe ([SWS_DM_01010], [SWS_DM_01016], [SWS_DM_01017]). After initialization, the handler is initially in the state where no forwarding of requests takes place, until registration is explicitly activated via Offer() ([SWS_DM_01016]). Calling StopOffer() deactivates the forwarding of requests again ([SWS_DM_01017]) before the object can be destroyed ([SWS_DM_01011]).

EcuResetLifecycle Init Not initialized Instantiated Instantiated (Not offered) Init->Instantiated EcuResetRequest(specifier) Offered Angeboten (Anfragen aktiv) Instantiated->Offered Offer() Destroyed Destroyed Instantiated->Destroyed ~EcuResetRequest() Offered->Instantiated StopOffer()

State diagram: Life phases and registration states of an EcuResetRequest instance. Sources: [SWS_DM_01010], [SWS_DM_01016], [SWS_DM_01017], [SWS_DM_01011].

Usage Path

A typical usage path is divided into initialization, enablement, and the subsequent processing of diagnostic requests:

  1. Instantiation and enablement: The application instantiates the derived class with the appropriate InstanceSpecifier ([SWS_DM_01010]) and calls Offer() to enable the DM to forward requests ([SWS_DM_01016]).
  2. Rapid shutdown control: When the DM receives a UDS request for EnableRapidPowerShutdown or DisableRapidPowerShutdown, it calls EnableRapidShutdown(enable, metaInfo, cancellationHandler) ([SWS_DM_01020], [SWS_DM_01021], [SWS_DM_01012]). In case of a positive acknowledgment, the DM inserts the configured value for the shutdown time into the response (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 [SWS_DM_01092]).
  3. Reset request: For all other UDS reset subfunctions, the DM calls the method RequestReset(resetType, id, metaInfo, cancellationHandler) ([SWS_DM_01013]). The instantiating process must carefully check whether a restart of parts or the entire machine is permissible ([SWS_DM_01013]). The cancellation status can be queried or a notifier can be registered via the cancellationHandler ([SWS_DM_01013]).
  4. Reset execution: If the request is accepted and it is configured that the positive response is sent before the reset (respondBeforeReset or not present), the Diagnostic Server sends the positive UDS response and subsequently calls ExecuteReset(metaInfo) (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023], [SWS_DM_01014]). If respondAfterReset was configured instead, the positive response is returned only after the restart, provided that RequestReset() has not reported an error (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_00360]).
  5. Service deregistration: To terminate service forwarding, the application calls StopOffer() ([SWS_DM_01017]).
Processing of a reset request (respondBeforeReset)TesterDMEcuResetRequestOffer()kSuccessUDS 0x11 ECUReset RequestRequestReset(resetType, id, metaInfo, handler)Check reset permissibilityFuture<void> bereit (Erfolg)Positive UDS Response (0x51)ExecuteReset(metaInfo)Perform restart

Sequence diagram: Sequence of an EcuReset request with confirmation before reset execution (respondBeforeReset). Sources: [SWS_DM_01016], [SWS_DM_01013], [SWS_DM_01014], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023].

Error Scenarios

In case of an error, the following aspects must be observed for the various calls:

  • Constructor violations: During creation, model violations can occur, among others if the InstanceSpecifier cannot be resolved in the model (InstanceSpecifierMappingIntegrityViolation), refers to an incorrect model element, the port mapping is missing (PortInterfaceMappingViolation), no process reference is present (ProcessMappingViolation), or the identifier is already in use in the process (InstanceSpecifierAlreadyInUseViolation) ([SWS_DM_01010]).
  • Registration errors: If Offer() is called even though the service is already offered, the method returns a ara::core::Result with the error code DiagOfferErrc::kAlreadyOffered ([SWS_DM_01016]).
  • Diagnostic negative response codes (NRCs): If EnableRapidShutdown, RequestReset, or ExecuteReset cannot be completed successfully, their return futures return an error with a matching ISO 14229-1 Negative Response Code (NRC) via DiagUdsNrcErrc ([SWS_DM_01012], [SWS_DM_01013], [SWS_DM_01014]). Note: If respondToReset is set to respondBeforeReset or not configured, an error in ExecuteReset() has no further effect on the diagnostic response, because the positive acknowledgment has already been sent to the tester beforehand ([SWS_DM_01014], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023]).

This guide is based exclusively on the specifications of the AUTOSAR Adaptive Platform R25-11.

Member map

Class diagram

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

G nara__diag__EcuResetRequest662 EcuResetRequest + EcuResetRequest() + operator=() + ~EcuResetRequest() + EnableRapidShutdown() + ExecuteReset() + Offer() + RequestReset() + StopOffer()

Detail view

Select an entry in the outline.

Constructors and destructor

EcuResetRequest function 3

Constructor of EcuResetRequest.

Overloads EcuResetRequest 3
explicit EcuResetRequest (const ara::core::InstanceSpecifier &specifier) noexcept; SWS_DM_01010
EcuResetRequest (EcuResetRequest &)=delete; SWS_DM_01621
EcuResetRequest (EcuResetRequest &&) noexcept=delete; SWS_DM_01622

Destructor of EcuResetRequest.

virtual ~EcuResetRequest () noexcept;

Methods

Interface for subFunction En-/DisableRapidShutdown.

virtual ara::core::Future< void > EnableRapidShutdown (bool enable, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
ExecuteReset function

process which is instantiating this interface, has to execute the requested reset.

virtual ara::core::Future< void > ExecuteReset (const MetaInfo &meta Info) noexcept=0;
Offer function

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

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

Called for any EcuReset subFunction, except En-/DisableRapidShutdown. The process, which is instantiating this interface, needs to evaluate carefully if the request to restart parts or the whole machine. Once the request to reset is accepted, the process, which is instantiating this interface, has to rely on this decision for the ExecuteReset() trigger.

virtual ara::core::Future< void > RequestReset (ResetRequestType reset Type, ara::core::Optional< std::uint8_t > id, const MetaInfo &meta Info, CancellationHandler cancellationHandler) noexcept=0;
StopOffer function

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

void StopOffer () noexcept;

Operators

operator= function 2

EcuResetRequest shall be a single not assignable instance.

Overloads = 2

Method documentation

function EcuResetRequest [SWS_DM_01010] Upstream: RS_Diag_04169, RS_Diag_04279, RS_AP_00170, RS_AP_00171, RS_ AP_00172, RS_AP_00173

explicit EcuResetRequest (const ara::core::InstanceSpecifier &specifier) noexcept;

Constructor of EcuResetRequest.

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest
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 typed by a pingViolation DiagnosticEcuResetInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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 DiagnosticEcuResetInterface.

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

Record
AUTOSAR/AP/record/SWS_DM_01010
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01010@rel:R25-11#eedc6deb
Content hash
eedc6deb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01010
Status: valid/unmigrated Version: rel:R25-11#d5265513 Versionshistorie & Revisions (1 transition, 7 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_01010@rel:R25-11#d5265513
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#eedc6deb2026-09-30
  • R20-11rel:R20-11#246a248c2026-10-14
  • R21-11rel:R21-11#385ccb202026-10-14
  • R22-11rel:R22-11#b88eff8f2026-10-14
  • R23-11rel:R23-11#ae737ede2026-10-14
  • R24-11rel:R24-11#f98779722026-10-14
  • R25-11rel:R25-11#d52655132026-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 EcuResetRequest [SWS_DM_01621] Upstream: RS_AP_00147

EcuResetRequest (EcuResetRequest &)=delete;

EcuResetRequest shall be a single not copy-able instance.

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest

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

Record
AUTOSAR/AP/record/SWS_DM_01621
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01621@rel:R25-11#68e53b3b
Content hash
68e53b3b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01621
Status: valid/unmigrated Version: rel:R25-11#063cef9f 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_01621@rel:R25-11#063cef9f
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#68e53b3b2026-09-30
  • R23-11rel:R23-11#43d917e62026-10-14
  • R24-11rel:R24-11#063cef9f2026-10-14
  • R25-11rel:R25-11#063cef9f2026-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 EcuResetRequest [SWS_DM_01622] Upstream: RS_AP_00147

EcuResetRequest (EcuResetRequest &&) noexcept=delete;

Move constructor of EcuResetRequest.

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest

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

Record
AUTOSAR/AP/record/SWS_DM_01622
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01622@rel:R25-11#d6eb29c6
Content hash
d6eb29c6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01622
Status: valid/unmigrated Version: rel:R25-11#6ad7777d 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_01622@rel:R25-11#6ad7777d
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#d6eb29c62026-09-30
  • R23-11rel:R23-11#1ddab05e2026-10-14
  • R24-11rel:R24-11#6ad7777d2026-10-14
  • R25-11rel:R25-11#6ad7777d2026-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 EnableRapidShutdown [SWS_DM_01012] Upstream: RS_Diag_04169, RS_Diag_04279

virtual ara::core::Future< void > EnableRapidShutdown (bool enable, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Interface for subFunction En-/DisableRapidShutdown.

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

Usage and Call Context

The pure virtual method EnableRapidShutdown of class ara::diag::EcuResetRequest serves as an interface for handling the UDS subfunctions for rapid power shutdown ([SWS_DM_01012]). Upon incoming diagnostic requests of service 0x11 (ECUReset), the Diagnostic Manager (DM) calls this function: for EnableRapidPowerShutdown with the argument enable = true ([SWS_DM_01020]) and for DisableRapidPowerShutdown with enable = false ([SWS_DM_01021]). This distinguishes these two subfunctions from all other ECUReset services, which trigger RequestReset instead ([SWS_DM_00235]).

The method takes three parameters ([SWS_DM_01012]):

  • enable: Enables rapid power shutdown in case of true and disables it in case of false.
  • metaInfo: Passes meta-information on the diagnostic request.
  • cancellationHandler: Serves to monitor the cancellation status via cancellationHandler.IsCanceled() or to register a notifier via cancellationHandler.SetNotifier() if the ongoing diagnostic conversation is canceled.

Semantics, error handling, and concurrency

The interface returns a ara::core::Future<void>; the actual processing thus presumably occurs asynchronously in the background ([SWS_DM_01012]). Question Q-ee781913ae88fabb (open) In case of success, the future returns no value. In case of an error, an appropriate Negative Response Code (NRC) according to ISO 14229-1 must be set by means of DiagUdsNrcErrc (AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.1 “EnableRapidShutdown”). The function is specified as noexcept and exception-safe (exception safe), but is considered not thread-safe (not thread-safe), which is why concurrent calls on the same instance must be avoided on the application side ([SWS_DM_01012]).

This text was generated by an AI based on the AUTOSAR R25-11 specification.

Implementer's Guide to follow (complexity I1)

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

Parameter (in)

ParameterBeschreibung
enableWhen enable is set to true the rapid shutdown will be enabled, setting enable to false will disable rapid shutdown.
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_01012
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01012@rel:R25-11#56b7972b
Content hash
56b7972b
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01012
Status: valid/unmigrated Version: rel:R25-11#bcd20ad3 Versionshistorie & Revisions (1 transition, 7 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_01012@rel:R25-11#bcd20ad3
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#56b7972b2026-09-30
  • R20-11rel:R20-11#5894545d2026-10-14
  • R21-11rel:R21-11#f28899972026-10-14
  • R22-11rel:R22-11#2342434c2026-10-14
  • R23-11rel:R23-11#9ee9b9ec2026-10-14
  • R24-11rel:R24-11#f504b4a02026-10-14
  • R25-11rel:R25-11#bcd20ad32026-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 ExecuteReset [SWS_DM_01014] Upstream: RS_Diag_04169, RS_Diag_04279

virtual ara::core::Future< void > ExecuteReset (const MetaInfo &meta Info) noexcept=0;

process which is instantiating this interface, has to execute the requested reset.

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

The method ExecuteReset of interface ara::diag::EcuResetRequest is called by the Diagnostic Server (DM) to actually trigger in the implementing process the ECU reset previously accepted via [SWS_DM_01013] [SWS_DM_01014]. The metaInfo of the request is passed as parameter. The function is specified as not thread-safe (not thread-safe), but exception-safe (exception safe) [SWS_DM_01014].

The call time by the Diagnostic Server depends on the configuration parameter DiagnosticEcuResetClass.respondToReset:

  • If the parameter is not present or set to respondBeforeReset, the Diagnostic Server calls ExecuteReset only after the positive UDS response has been sent [SWS_DM_01023].
  • If respondAfterReset is configured, ExecuteReset is called directly and without previously sending the positive response [SWS_DM_01090].

The function returns a ara::core::Future<void> [SWS_DM_01014]. If incoming UDS requests were blocked after acceptance of the reset [SWS_DM_01022], the Diagnostic Server unblocks them as soon as the Future returned by ExecuteReset is completed [SWS_DM_01309]. Possible errors are signaled via ISO 14229-1 NRCs by means of DiagUdsNrcErrc in the Future; with configuration respondBeforeReset, however, a passed error remains without effect [SWS_DM_01014].

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

Implementer's Guide to follow (complexity I1)

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

Parameter (in)

ParameterBeschreibung
metaInfoMetaInfo of the request.

Rückgabewert

TypBeschreibung
ara::core::Future< void >Return nothing or an error. In case the parameter DiagnosticEcu ResetClass.respondToReset is either not present or present and set to respondBeforeReset, a given error has no effect.

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_01014
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01014@rel:R25-11#3c31c4c4
Content hash
3c31c4c4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01014
Status: valid/unmigrated Version: rel:R25-11#9b89344b Versionshistorie & Revisions (1 transition, 7 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_01014@rel:R25-11#9b89344b
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#3c31c4c42026-09-30
  • R20-11rel:R20-11#f252061c2026-10-14
  • R21-11rel:R21-11#f252061c2026-10-14
  • R22-11rel:R22-11#bbbf4a092026-10-14
  • R23-11rel:R23-11#a9b548302026-10-14
  • R24-11rel:R24-11#b8e5157a2026-10-14
  • R25-11rel:R25-11#9b89344b2026-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_01016] Upstream: RS_AP_00139, RS_AP_00119

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: c497a60736af Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

With the method ara::diag::EcuResetRequest::Offer ([SWS_DM_01016]), an Adaptive Application signals to Diagnostic Management (DM) that it is ready to receive incoming diagnostic requests for an ECU reset. Through the synchronous call, the DM is authorized to forward corresponding request messages to this handler ([SWS_DM_01016]). The call is likely to typically take place during the initialization phase of the application before diagnostic requests are to be processed by the DM. Question Q-93d794e6b1dba23e (open)

Call and error handling

The function has no input parameters, is declared as noexcept, and guarantees exception safety ([SWS_DM_01016]). A ara::core::Result<void> serves as return value. If providing fails because the service was already offered previously, the method returns the error code DiagOfferErrc::kAlreadyOffered with rollback semantics ([SWS_DM_01016]).

Concurrency and Interaction

According to the specification, the function is classified as not thread-safe ([SWS_DM_01016]). Calls on the same instance of ara::diag::EcuResetRequest must therefore be synchronized on the application side. The offering pattern corresponds to the uniform interface design in Adaptive Diagnostic Management, as is analogously also defined for other handlers such as ara::diag::GenericUDSService::Offer ([SWS_DM_00619]), ara::diag::GenericRoutine::Offer ([SWS_DM_00557]), or ara::diag::CommunicationControl::Offer ([SWS_DM_00809]). Although the naming is inspired by ara::com, it is an independent implementation of Diagnostic Management (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”).

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

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest
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_01016
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01016@rel:R25-11#ac6a418a
Content hash
ac6a418a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01016
Status: valid/unmigrated Version: rel:R25-11#90db9ee6 Versionshistorie & Revisions (1 transition, 7 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_01016@rel:R25-11#90db9ee6
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#ac6a418a2026-09-30
  • R20-11rel:R20-11#f25441de2026-10-14
  • R21-11rel:R21-11#f25441de2026-10-14
  • R22-11rel:R22-11#c744526e2026-10-14
  • R23-11rel:R23-11#51fa43912026-10-14
  • R24-11rel:R24-11#dc8480be2026-10-14
  • R25-11rel:R25-11#90db9ee62026-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 RequestReset [SWS_DM_01013] Upstream: RS_Diag_04169, RS_Diag_04279

virtual ara::core::Future< void > RequestReset (ResetRequestType reset Type, ara::core::Optional< std::uint8_t > id, const MetaInfo &meta Info, CancellationHandler cancellationHandler) noexcept=0;

Called for any EcuReset subFunction, except En-/DisableRapidShutdown. The process, which is instantiating this interface, needs to evaluate carefully if the request to restart parts or the whole machine. Once the request to reset is accepted, the process, which is instantiating this interface, has to rely on this decision for the ExecuteReset() trigger.

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

Method ara::diag::EcuResetRequest::RequestReset (#include "ara/diag/ecu_reset_request.h") is called by the Diagnostic Server as soon as a UDS request for service 0x11 (ECUReset) is received ([SWS_DM_00235], SWS Diagnostics §7.3.2.8.5.2 “Service 0x11 – ECUReset – all other sub functions”). This applies to all reset sub-functions with the exception of EnableRapidPowerShutdown and DisableRapidPowerShutdown ([SWS_DM_01013]). Before accepting, the instantiating application must carefully check whether a restart of parts or the entire machine may be performed ([SWS_DM_01013]).

Parameters and asynchronous interface

The call passes the reset type resetType, an optional identifier id (only evaluated if resetType is set to custom), metadata metaInfo, and a cancellationHandler ([SWS_DM_01013]). Via cancellationHandler, the application can determine the cancellation status via IsCanceled or register a callback function for cancellation events using SetNotifier ([SWS_DM_01013]). The result is provided asynchronously via ara::core::Future<void> ([SWS_DM_01013]).

Error handling, sequence control, and concurrency

If the reset cannot be accepted, an appropriate NRC error code must be returned in the future via DiagUdsNrcErrc in accordance with ISO 14229-1 ([SWS_DM_01013]); furthermore, reporting a ApApplicationError is taken into account ([SWS_DM_00360]). If the request is accepted, this decision is binding for the subsequent ExecuteReset trigger ([SWS_DM_01013]), and the Diagnostic Server ignores subsequent incoming UDS requests ([SWS_DM_01022]) until the blockage is released after completion of ExecuteReset ([SWS_DM_01309]). The actual reset execution takes place depending on DiagnosticEcuResetClass.respondToReset either after sending the positive UDS response ([SWS_DM_01023]) or directly before the restart ([SWS_DM_01090]). The function is specified as exception safe, but explicitly as not thread-safe ([SWS_DM_01013]).

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

Implementer's Guide to follow (complexity I1)

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

Parameter (in)

ParameterBeschreibung
resetTypeType of the requested reset.
idid of the custom reset type. Will only be evaluated when resetType is "custom".
metaInfoMetaInfo of the request.
cancellationHandlerThis parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.

Rückgabewert

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

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

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

Record
AUTOSAR/AP/record/SWS_DM_01013
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01013@rel:R25-11#2298781a
Content hash
2298781a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01013
Status: valid/unmigrated Version: rel:R25-11#abbae6cb Versionshistorie & Revisions (1 transition, 7 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_01013@rel:R25-11#abbae6cb
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#2298781a2026-09-30
  • R20-11rel:R20-11#a2a16bce2026-10-14
  • R21-11rel:R21-11#db0fc51c2026-10-14
  • R22-11rel:R22-11#998c28012026-10-14
  • R23-11rel:R23-11#6254ffe82026-10-14
  • R24-11rel:R24-11#3fb22acc2026-10-14
  • R25-11rel:R25-11#abbae6cb2026-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_01017] Upstream: RS_Diag_04169, RS_Diag_04279

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: b9e940cd3ae2 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The method ara::diag::EcuResetRequest::StopOffer stops providing the reset service and disables the forwarding of incoming request messages from Diagnostic Management (DM) to the application ([SWS_DM_01017], AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.5 “StopOffer”). The function has the signature void StopOffer() noexcept, expects no parameters, and returns no return value.

Error Handling and Exception Behavior

The operation is declared as noexcept and classified as exception safe in the specification ([SWS_DM_01017]). Neither exceptions are thrown nor specific error codes are reported back to the caller.

Concurrency and Limitations

The method is explicitly classified as not thread-safe ([SWS_DM_01017]). Callers must synchronize concurrent accesses to the same instance of ara::diag::EcuResetRequest on the application side. From a functional perspective, the call is likely intended only after previously offering the handler in order to stop the reception of further reset requests in an orderly manner. Question Q-25f37b77dc8cf80f (open)

Interaction

Disabling forwarding via StopOffer follows the uniform interface pattern of functional diagnostic handlers in Adaptive AUTOSAR, as defined analogously for other services such as CommunicationControl ([SWS_DM_00810]) or DownloadService ([SWS_DM_00793]).

This usage note was generated by an AI based on the specification for AUTOSAR Adaptive R25-11.

Implementer's Guide to follow (complexity I2)

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest
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_01017
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01017@rel:R25-11#becd6c1d
Content hash
becd6c1d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01017
Status: valid/unmigrated Version: rel:R25-11#157260a3 Versionshistorie & Revisions (1 transition, 7 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_01017@rel:R25-11#157260a3
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#becd6c1d2026-09-30
  • R20-11rel:R20-11#d14003032026-10-14
  • R21-11rel:R21-11#12e02bbc2026-10-14
  • R22-11rel:R22-11#f8a228ae2026-10-14
  • R23-11rel:R23-11#a13668412026-10-14
  • R24-11rel:R24-11#599424bf2026-10-14
  • R25-11rel:R25-11#157260a32026-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_01619] Upstream: RS_AP_00147

EcuResetRequest & operator= (EcuResetRequest &)=delete;

EcuResetRequest shall be a single not assignable instance.

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest

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

Record
AUTOSAR/AP/record/SWS_DM_01619
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01619@rel:R25-11#69df81e2
Content hash
69df81e2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01619
Status: valid/unmigrated Version: rel:R25-11#eb3701bb 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_01619@rel:R25-11#eb3701bb
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#69df81e22026-09-30
  • R23-11rel:R23-11#9e10724e2026-10-14
  • R24-11rel:R24-11#d8917e8d2026-10-14
  • R25-11rel:R25-11#eb3701bb2026-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_01620] Upstream: RS_AP_00147

EcuResetRequest & operator= (EcuResetRequest &&)=delete;

Move assignment operator of EcuResetRequest.

Header-Datei#include "ara/diag/ecu_reset_request.h"
Scopeclass ara::diag::EcuResetRequest

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

Record
AUTOSAR/AP/record/SWS_DM_01620
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01620@rel:R25-11#bf9cee0f
Content hash
bf9cee0f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01620
Status: valid/unmigrated Version: rel:R25-11#6a0a3bfb 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_01620@rel:R25-11#6a0a3bfb
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#bf9cee0f2026-09-30
  • R23-11rel:R23-11#d2fc822c2026-10-14
  • R24-11rel:R24-11#6a0a3bfb2026-10-14
  • R25-11rel:R25-11#6a0a3bfb2026-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 ~EcuResetRequest [SWS_DM_01011] Upstream: RS_Diag_04169, RS_Diag_04279

virtual ~EcuResetRequest () noexcept;

Destructor of EcuResetRequest.

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

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

Record
AUTOSAR/AP/record/SWS_DM_01011
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01011@rel:R25-11#b72ad791
Content hash
b72ad791
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01011
Status: valid/unmigrated Version: rel:R25-11#6f92477d Versionshistorie & Revisions (1 transition, 7 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_01011@rel:R25-11#6f92477d
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#b72ad7912026-09-30
  • R20-11rel:R20-11#3ffa5d7d2026-10-14
  • R21-11rel:R21-11#3ffa5d7d2026-10-14
  • R22-11rel:R22-11#286b009e2026-10-14
  • R23-11rel:R23-11#ffb926aa2026-10-14
  • R24-11rel:R24-11#8a061c332026-10-14
  • R25-11rel:R25-11#6f92477d2026-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