Dient voor applicaties om herstelacties bij PHM-bewakingsfouten beschikbaar te stellen en uit te voeren.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 1c1f80bf2db1HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor applicaties om herstelacties bij PHM-bewakingsfouten beschikbaar te stellen en uit te voeren.
De abstracte klasse ara::phm::RecoveryAction stelt applicaties in staat applicatiespecifieke herstelacties voor Platform Health Management beschikbaar te stellen [SWS_PHM_01141]. Na instantiëring schakelt de aanroep van Offer() de ontvangstgereedheid voor de Phm-daemon in, zodat bij gedetecteerde bewakingsfouten de overschreven methode RecoveryHandler wordt aangeroepen [SWS_PHM_01143]. Kan de fout aan applicatiezijde niet worden verholpen, dan escaleert het systeem door de watchdog te activeren. Kopieer- en verplaatsingsoperaties zijn om veiligheidsredenen volledig geblokkeerd, en beheerfuncties zoals Offer() zijn niet thread-safe.
Context
De klasse ara::phm::RecoveryAction is een abstracte basisklasse in de module Platform Health Management (PHM) van het AUTOSAR Adaptive Platform. Zij dient als gestandaardiseerde interface voor functionele applicaties om specifieke herstel- en foutafhandelingsmaatregelen beschikbaar te stellen die bij gedetecteerde bewakingsfouten door het PHM in gang worden gezet.
Tot de belangrijkste interactiepartners behoren:
De afgeleide applicatiecomponent: Interpretatie: Deze bevindt zich typisch vermoedelijk in State Management, aangezien dit verantwoordelijk is voor gecoördineerde systeemreacties en in de foutcontext direct wordt genoemd. Vraag Q-714ff81a33aa3e92 (open) De applicatie implementeert het applicatiespecifieke foutherstel door het overschrijven van de methode RecoveryHandler[SWS_PHM_01142].
De Phm-daemon: Beheert de registratie van herstelacties via Offer[SWS_PHM_01143] en stuurt bij geconstateerde fouten de aanroep van de geregistreerde handler aan [SWS_PHM_01142].
De watchdog: Kan het herstel aan applicatiezijde niet succesvol worden uitgevoerd, dan neemt het PHM de verdere foutafhandeling over en activeert ter beveiliging de watchdog [SWS_PHM_01142].
De logische koppeling met het AUTOSAR-model vindt bij instantiëring plaats via een ara::core::InstanceSpecifier, die moet verwijzen naar een PPortPrototype van een PhmRecoveryAction-interface [SWS_PHM_01141].
Levenscyclus
Een instantie wordt aangemaakt via de expliciete constructor onder doorgifte van de passende instance specifier [SWS_PHM_01141]. Deze constructor is thread-safe (thread-safe) en uitzonderingsveilig (noexcept).
Aangezien een RecoveryAction vast gebonden is aan een specifieke port, zijn kopieer- en verplaatsingsoperaties volledig geblokkeerd: zowel de copy constructor [SWS_PHM_01150] als de copy assignment operator [SWS_PHM_01152] zijn verwijderd (= delete). Eveneens zijn de move constructor [SWS_PHM_01149] en de move assignment operator [SWS_PHM_01151] verwijderd. De specificatie motiveert dit met het feit dat een verplaatsing na het aanbieden van de instantie ertoe zou kunnen leiden dat de RecoveryHandler vóór de volledige constructie van de afgeleide klasse wordt aangeroepen, wat zou leiden tot ongedefinieerd gedrag of onverwerkte uitzonderingen en de systeemveiligheid in gevaar zou brengen [SWS_PHM_01149], [SWS_PHM_01151].
De levenscyclus omvat twee verschillende toestanden:
Niet aangeboden: Onmiddellijk na de constructie en na het aanroepen van StopOffer[SWS_PHM_01144] is de instantie inactief. Aanroepen van RecoveryHandler zijn geblokkeerd.
Aangeboden: Door aanroep van Offer()[SWS_PHM_01143] wordt de actie bij de Phm-daemon geactiveerd en vrijgegeven voor handler-aanroepen.
Het object wordt vrijgegeven via de virtuele destructor [SWS_PHM_01145]. Wat betreft gelijktijdigheid zijn de constructor en de RecoveryHandler gespecificeerd als thread-safe, terwijl Offer(), StopOffer() en de destructor niet thread-safe (not thread-safe) zijn [SWS_PHM_01141], [SWS_PHM_01142], [SWS_PHM_01143], [SWS_PHM_01144], [SWS_PHM_01145]. Interpretatie: Vóór de vernietiging van een instantie moet in de praktijk vermoedelijk altijd StopOffer() worden aangeroepen om asynchrone handler-aanroepen tijdens de ontmanteling van het object betrouwbaar uit te sluiten. Vraag Q-a1f47898bed925fd (open)
Het typische gebruik is onderverdeeld in een vaste aanroepvolgorde:
Definitie van een afgeleide klasse die de zuiver virtuele elementfunctie RecoveryHandler implementeert [SWS_PHM_01142].
Instantiëring van het afgeleide object onder opgave van de instance specifier [SWS_PHM_01141].
Aanroep van Offer() om de herstelactie beschikbaar te stellen bij de Phm-daemon [SWS_PHM_01143].
Reactie op fouten: Detecteert het PHM een fout, dan roept het RecoveryHandler(executionError, supervision) aan [SWS_PHM_01142]. De methode levert een ara::core::Future<void> op, waarmee het resultaat van het foutherstel wordt gemeld.
Aanroep van StopOffer() zodra de instantie geen herstelacties meer hoeft af te handelen [SWS_PHM_01144].
Vernietiging van het object via de destructor [SWS_PHM_01145].
In het kader van de modelconfiguratie en de werking moet rekening worden gehouden met specifieke foutcondities:
Model- en validatieschendingen bij de constructie [SWS_PHM_01141]:
AraNotInitializedViolation: De ARA-runtime-omgeving is vóór de instantiëring niet geïnitialiseerd.
InstanceSpecifierMappingIntegrityViolation: De instance specifier kan in het model niet worden herleid of refereert niet aan een PortPrototype.
PortInterfaceMappingViolation: Het via RecoveryNotificationToPPortPrototypeMapping gereferentieerde port-prototype is niet getypeerd door een PhmSupervisionRecoveryNotificationInterface.
ProcessMappingViolation: Tijdens runtime bestaat er geen passend gemodelleerd proces voor de instance-ref.
InstanceSpecifierAlreadyInUseViolation: De instance specifier wordt binnen het huidige proces reeds gebruikt.
Communicatiefouten bij het aanbieden [SWS_PHM_01143]:
Als de communicatie met de Phm-daemon mislukt, levert Offer() een resultaat op met de foutcode PhmErrc::kOfferFailed.
Onherstelbare fouten bij het herstel [SWS_PHM_01142]:
Als State Management de gemelde fout niet kan oplossen, retourneert het door RecoveryHandler geretourneerde Future de fout PhmErrc::kSMCanNotHandleRecovery. Vervolgens grijpt Platform Health Management in en triggert de watchdog.
Deze klassehandleiding is gegenereerd door een AI-curatie-assistent op basis van de specificatie AUTOSAR R25-11.
The move assignment operator for the RecoveryAction shall not be used. Rationale: Using the move assignment after a RecoveryAction instance has been offered may result in premature invocation of RecoveryHandler before the derived class is fully constructed. This can lead to undefined behavior or unhandled exceptions, compromising system stability and safety.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e0343e0b39c4Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De parameterloze methode Offer behoort tot de klasse ara::phm::RecoveryAction en wordt via het headerbestand ara/phm/recovery_action.h opgenomen [SWS_PHM_01143]. Haar doel is het beschikbaar stellen van de service aan Platform Health Management (PHM) om latere aanroepen van de RecoveryHandler mogelijk te maken [SWS_PHM_01143]. De aanroep geschiedt synchroon en accepteert geen parameters [SWS_PHM_01143].
Het resultaat van de uitvoering wordt als ara::core::Result<void> geretourneerd [SWS_PHM_01143]. In foutloze toestand is deze Result leeg. Indien de communicatie met de PHM-daemon mislukt, kan de service niet worden aangeboden en retourneert de functie de foutcode PhmErrc::kOfferFailed met rollback-semantiek [SWS_PHM_01143].
Wat betreft de uitvoeringsveiligheid is de methode gespecificeerd als noexcept en uitzonderingsveilig (exception safe) [SWS_PHM_01143]. Ze is echter uitdrukkelijk gedefinieerd als niet-thread-safe (not thread-safe) [SWS_PHM_01143].
In het systeemverband bestaat een directe koppeling met de foutafhandeling: de RecoveryHandler van de klasse ara::phm::RecoveryAction dient voor de reactie op uitvoeringsfouten (ara::exec::ExecutionErrorEvent) en bewakingsfouten (TypeOfSupervision) [SWS_PHM_01142]. Het PHM kan deze handler pas aanroepen nadat de activering vooraf expliciet via RecoveryAction::Offer is vrijgeschakeld [SWS_PHM_01142].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie.
AraNotInitialized- Violation message that is sent in case a constructor or function Violation checks for an initialized ara and identifies that ara is not initialized. 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 RecoveryNotificationToPPortPrototypeMapping needs to be typed by a PhmSupervisionRecoveryNotificationInterface. 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
instance
instance specifier to the PPortPrototype of a PhmRecoveryAction Interface
Request a governed re-review of this record. The record is not changed immediately.
The move constructor operator for the RecoveryAction shall not be used. Rationale: Using the move constructor after a RecoveryAction instance has been offered may result in premature invocation of RecoveryHandler before the derived class is fully constructed. This can lead to undefined behavior or unhandled exceptions, compromising system stability and safety
RecoveryHandler to be invoked by PHM. The handler invocation needs to be enabled before by a call of RecoveryAction::Offer.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4d5e12f6a819Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De zuiver virtuele methode RecoveryHandler in ara::phm::RecoveryAction dient als asynchrone callback die wordt aangeroepen door Platform Health Management (PHM) zodra een bewaking mislukt [SWS_PHM_01142]. Bij de aanroep draagt PHM de foutgebeurtenis executionError met detailinformatie over het herstel en het type van de mislukte elementaire bewaking over via de parameter supervision[SWS_PHM_01142].
Voor het gebruik en de levenscyclus gelden vaste volgorde- en concurrency-voorwaarden:
Activering: Aanroepen van de handler moeten vooraf expliciet worden vrijgegeven via RecoveryAction::Offer[SWS_PHM_01142], [SWS_PHM_01143]. Ze kunnen via StopOffer weer worden gedeactiveerd [SWS_PHM_01144].
Objectintegriteit: Zowel de move-constructor als de move-toewijzingsoperator van RecoveryAction zijn verwijderd (=delete) om te voorkomen dat na het aanbieden van de actie vroegtijdige handler-aanroepen worden uitgevoerd op nog onvolledig geconstrueerde afgeleide klassen [SWS_PHM_01149], [SWS_PHM_01151].
Thread-safety: De methode zelf is gespecificeerd als thread-safe en uitzonderingsveilig [SWS_PHM_01142], terwijl Offer en StopOffer niet thread-safe zijn [SWS_PHM_01143], [SWS_PHM_01144].
Het resultaat wordt asynchroon geretourneerd via een ara::core::Future<void>[SWS_PHM_01142]. Als het herstel succesvol was, wordt de future voldaan met void. Als State Management het herstel niet kan uitvoeren, faalt de future met de foutcode PhmErrc::kSMCanNotHandleRecovery; in dit geval grijpt Platform Health Management in en triggert de watchdog [SWS_PHM_01142].
Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR R25-11.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 8cdc07a00e3fHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode StopOffer van de klasse ara::phm::RecoveryAction dient om de uitvoering van de bijbehorende RecoveryHandler te deactiveren [SWS_PHM_01144]. Deze is gedeclareerd in de header ara/phm/recovery_action.h[SWS_PHM_01144].
Gebruik en semantiek
De functie heeft de signatuur void StopOffer() noexcept;, accepteert geen parameters en levert geen retourwaarde op [SWS_PHM_01144]. Door de aanroep signaleert de applicatie aan Platform Health Management (PHM) dat er geen verdere aanroepen van de handler meer mogen plaatsvinden [SWS_PHM_01144]. De aanroep vindt synchroon plaats; lopende handler-instanties worden vermoedelijk vóór of bij de deactivering voltooid (interpretatie). Vraag Q-a333b1e2f0634ed1 (open)
Foutafhandeling en gelijktijdigheid
Uitzonderingsveiligheid: De operatie is gedeclareerd als noexcept en geldt als volledig exception safe; er bestaan geen foutcodes of uitzonderingen [SWS_PHM_01144].
Thread-safety: De methode is expliciet gespecificeerd als not thread-safe[SWS_PHM_01144]. Een gelijktijdige aanroep op dezelfde RecoveryAction-instantie vereist daarom externe synchronisatie door de aanroeper.
Deze tekst is gegenereerd door een AI en is gebaseerd op de specificatie AUTOSAR Adaptive R25-11.
The move assignment operator for the RecoveryAction shall not be used. Rationale: Using the move assignment after a RecoveryAction instance has been offered may result in premature invocation of RecoveryHandler before the derived class is fully constructed. This can lead to undefined behavior or unhandled exceptions, compromising system stability and safety.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel