Maakt het bewaken van diagnose-bedrijfscycli en het activeren van een cyclusherstart via gemodelleerde poorten mogelijk.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3e8e62c1c567HerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt het bewaken van diagnose-bedrijfscycli en het activeren van een cyclusherstart via gemodelleerde poorten mogelijk.
De klasse ara::diag::OperationCycle stelt aan de applicatie functies beschikbaar voor de besturing en bewaking van diagnose-bedrijfscycli [SWS_DM_00752]. Instanties worden via een ara::core::InstanceSpecifier aan een gemodelleerde poort gebonden, zijn noch kopieerbaar noch verplaatsbaar en mogen per identifier slechts eenmaal in het proces bestaan. Via SetNotifier kan een notificatie voor cycluswijzigingen worden ingesteld en door middel van RestartOperationCycle kan een herstart van de bedrijfscyclus worden geactiveerd [SWS_DM_01102]. Met uitzondering van de thread-safe constructor zijn alle methoden en de destructor niet thread-safe en vereisen zij bij parallelle toegang synchronisatie aan de applicatiezijde.
Context
De klasse ara::diag::OperationCycle realiseert het DiagnosticOperationCycleInterface binnen de AUTOSAR Adaptive-diagnose en biedt functies voor de hantering en besturing van bedrijfscycli. Zij dient als interface tussen de adaptieve applicatie en Diagnostic Management om toestanden van bedrijfscycli te bewaken of gericht te resetten.
De koppeling aan het totale systeem vindt plaats via een ara::core::InstanceSpecifier, die bij de constructor-aanroep wordt meegegeven [SWS_DM_00752]. Deze identifier refereert aan een in het model gedefinieerde PortPrototype. Het model schrijft hierbij een eenduidige toewijzing voor: een door een DiagnosticOperationCyclePortMapping gereferentieerde PortPrototype moet door het DiagnosticOperationCycleInterface getypeerd zijn [SWS_DM_00752]. Naast de besturing interacteert de klasse via een callback-interface van het type ara::diag::OperationCycle::OperationCycleSetNotifier (gedefinieerd als std::function<void(void)>), waarmee notificaties bij een wijziging van de bedrijfscyclus aan de applicatie worden doorgegeven [SWS_DM_02078], [SWS_DM_00755].
Levenscyclus
De creatie van ara::diag::OperationCycle vindt expliciet plaats door specificatie van de poortinstantiespecificatie via de constructor OperationCycle(const ara::core::InstanceSpecifier &specifier)[SWS_DM_00752]. De constructor is gespecificeerd als exception-safe en thread-safe [SWS_DM_00752].
Wat betreft eigendoms- en kopieersemantiek is de klasse gemodelleerd als een strikt enkel object dat een vaste 1:1-binding met de gemodelleerde poort vormt. Kopiëren en verplaatsen zijn volledig verhinderd:
De copy-constructor is verwijderd (delete) om duplicaties uit te sluiten [SWS_DM_01598].
De move-constructor is verwijderd (delete) [SWS_DM_01599].
De copy-toewijzingsoperator is verwijderd (delete) [SWS_DM_01596].
De move-toewijzingsoperator is verwijderd (delete) [SWS_DM_01597].
Bovendien verbiedt het framework meervoudige toewijzing: een InstanceSpecifier mag binnen hetzelfde proces niet herhaaldelijk voor een instantiëring worden gebruikt [SWS_DM_00752]. De vrijgave vindt plaats in de destructor ~OperationCycle()[SWS_DM_00753]. In tegenstelling tot de constructor is de destructor niet thread-safe (not thread-safe), hoewel deze als exception-safe is gedeclareerd [SWS_DM_00753]. Ook de verdere methoden van de klasse en het callback-type zijn niet thread-safe [SWS_DM_00755], [SWS_DM_01102], [SWS_DM_02078], zodat parallelle toegangen tot dezelfde instantie aan de applicatiezijde moeten worden gesynchroniseerd.
Gebruikspad
Een typisch gebruikstraject omvat de instantiëring, de optionele registratie van een handler voor cycluswijzigingen, het herhaaldelijk triggeren van de cyclusherstart en de vrijgave:
Instantiëring: de applicatie creëert het object OperationCycle onder doorgifte van de bijbehorende InstanceSpecifier[SWS_DM_00752].
Notifier registreren: via de methode SetNotifier stelt de applicatie een callback-functie van het type OperationCycleSetNotifier in [SWS_DM_00755], [SWS_DM_02078]. Deze functie wordt aangeroepen wanneer de bedrijfscyclus verandert. Een opeenvolgende aanroep van SetNotifier overschrijft de eerder geregistreerde notifier volledig [SWS_DM_00755].
Bedrijfscyclus herstarten: met behulp van RestartOperationCycle() activeert de applicatie de herstart van de bedrijfscyclus [SWS_DM_01102]. Diagnostic Management actualiseert de cyclus en stelt bij statusovergangen de geregistreerde callback op de hoogte [SWS_DM_00755]. De notificatie vindt hierbij vermoedelijk asynchroon plaats in de context van Diagnostic Management. Vraag Q-7cd22debf6fa91d7 (open)
Vernietiging: bij het afsluiten van de softwarecomponent wordt het object via de destructor vernietigd [SWS_DM_00753].
Fouten bij de initialisatie worden door het framework als schendingen (violations) gesignaleerd, aangezien de constructor als noexcept is gedeclareerd [SWS_DM_00752]:
InstanceSpecifierMappingIntegrityViolation: de InstanceSpecifier kan in de context van het executable niet worden herleid of verwijst naar een element dat geen PortPrototype is [SWS_DM_00752].
PortInterfaceMappingViolation: de door DiagnosticOperationCyclePortMapping gereferentieerde PortPrototype is niet door een DiagnosticOperationCycleInterface getypeerd [SWS_DM_00752].
ProcessMappingViolation: er bestaat weliswaar een passende instantie-referentie, maar er is geen passend gemodelleerd proces voor het runtime-proces gevonden [SWS_DM_00752].
InstanceSpecifierAlreadyInUseViolation: de constructor is aangeroepen met een InstanceSpecifier die binnen het huidige proces reeds wordt gebruikt [SWS_DM_00752].
Tijdens regulier bedrijf retourneren de methoden SetNotifier en RestartOperationCycle een ara::core::Result<void>[SWS_DM_00755], [SWS_DM_01102]. Voor beide functies zijn in de standaard geen specifieke foutcodes gedefinieerd (“This function does not specify any standardized errors.”) [SWS_DM_00755], [SWS_DM_01102]. Het gebruik van het type Result dient vermoedelijk primair voor een uniforme interface-opzet en biedt ruimte voor implementatiespecifieke fouttoestanden. Vraag Q-2c59a287c0d5783a (open)
Deze handleiding werd gegenereerd door een AI-systeem op basis van de specificatie AUTOSAR Adaptive R25-11.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
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 DiagnosticOperationCyclePortMapping needs to be typed by a DiagnosticOperationCycleInterface. 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 DiagnosticOperationCycleInterface.
Request a governed re-review of this record. The record is not changed immediately.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3cc8bab8ea58HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De elementfunctie RestartOperationCycle van de klasse ara::diag::OperationCycle (ter beschikking gesteld via #include "ara/diag/operation_cycle.h") dient ertoe Diagnostic Management (DM) de herstart van een bedrijfscyclus mee te delen [SWS_DM_01102]. Bedrijfscycli zoals contactcycli („Ignition on/off”), spanningscycli („Power up/power down”) of geaccumuleerde bedrijfstijden worden beheerd door de adaptieve applicatie en hebben een directe invloed op de UDS-DTC-statusbyte en het gedrag van het gebeurtenissengeheugen conform ISO 14229-1 SWS Diagnostics §7.3.4.3 “Operation Cycles Management”.
Aanroep en semantiek
De functie wordt parameterloos aangeroepen en levert een ara::core::Result<void> terug [SWS_DM_01102]. Mocht de DM op het aanroeptijdstip nog niet gereed zijn om de melding over de herstart te verwerken, dan gaat deze informatie niet verloren: de DM buffert de gebeurtenis tijdelijk (caching) en evalueert de cyclusherstart zodra de verbinding is hersteld [SWS_DM_01103].
Foutafhandeling en gelijktijdigheid
Voor RestartOperationCycle zijn geen gestandaardiseerde foutcodes voorgeschreven [SWS_DM_01102]. De functie is gespecificeerd als uitzonderingsveilig (exception safe) en werpt geen C++-excepties op (noexcept) [SWS_DM_01102]. Omdat de interface echter expliciet is aangeduid als niet-thread-safe (not thread-safe) [SWS_DM_01102], moeten gelijktijdige toegangen tot dezelfde instantie vermoedelijk door de aanroepende applicatie worden gesynchroniseerd. Vraag Q-b3b258a20fd9db22 (open)
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de AUTOSAR-specificatie R25-11.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 4ba4d539945dHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De methode ara::diag::OperationCycle::SetNotifier ([SWS_DM_00755]) dient voor het registreren van een callback-functie aan applicatiezijde van het type OperationCycleSetNotifier. Deze notifier-functie wordt aangeroepen door Diagnostic Management (DM) zodra de toestand van de bewaakte bedrijfscyclus verandert ([SWS_DM_00755]). Voor het gebruik van de methode moet het headerbestand ara/diag/operation_cycle.h worden ingevoegd ([SWS_DM_00755]).
De operatie is gedeclareerd als noexcept en biedt uitzonderingsveiligheid (exception safe) ([SWS_DM_00755]). Als synchrone retourwaarde wordt ara::core::Result<void> geleverd; specifieke gestandaardiseerde foutcodes zijn echter niet gedefinieerd ([SWS_DM_00755]). Eventuele fouttoestanden in het Result-object zijn daarom vermoedelijk fabrikant- of platformspecifiek. Vraag Q-6799492164efd793 (open) Met betrekking tot gelijktijdigheid is de methode gespecificeerd als niet-draadveilig (not thread-safe) ([SWS_DM_00755]), zodat parallelle aanroepen op dezelfde objectinstantie dwingend door de applicatie moeten worden gesynchroniseerd.
Deze gebruiksinstructie is geautomatiseerd opgesteld en is gebaseerd op de specificatie AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel