Serves as an interface for applications to verify and execute UDS ECU resets in Diagnostic Management.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5b921e2dd86fProvenance
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.
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]).
A typical usage path is divided into initialization, enablement, and the subsequent processing of diagnostic requests:
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]).
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]).
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]).
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]).
Service deregistration: To terminate service forwarding, the application calls StopOffer() ([SWS_DM_01017]).
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.
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.
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)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticEcuResetInterface.
Request a governed re-review of this record. The record is not changed immediately.
Interface for subFunction En-/DisableRapidShutdown.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 64d1feb19eceProvenanceOpen 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]).
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.
When enable is set to true the rapid shutdown will be enabled, setting enable to false will disable rapid shutdown.
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
process which is instantiating this interface, has to execute the requested reset.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5a6dac3995bcProvenance
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.
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
Fehlercode
Beschreibung
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.
This Offer will enable the DM to forward request messages to this handler.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: c497a60736afProvenanceOpen 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.
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-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 4ec2f9bf44c2Provenance
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.
id of the custom reset type. Will only be evaluated when resetType is "custom".
metaInfo
MetaInfo of the request.
cancellationHandler
This 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.
This StopOffer will disable the forwarding of request messages from DM.
AI-GENERATEDunreviewedModel: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b9e940cd3ae2ProvenanceOpen 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.
gemini-3.8-flash-low· 2026-10-13 · German original