Dient als Schnittstelle für Anwendungen zur Prüfung und Ausführung von UDS-Steuergeräte-Resets im Diagnostic Management.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5b921e2dd86fHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Dient als Schnittstelle für Anwendungen zur Prüfung und Ausführung von UDS-Steuergeräte-Resets im Diagnostic Management.
Die Klasse ara::diag::EcuResetRequest stellt die Anwendungsschnittstelle zur Abwicklung von UDS-Reset-Diensten (Service 0x11) im Diagnostic Management dar AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1. Nach der Aktivierung mittels Offer() nimmt sie Anfragen zur Prüfung und Ausführung von Neustarts sowie zur Rapid-Shutdown-Steuerung entgegen ([SWS_DM_01016], [SWS_DM_01013], [SWS_DM_01014]). Instanzen sind weder kopierbar noch verschiebbar und sämtliche Methoden sind als nicht threadsicher spezifiziert ([SWS_DM_01010], [SWS_DM_01621]).
Kontext
Die Schnittstellenklasse ara::diag::EcuResetRequest dient der Abwicklung des UDS-Dienstes ECUReset (Service 0x11) in der AUTOSAR Adaptive Platform AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 „Service 0x11 – ECUReset – RapidPowerShutdown sub function“. Sie ermöglicht es einer Anwendung, als Handler für Reset-Anfragen des Diagnostic Management (DM) zu fungieren. Zu den Aufgaben gehören die Aktivierung bzw. Deaktivierung des schnellen Herunterfahrens ([SWS_DM_01012]), die Prüfung eingehender Reset-Anforderungen ([SWS_DM_01013]) sowie die eigentliche Ausführung des Neustarts ([SWS_DM_01014]). Beteiligte Interaktionspartner sind der externe Diagnosetester, die Instanz des Diagnostic Management (DM bzw. Diagnostic Server) und die anwendungsseitige Implementierung von EcuResetRequest.
Eine Instanz von EcuResetRequest wird über ihren expliziten Konstruktor unter Angabe eines ara::core::InstanceSpecifier erzeugt, der auf einen PortPrototype eines DiagnosticEcuResetInterface verweist ([SWS_DM_01010]). Gemäß den Designvorgaben ist die Klasse weder kopierbar noch verschiebbar; Copy- und Move-Konstruktoren ([SWS_DM_01621], [SWS_DM_01622]) sowie die entsprechenden Zuweisungsoperatoren ([SWS_DM_01619], [SWS_DM_01620]) sind explizit gelöscht (=delete). Sämtliche Schnittstellenmethoden sowie der Destruktor ([SWS_DM_01011]) sind als not thread-safe spezifiziert ([SWS_DM_01010], [SWS_DM_01016], [SWS_DM_01017]). Nach der Initialisierung befindet sich der Handler zunächst im Zustand, in dem keine Weiterleitung von Anfragen stattfindet, bis die Registrierung explizit per Offer() aktiviert wird ([SWS_DM_01016]). Durch den Aufruf von StopOffer() wird die Weiterleitung von Anfragen wieder deaktiviert ([SWS_DM_01017]), bevor das Objekt zerstört werden kann ([SWS_DM_01011]).
Ein typischer Nutzungspfad gliedert sich in Initialisierung, Freigabe und die anschließende Bearbeitung von Diagnoseanfragen:
Instanziierung und Freigabe: Die Anwendung instanziiert die abgeleitete Klasse mit dem passenden InstanceSpecifier ([SWS_DM_01010]) und ruft Offer() auf, um dem DM die Weiterleitung von Anfragen zu ermöglichen ([SWS_DM_01016]).
Rapid-Shutdown-Steuerung: Empfängt das DM eine UDS-Anfrage für EnableRapidPowerShutdown oder DisableRapidPowerShutdown, ruft es EnableRapidShutdown(enable, metaInfo, cancellationHandler) auf ([SWS_DM_01020], [SWS_DM_01021], [SWS_DM_01012]). Bei positiver Quittierung setzt das DM den konfigurierten Wert für die Abschaltzeit in die Antwort ein (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.1 [SWS_DM_01092]).
Reset-Anforderung: Für alle anderen UDS-Reset-Unterfunktionen ruft das DM die Methode RequestReset(resetType, id, metaInfo, cancellationHandler) auf ([SWS_DM_01013]). Der instanziierende Prozess muss sorgfältig prüfen, ob ein Neustart von Teilen oder der gesamten Maschine zulässig ist ([SWS_DM_01013]). Über den cancellationHandler kann der Abbruchstatus abgefragt oder ein Notifier registriert werden ([SWS_DM_01013]).
Reset-Ausführung: Wird die Anfrage akzeptiert und ist konfiguriert, dass die positive Antwort vor dem Reset versendet wird (respondBeforeReset bzw. nicht vorhanden), sendet der Diagnostic Server die positive UDS-Antwort und ruft anschließend ExecuteReset(metaInfo) auf (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023], [SWS_DM_01014]). Wurde stattdessen respondAfterReset konfiguriert, wird die positive Antwort erst nach dem Wiederanlauf zurückgesendet, sofern RequestReset() keinen Fehler gemeldet hat (AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_00360]).
Dienstabmeldung: Zum Beenden der Dienstweiterleitung ruft die Anwendung StopOffer() auf ([SWS_DM_01017]).
Im Fehlerfall sind bei den verschiedenen Aufrufen folgende Aspekte zu beachten:
Konstruktor-Verletzungen: Bei der Erzeugung können Modellverletzungen auftreten, unter anderem wenn der InstanceSpecifier nicht im Modell aufgelöst werden kann (InstanceSpecifierMappingIntegrityViolation), auf ein falsches Modellelement verweist, die Port-Zuordnung fehlt (PortInterfaceMappingViolation), kein Prozessbezug vorliegt (ProcessMappingViolation) oder der Bezeichner bereits im Prozess in Benutzung ist (InstanceSpecifierAlreadyInUseViolation) ([SWS_DM_01010]).
Registrierungsfehler: Wird Offer() aufgerufen, obwohl der Dienst bereits angeboten wird, liefert die Methode ein ara::core::Result mit dem Fehlercode DiagOfferErrc::kAlreadyOffered zurück ([SWS_DM_01016]).
Diagnostische Fehlercodes (NRCs): Können EnableRapidShutdown, RequestReset oder ExecuteReset nicht erfolgreich abgeschlossen werden, geben ihre Rückgabe-Futures einen Fehler mit einem passenden ISO 14229-1 Negative Response Code (NRC) via DiagUdsNrcErrc zurück ([SWS_DM_01012], [SWS_DM_01013], [SWS_DM_01014]). Zu beachten ist: Wenn respondToReset auf respondBeforeReset gesetzt oder nicht konfiguriert ist, hat ein Fehler in ExecuteReset() keine Auswirkung mehr auf die Diagnoseantwort, da die positive Bestätigung bereits zuvor an den Tester gesendet wurde ([SWS_DM_01014], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.5.2 [SWS_DM_01023]).
Dieser Leitfaden basiert ausschließlich auf den Spezifikationen der 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 64d1feb19eceHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung und Aufrufkontext
Die rein virtuelle Methode EnableRapidShutdown der Klasse ara::diag::EcuResetRequest dient als Schnittstelle zur Behandlung der UDS-Subfunktionen für das schnelle Herunterfahren ([SWS_DM_01012]). Bei eingehenden Diagnoseanfragen des Service 0x11 (ECUReset) ruft der Diagnostic Manager (DM) diese Funktion auf: für EnableRapidPowerShutdown mit dem Argument enable = true ([SWS_DM_01020]) und für DisableRapidPowerShutdown mit enable = false ([SWS_DM_01021]). Dies unterscheidet diese beiden Subfunktionen von allen übrigen ECUReset-Diensten, die stattdessen RequestReset triggern ([SWS_DM_00235]).
Die Methode nimmt drei Parameter entgegen ([SWS_DM_01012]):
enable: Aktiviert bei true das schnelle Herunterfahren und deaktiviert es bei false.
metaInfo: Übergibt Meta-Informationen zur Diagnoseanfrage.
cancellationHandler: Dient der Überwachung des Abbruchstatus via cancellationHandler.IsCanceled() oder der Registrierung eines Notifiers über cancellationHandler.SetNotifier(), falls die laufende Diagnosekonversation abgebrochen wird.
Semantik, Fehlerbehandlung und Nebenläufigkeit
Die Schnittstelle gibt ein ara::core::Future<void> zurück; die eigentliche Verarbeitung erfolgt somit vermutlich asynchron im Hintergrund ([SWS_DM_01012]). Frage Q-ee781913ae88fabb (offen) Im Erfolgsfall liefert das Future keinen Wert. Im Fehlerfall ist ein passender Negative Response Code (NRC) gemäß ISO 14229-1 mittels DiagUdsNrcErrc zu setzen (AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.1 „EnableRapidShutdown“). Die Funktion ist als noexcept und ausnahmesicher (exception safe) spezifiziert, gilt jedoch als nicht threadsicher (not thread-safe), weshalb nebenläufige Aufrufe an derselben Instanz anwendungsseitig vermieden werden müssen ([SWS_DM_01012]).
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R25-11 generiert.
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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5a6dac3995bcHerkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ExecuteReset der Schnittstelle ara::diag::EcuResetRequest wird vom Diagnostic Server (DM) aufgerufen, um den zuvor per [SWS_DM_01013] akzeptierten ECU-Reset tatsächlich im implementierenden Prozess auszulösen [SWS_DM_01014]. Als Parameter wird die metaInfo der Anfrage übergeben. Die Funktion ist nicht threadsicher (not thread-safe), jedoch ausnahmesicher (exception safe) spezifiziert [SWS_DM_01014].
Der Aufrufzeitpunkt durch den Diagnostic Server hängt vom Konfigurationsparameter DiagnosticEcuResetClass.respondToReset ab:
Ist der Parameter nicht vorhanden oder auf respondBeforeReset gesetzt, ruft der Diagnostic Server ExecuteReset erst auf, nachdem die positive UDS-Antwort versendet wurde [SWS_DM_01023].
Ist respondAfterReset konfiguriert, erfolgt der Aufruf von ExecuteReset direkt und ohne vorheriges Senden der positiven Antwort [SWS_DM_01090].
Die Funktion liefert ein ara::core::Future<void> zurück [SWS_DM_01014]. Wenn eingehende UDS-Anfragen nach Annahme des Resets blockiert wurden [SWS_DM_01022], hebt der Diagnostic Server diese Blockade wieder auf, sobald das von ExecuteReset zurückgegebene Future abgeschlossen ist [SWS_DM_01309]. Mögliche Fehler werden über ISO-14229-1-NRCs mittels DiagUdsNrcErrc im Future signalisiert; bei der Konfiguration respondBeforeReset bleibt ein übergebener Fehler jedoch wirkungslos [SWS_DM_01014].
Dieser Text wurde von einer KI erstellt und basiert auf 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c497a60736afHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Mit der Methode ara::diag::EcuResetRequest::Offer ([SWS_DM_01016]) signalisiert eine Adaptive Application dem Diagnostic Management (DM), dass sie bereit ist, eingehende Diagnoseanforderungen für einen ECU-Reset entgegenzunehmen. Durch den synchronen Aufruf wird der DM autorisiert, entsprechende Request-Nachrichten an diesen Handler weiterzuleiten ([SWS_DM_01016]). Der Aufruf dürfte typischerweise während der Initialisierungsphase der Anwendung erfolgen, bevor Diagnoseanfragen vom DM verarbeitet werden sollen. Frage Q-93d794e6b1dba23e (offen)
Aufruf und Fehlerbehandlung
Die Funktion besitzt keine Übergabeparameter, ist als noexcept deklariert und garantiert Exception-Sicherheit ([SWS_DM_01016]). Als Rückgabewert dient ein ara::core::Result<void>. Schlägt die Bereitstellung fehl, weil der Dienst bereits zuvor angeboten wurde, liefert die Methode den Fehlercode DiagOfferErrc::kAlreadyOffered mit Rollback-Semantik zurück ([SWS_DM_01016]).
Nebenläufigkeit und Zusammenspiel
Gemäß Spezifikation ist die Funktion als not thread-safe eingestuft ([SWS_DM_01016]). Aufrufe an derselben Instanz von ara::diag::EcuResetRequest müssen daher anwendungsseitig synchronisiert werden. Das Bereitstellungsmuster entspricht dem einheitlichen Schnittstellendesign im Adaptive Diagnostic Management, wie es analog auch für andere Handler wie ara::diag::GenericUDSService::Offer ([SWS_DM_00619]), ara::diag::GenericRoutine::Offer ([SWS_DM_00557]) oder ara::diag::CommunicationControl::Offer ([SWS_DM_00809]) definiert ist. Obwohl die Namensgebung an ara::com angelehnt ist, handelt es sich um eine eigenständige Implementierung des Diagnostic Management (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“).
Dieser Nutzungshinweis wurde automatisiert erstellt und stützt sich auf die Spezifikation AUTOSAR Adaptive 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4ec2f9bf44c2Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Methode ara::diag::EcuResetRequest::RequestReset (#include "ara/diag/ecu_reset_request.h") wird vom Diagnoseserver aufgerufen, sobald eine UDS-Anforderung für den Dienst 0x11 (ECUReset) empfangen wird ([SWS_DM_00235], SWS Diagnostics §7.3.2.8.5.2 „Service 0x11 – ECUReset – all other sub functions“). Dies gilt für sämtliche Reset-Subfunktionen mit Ausnahme von EnableRapidPowerShutdown und DisableRapidPowerShutdown ([SWS_DM_01013]). Die instanziierende Anwendung muss vor der Annahme sorgfältig prüfen, ob ein Neustart von Teilen oder der gesamten Maschine durchgeführt werden darf ([SWS_DM_01013]).
Parameter und asynchrone Schnittstelle
Der Aufruf übergibt den Reset-Typ resetType, eine optionale Kennung id (wird nur ausgewertet, wenn resetType auf custom steht), die Metadaten metaInfo sowie einen cancellationHandler ([SWS_DM_01013]). Über den cancellationHandler kann die Anwendung per IsCanceled den Abbruchstatus ermitteln oder mittels SetNotifier eine Callback-Funktion für Abbruchereignisse registrieren ([SWS_DM_01013]). Das Ergebnis wird asynchron über ara::core::Future<void> bereitgestellt ([SWS_DM_01013]).
Fehlerbehandlung, Ablaufsteuerung und Nebenläufigkeit
Kann der Reset nicht akzeptiert werden, ist im Future ein passender NRC-Fehlercode über DiagUdsNrcErrc gemäß ISO 14229-1 zurückzugeben ([SWS_DM_01013]); zudem wird das Melden eines ApApplicationError berücksichtigt ([SWS_DM_00360]). Wird die Anfrage angenommen, ist diese Entscheidung für den anschließenden ExecuteReset-Trigger bindend ([SWS_DM_01013]), und der Diagnoseserver ignoriert nachfolgende eingehende UDS-Anfragen ([SWS_DM_01022]), bis die Blockierung nach Abschluss von ExecuteReset aufgehoben wird ([SWS_DM_01309]). Die tatsächliche Reset-Ausführung erfolgt abhängig von DiagnosticEcuResetClass.respondToReset entweder nach Versenden der positiven UDS-Antwort ([SWS_DM_01023]) oder direkt vor dem Neustart ([SWS_DM_01090]). Die Funktion ist als exception safe, jedoch explizit als not thread-safe spezifiziert ([SWS_DM_01013]).
Dieser Verwendungshinweis basiert auf der Spezifikation 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.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: b9e940cd3ae2HerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode ara::diag::EcuResetRequest::StopOffer beendet die Bereitstellung des Reset-Dienstes und deaktiviert die Weiterleitung eingehender Anfrage-Nachrichten vom Diagnostic Management (DM) an die Anwendung ([SWS_DM_01017], AUTOSAR_AP_SWS_Diagnostics §8.16.3.1.3.5 „StopOffer“). Die Funktion besitzt die Signatur void StopOffer() noexcept, erwartet keine Parameter und liefert keinen Rückgabewert zurück.
Fehlerbehandlung und Ausnahmeverhalten
Die Operation ist als noexcept deklariert und spezifikatorisch als ausnahmesicher (exception safe) eingestuft ([SWS_DM_01017]). Es werden weder Ausnahmen geworfen noch spezifische Fehlercodes an den Aufrufer zurückgemeldet.
Nebenläufigkeit und Einschränkungen
Die Methode ist explizit als nicht threadsicher (not thread-safe) klassifiziert ([SWS_DM_01017]). Aufrufer müssen konkurrierende Zugriffe auf dieselbe Instanz von ara::diag::EcuResetRequest anwendungsseitig synchronisieren. Fachlich dürfte der Aufruf erst nach einem vorherigen Anbieten des Handlers vorgesehen sein, um den Empfang weiterer Reset-Anfragen geordnet zu stoppen. Frage Q-25f37b77dc8cf80f (offen)
Zusammenspiel
Das Deaktivieren der Weiterleitung über StopOffer folgt dem einheitlichen Schnittstellenmuster der funktionalen Diagnose-Handler in Adaptive AUTOSAR, wie es analog auch für andere Dienste wie CommunicationControl ([SWS_DM_00810]) oder DownloadService ([SWS_DM_00793]) definiert ist.
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation für AUTOSAR Adaptive R25-11 generiert.
gemini-3.8-flash-medium· 2026-10-13