Definieert een gesloten bytewaarde-interval voor diagnosedienstpatronen in dynamische toegangslijsten.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 772c8ed103ebHerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Definieert een gesloten bytewaarde-interval voor diagnosedienstpatronen in dynamische toegangslijsten.
De klasse ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange representeert een gesloten bytewaarde-interval voor de definitie van diagnosedienstpatronen in dynamische toegangslijsten [SWS_DM_01182]. Applicaties creëren deze waarde-objecten met minimum- en maximumwaarden en dragen deze over aan de builder voor de stapsgewijze configuratie van dienstpatronen [SWS_DM_01183]. Bovendien kunnen de vastgelegde intervalgrenzen te allen tijde via inspectoren worden uitgelezen. Alle lidfuncties zijn uitzonderingsveilig gedeclareerd als noexcept, terwijl modificerende toewijzingsoperatoren bij gelijktijdige toegang afzonderlijke synchronisatie vereisen.
Context
De klasse ara::diag::DynamicAccessListDiagServiceBuilder::ByteRange representeert een gesloten bytewaarde-interval binnen een diagnosedienstpatroon [SWS_DM_01182]. In het kader van het dynamische toegangsbeheer (DynamicAccessList) fungeert deze als elementaire bouwsteen om criteria en waardebereiken van afzonderlijke bytes voor diagnoseverzoeken nauwkeurig vast te leggen AUTOSAR_AP_SWS_Diagnostics §8.15.2 “Class: ByteRange”.
Als genest waardetype werkt ByteRange direct samen met de bovenliggende DynamicAccessListDiagServiceBuilder. Terwijl de diagnose-applicatie instanties met specifieke drempelwaarden creëert, verbruikt de builder deze objecten via methoden zoals Add[SWS_DM_01177] of EndsWith[SWS_DM_01180] om sequentiële byte-patroonreeksen voor diagnosediensten op te bouwen. Aanvullend maakt de klasse het mogelijk om de geconfigureerde grenzen uit te lezen via GetMin[SWS_DM_01189] en GetMax[SWS_DM_01190].
Levenscyclus
Instanties van ByteRange ontstaan regulier via de geparametriseerde constructor, die de minimumwaarde (min) en maximumwaarde (max) als een gesloten waarde-interval accepteert [SWS_DM_01183]. Aangezien het om een toestandloos waarde-object zonder dynamische resourcebinding gaat, bestaan er geen complexe interne operationele fasen.
De klasse implementeert standaardconforme waardesemantiek: zij biedt zowel een copy-constructor [SWS_DM_01184] als een move-constructor [SWS_DM_01185], waardoor exemplaren probleemloos via kopiëren of verplaatsen aan builder-methoden kunnen worden overgedragen. Analoog daaraan zijn de kopieertoewijzingsoperator [SWS_DM_01186] en de move-toewijzingsoperator [SWS_DM_01187] beschikbaar. De levenscyclus wordt afgesloten met de destructor [SWS_DM_01188].
Met betrekking tot gelijktijdigheid specificeert AUTOSAR gedifferentieerde eisen: constructors en leesoperaties zijn geclassificeerd als thread-safe, terwijl de toewijzingsoperatoren operator= ([SWS_DM_01186], [SWS_DM_01187]) en de destructor [SWS_DM_01188] uitdrukkelijk niet thread-safe zijn. Modificerende operaties op dezelfde instantie vereisen daarom synchronisatiemaatregelen op aanroepersniveau.
Gebruikspad
Het typische gebruik van ByteRange vindt plaats in het kader van de sequentiële configuratie van dienstpatronen via de builder:
De applicatie creëert een ByteRange-object onder opgave van de grenzen min en max[SWS_DM_01183].
Het interval wordt overgedragen aan DynamicAccessListDiagServiceBuilder::Add om het patroon op de actuele positie uit te breiden [SWS_DM_01177].
Met EndsWith kan een finaal interval worden gedefinieerd dat de afsluiting van het patroon vormt [SWS_DM_01180].
Indien gewenst leest de applicatie de grenswaarden uit via GetMin[SWS_DM_01189] en GetMax[SWS_DM_01190] ter verificatie.
Sequentiediagram: Typische interactie bij de definitie van een diagnosepatroon met ByteRange. Bronnen: [SWS_DM_01183], [SWS_DM_01177], [SWS_DM_01180], [SWS_DM_01189], [SWS_DM_01190].
Foutscenario's
Alle lidfuncties van de klasse zijn gedeclareerd met noexcept en daarmee volledig uitzonderingsveilig (exception safe) [SWS_DM_01183]. Noch de constructie noch toewijzingen of opvragingen werpen C++-excepties op.
Mogelijke foutsituaties betreffen primair logische parametreringfouten: draagt een applicatie een minimumwaarde min over die groter is dan de maximumwaarde max, dan definieert de specificatie geen expliciet foutgedrag (interpretatie: een dergelijk ongeldig waardepaar zal vermoedelijk pas bij de aansluitende patroonverwerking in de builder worden afgewezen of tot een leeg overeenkomstpatroon leiden). Vraag Q-ea9c65d175d48946 (open) Een ander foutrisico ligt in de onbeschermde toewijzing via operator= bij gelijktijdige toegang door meerdere threads tot hetzelfde object, aangezien toewijzingen niet thread-safe zijn [SWS_DM_01186].
Deze klassehandleiding is gebaseerd op de AUTOSAR Adaptive-specificatie R25-11 voor de module diag.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel