Meldt voertuig- en systeemgerelateerde vrijgavetoestanden voor de evaluatie van diagnosevoorwaarden aan Diagnostic Management.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 40db6d76454cHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Meldt voertuig- en systeemgerelateerde vrijgavetoestanden voor de evaluatie van diagnosevoorwaarden aan Diagnostic Management.
De klasse ara::diag::Condition biedt de interface DiagnosticConditionInterface waarmee adaptieve applicaties omgevings- en vrijgavevoorwaarden melden aan Diagnostic Management ([SWS_DM_00712]). De Diagnostic Server evalueert deze toestanden om de uitvoering van genormeerde diagnosefuncties of wisprocessen in het voertuig gericht te besturen (AUTOSAR_AP_SWS_Diagnostics §7.3.2.5.5 “Condition checks”). Instanties zijn vast gebonden aan een port-prototype en kunnen niet worden gekopieerd of verplaatst. Bij gelijktijdig gebruik vereisen de opvraag- en instelbewerkingen externe synchronisatie, omdat ze niet thread-safe zijn.
Context
De klasse ara::diag::Condition vormt de programmeerinterface voor diagnosevoorwaarden (DiagnosticConditionInterface) in het AUTOSAR Adaptive Platform ([SWS_DM_00712]). In voertuigdiagnosesystemen mogen bepaalde diagnosefuncties of UDS-diensten alleen worden uitgevoerd wanneer het voertuig zich in een gedefinieerde omgevingstoestand bevindt – zoals bijvoorbeeld bij een stilstaand voertuig met een snelheid van nul (AUTOSAR_AP_SWS_Diagnostics §7.3.2.5.5 “Condition checks”). Conform [SWS_DM_00111] voert de Diagnostic Server overeenkomstige omgevingscontroles uit wanneer ISO 14229-1 dienstspecifieke voorwaardecontroles voorschrijft, en antwoordt bij niet-naleving met een geconfigureerde Negative Response Code (NRC).
Binnen de applicatiearchitectuur fungeert ara::diag::Condition als schakel tussen de adaptieve applicatie en Diagnostic Management (DM). Een applicatie instantieert het voorwaarde-object via een poort die in het model gekoppeld is via een DiagnosticEnableConditionPortMapping of een DiagnosticClearConditionPortMapping ([SWS_DM_00712]). Interpretatie: via deze poorttoewijzing wordt bepaald of de gemelde toestand dient als vrijgavevoorwaarde voor reguliere diagnoseprocessen of als criterium voor het wissen van diagnosedata. Vraag (open) Het object kapselt zodoende de toestandsoverdracht naar de Diagnostic Server in, die de voorwaarden voor binnenkomende diagnoseverzoeken evalueert ([SWS_DM_00111]).
Het aanmaken van een ara::diag::Condition-object gebeurt expliciet door het doorgeven van een ara::core::InstanceSpecifier aan de constructor ([SWS_DM_00712]). Deze identifier verwijst naar het gemodelleerde port-prototype van de applicatie. De constructor is gedeclareerd als noexcept en garandeert uitzonderings- en thread-veiligheid ([SWS_DM_00712]).
Met betrekking tot eigendomsverhoudingen is de klasse ontworpen als een strikte unieke instantie: zowel de copy-constructor ([SWS_DM_01625]) als de copy-assignment-operator ([SWS_DM_01623]) zijn verwijderd (=delete). Evenzo zijn de move-constructor ([SWS_DM_01626]) en de move-assignment-operator ([SWS_DM_01624]) verwijderd. Een voorwaarde-object kan niet worden gekopieerd of verplaatst, wat een vaste 1:1-koppeling met de betreffende poort waarborgt.
Tijdens runtime zijn de methoden SetCondition ([SWS_DM_00715]) en GetCondition ([SWS_DM_00714]) gespecificeerd als niet thread-safe. Bij parallelle toegang vanuit meerdere threads moet de aanroepende applicatie externe synchronisatie waarborgen. De levenscyclus sluit af met de destructor ~Condition() ([SWS_DM_00713]), die noexcept en uitzonderingsveilig is, maar eveneens niet thread-safe.
Gebruikspad
Het typische gebruikspad omvat de initialisatie, de periodieke actualisering van de toestand en het opvragen van de voorwaarde:
Initialisatie: de applicatie instantieert ara::diag::Condition onder opgave van de passende ara::core::InstanceSpecifier ([SWS_DM_00712]) voor koppeling met de modelconfiguratie.
Toestand instellen: verandert de bepalende voertuig- of systeemtoestand, dan actualiseert de applicatie de voorwaarde via SetCondition(condition) ([SWS_DM_00715]). De aanroep bevestigt de overname met een ara::core::Result<void>.
Toestand opvragen: om de huidige toestand te controleren, roept de applicatie GetCondition() aan ([SWS_DM_00714]). Het resultaat wordt asynchroon beschikbaar gesteld via een ara::core::Future<ConditionType>.
Serververwerking: interpretatie: de Diagnostic Server benadert intern de opgeslagen toestand om openstaande diagnoseverzoeken te controleren ([SWS_DM_00111]). Vraag Q-bbf48f735ef80e33 (open)
Beëindiging: bij beëindiging van de component wordt het object via de destructor vrijgegeven ([SWS_DM_00713]).
Fouttoestanden kunnen optreden bij de objectinstantieerfase en tijdens runtime:
Constructorschendingen: bij de creatie ([SWS_DM_00712]) valideert het framework de configuratie tegen het softwaremodel. Mogelijke schendingen omvatten:
InstanceSpecifierMappingIntegrityViolation: de identifier kan niet worden herleid in het model of refereert niet aan een PortPrototype ([SWS_DM_00712]).
PortInterfaceMappingViolation: het PortPrototype is weliswaar getypeerd door DiagnosticConditionInterface, maar wordt noch door een DiagnosticEnableConditionPortMapping noch door een DiagnosticClearConditionPortMapping gerefereerd ([SWS_DM_00712]).
ProcessMappingViolation: voor de instantie-referentie bestaat tijdens runtime geen passend gemodelleerd proces ([SWS_DM_00712]).
InstanceSpecifierAlreadyInUseViolation: de identifier wordt binnen hetzelfde proces al gebruikt door een andere instantie ([SWS_DM_00712]).
Uitval van basisdiagnosediensten:GetCondition() ([SWS_DM_00714]) kan via de geretourneerde ara::core::Future falen met de fout DiagErrc::kServiceNotAvailable wanneer basisfunctionaliteiten van Diagnostic Management tijdelijk niet bereikbaar zijn.
Foutloze toestandsopslag: voor SetCondition() ([SWS_DM_00715]) zijn geen gestandaardiseerde foutcodes gedefinieerd; de functie meldt succes direct via een lege ara::core::Result<void>.
Deze tekst is opgesteld door een AI. Alle inhoudelijke uitspraken zijn uitsluitend gebaseerd op de specificaties AUTOSAR R25-11.
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 DiagnosticConditionInterface needs either to be referenced by a DiagnosticEnableConditionPortMapping or a DiagnosticClearConditionPortMapping. 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 DiagnosticConditionInterface.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel