Biedt gestandaardiseerde interfaces voor gesynchroniseerde tijdbases, uiterst nauwkeurige tijdstempels en statusbewaking.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: aa3b87a713ceHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Biedt gestandaardiseerde interfaces voor gesynchroniseerde tijdbases, uiterst nauwkeurige tijdstempels en statusbewaking.
De namespace ara::tsync biedt interfaces voor gesynchroniseerde tijdtoegang op het Adaptive Platform door applicaties via SynchronizedTimeBaseConsumer te koppelen aan geconfigureerde tijdbases. De tijdregistratie geschiedt via uiterst nauwkeurige tijdstempels van het type Timestamp op basis van een nanosecondenresolutie [SWS_TS_01251]. Applicaties bewaken de synchroniciteit via statusindicatoren zoals SynchronizationStatus[SWS_TS_01050]. Een belangrijke randvoorwaarde is dat de asynchrone meldingscallbacks niet thread-veilig zijn ontworpen en dat verbroken verbindingen met de tijd-daemon moeten worden afgehandeld.
Context
De namespace ara::tsync biedt binnen het AUTOSAR Adaptive Platform de interfaces voor uiterst nauwkeurige tijdsynchronisatie. Hij stelt applicaties in staat gesynchroniseerde tijdstippen uit te lezen, de synchronisatietoestand te bewaken en meetwaarden te loggen voor validatiedoeleinden. De centrale rol voor consumerende applicaties wordt ingenomen door de klasse SynchronizedTimeBaseConsumer, die de toegang tot een via een InstanceSpecifier geconfigureerde tijdbasis inkapselt. Aan de aanbiederszijde dient SynchronizedTimeBaseProvider als toegangspunt voor het beschikbaar stellen en aansturen van tijdbases.
De basis van de temporele representatie is de pseudo-klok TimeBase, via welke de type-alias Timestamp als std::chrono::time_point<TimeBase, std::chrono::nanoseconds>[SWS_TS_01251] is gedefinieerd. Het eigenlijke synchronisatiewerk en de koppeling aan busprotocollen zoals IEEE 802.1AS of PTP vindt doorgaans plaats via een achtergronddienst. Interpretatie: deze tijd-daemon communiceert procesoverstijgend met de instanties van ara::tsync, wat blijkt uit de specifieke fout TsyncErrc::kDaemonConnectionLost[SWS_TS_00901]. De architectuur wordt aangevuld met interfaces zoals ConsumerTimeBaseValidationNotification en ProviderTimeBaseValidationNotification, evenals datastructuren voor looptijd- en precisiemetingen (bijv. TimeMasterMeasurementType, TimeSlaveMeasurementType, PdelayInitiatorMeasurementType en PdelayResponderMeasurementType). Vraag Q-dd9d1a36f7573a03 (open)
Contextdiagram: samenspel van applicaties, interfaceklassen en tijd-daemon in de namespace ara::tsync. Bronnen: [SWS_TS_00901], [SWS_TS_01251].
Levenscyclus
De levenscyclus van een gesynchroniseerde tijdbasis wordt bepaald door toestandstructuren en discrete statusovergangen. Een momentopname van de temporele toestand inclusief alle metadata wordt gerepresenteerd door SynchronizedTimeBaseStatus. De communicatie- en synchronisatietoestand wordt gestuurd via de enumeratie SynchronizationStatus[SWS_TS_01050]:
kNotSynchronizedUntilStartup: begintoestand vóór de eerste succesvolle synchronisatie na de systeemstart.
kSynchronized: de tijdbasis is synchroon met de time-master.
kSynchToGateway: de synchronisatie vindt plaats via een gateway.
kTimeOut: binnen een gedefinieerd tijdvenster kon geen synchronisatie tot stand worden gebracht of worden gehandhaafd.
Naast de communicatiestatus registreert de enumeratie LeapJump[SWS_TS_01051] sprongsgewijze correcties van de tijdbasis: kTimeLeapNone signaleert een continu verloop zonder overschrijding van de drempelwaarde, terwijl kTimeLeapFuture en kTimeLeapPast significante correcties naar respectievelijk de toekomst of het verleden aangeven.
Met betrekking tot gelijktijdigheid dient in acht te worden genomen dat callback-typen zoals SynchronizationNotifier[SWS_TS_14222], SynchronizedTimeBaseNotifier[SWS_TS_14221] en TimePrecisionNotifier[SWS_TS_14223] volgens de specificatie zijn geclassificeerd als niet thread-veilig. Toestandsovergangen, in het bijzonder het optreden van time-outs of hersynchronisaties, vereisen daarom synchronisatie aan de zijde van de applicatie.
Toestandsdiagram: levenscyclus en communicatietoestanden van een gesynchroniseerde tijdbasis. Bronnen: [SWS_TS_01050].
Gebruikspad
De typische procedure voor het gebruik van een gesynchroniseerde tijdbasis door een consument-applicatie is onderverdeeld in de volgende stappen:
Initialisatie en binding: de applicatie instantieert SynchronizedTimeBaseConsumer voor de gewenste tijdbasis onder vermelding van de passende InstanceSpecifier.
Registratie van notificaties: voor het bewaken van de synchronisatietoestand geeft de applicatie callback-functies door. Daartoe behoren SynchronizationNotifier[SWS_TS_14222] voor wijzigingen van de SynchronizationStatus, SynchronizedTimeBaseNotifier[SWS_TS_14221] voor gedetailleerde status-snapshots (SynchronizedTimeBaseStatus), en TimePrecisionNotifier[SWS_TS_14223] voor precisiemeetgegevens (TimePrecisionMeasurement).
Tijdstempelopvraag: bij de toestand kSynchronized of kSynchToGateway[SWS_TS_01050] leest de applicatie uiterst nauwkeurige tijdwaarden van het type Timestamp[SWS_TS_01251] uit.
Reactie op status- en tijdsprongen: wanneer notificaties een LeapJump ongelijk aan kTimeLeapNone[SWS_TS_01051] of een overgang naar kTimeOut[SWS_TS_01050] signaleren, past de applicatie interne timers aan of gaat deze over naar een degradatiemodus.
Overdracht van gebruikersgegevens: wanneer toepassingsspecifieke payload binnen het kader van de tijdsynchronisatie wordt overgedragen, wordt de structuur UserData gebruikt.
Foutscenario's
De foutafhandeling van de namespace volgt het AUTOSAR-standaardmodel via het foutdomein TsyncErrorDomain. Toegang tot dit globale domein vindt plaats via GetTsyncErrorDomain()[SWS_TS_00909]. Foutoorzaken worden beschreven door het enumeratietype TsyncErrc[SWS_TS_00901]:
kDaemonConnectionLost: de aangevraagde bewerking mislukt omdat de verbinding met de time-sync-daemon is verbroken.
kLimitsExceeded: een doorgegeven of berekende waarde ligt buiten het toelaatbare waardebereik.
kFunctionNotSupported: de aangevraagde functie wordt in de actuele configuratie of platformomgeving niet ondersteund.
kInvalidUserDataSize: de lengte van de doorgegeven gebruikersgegevens overschrijdt het door UserData::kMaxUserDataSize gedefinieerde maximum van momenteel 3 bytes.
Instanties van ara::core::ErrorCode worden aangemaakt via de hulpfunctie MakeErrorCode[SWS_TS_00910]. De functie is gedeclareerd als noexcept en is thread-veilig. Voor op uitzonderingen gebaseerde architecturen stelt de namespace de uitzonderingsklasse TsyncException beschikbaar.
Deze handleiding is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11 voor de module tsync.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
Klassendiagram
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
=0 The TB is not synchronized until startup (inital state)
kTimeOut
= 0x1 The TB was not synchronized within a certain time frame.
kSynchronized
= 0x2 The TB is in sync with the time master.
kSynchToGateway
= 0x3 The TB is in sync with the gateway.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 2b617e90b13fHerkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De enumeratie SynchronizationStatus drukt de communicatie- en synchronisatiestatus van een tijdbasis in de namespace ara::tsync uit [SWS_TS_01050]. Het type is gebaseerd op std::uint32_t en wordt beschikbaar gesteld via het header-bestand ara/tsync/synchronized_time_base_status.h en de forwarding-header ara/tsync/tsync_fwd.h[SWS_TS_01050]. De enumeratie definieert vier toestanden:
kNotSynchronizedUntilStartup (= 0): De tijdbasis is vóór de systeemstart niet gesynchroniseerd (initiële toestand) [SWS_TS_01050].
kTimeOut (= 0x1): De tijdbasis is binnen een vooraf bepaald tijdvenster niet gesynchroniseerd [SWS_TS_01050].
kSynchronized (= 0x2): De tijdbasis is synchroon met de time-master [SWS_TS_01050].
kSynchToGateway (= 0x3): De tijdbasis is synchroon met de gateway [SWS_TS_01050].
Het synchrone opvragen van de status gebeurt via de methode GetSynchronizationStatus() van de klasse ara::tsync::SynchronizedTimeBaseStatus, die de toestand op het tijdstip van aanmaak van het status-object threadsafe en exception-veilig (noexcept) levert [SWS_TS_01053]. Voor meldingen bij statuswijzigingen bestaat in ara/tsync/synchronized_time_base_consumer.h de type-alias SynchronizationNotifier (std::function<void(const SynchronizationStatus &)>), die expliciet als niet-threadsafe is gespecificeerd [SWS_TS_14222].
In het geval van een fout of ontbrekende synchronisatie moet het gedrag van gekoppelde methoden in acht worden genomen: als de tijdbasis nog nooit is gesynchroniseerd en de status kNotSynchronizedUntilStartup heeft, levert de methode GetCreationTime() een lege ara::core::Optional op, aangezien er geen geldig tijdstip van aanmaak in gesynchroniseerde tijd beschikbaar is [SWS_TS_01055].
Deze tekst is gegenereerd door een AI-systeem en steunt uitsluitend op de specificatiegegevens uit AUTOSAR R25-11.
Implementer's Guide volgt (complexiteit I1)
Request a governed re-review of this record. The record is not changed immediately.
=1 The action cannot be executed, because the connection to time sync daemon is currently lost.
kLimitsExceeded
=2 The value exceeds valid value range
kFunctionNotSupported
=3 The requested function is not supported
kInvalidUserDataSize
=4 The length of the user data exceeded the maximum allowed size, defined by UserData::kMaxUserDataSize (currently 3 bytes).
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: bf6ea0154525HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De enumeratie TsyncErrc definieert de gestandaardiseerde foutcodes van het functionele cluster Time Synchronization [SWS_TS_00901]. Deze is gebaseerd op ara::core::ErrorDomain::CodeType en wordt gedeclareerd binnen de namespace ara::tsync; via ara::tsync::TsyncErrorDomain::Errc is tevens een alias beschikbaar [SWS_TS_01266]. Voor het aanmaken van volledige foutobjecten dient de thread-safe functie MakeErrorCode, die een TsyncErrc-waarde met fabrikantspecifieke aanvullende gegevens combineert tot een ara::core::ErrorCode[SWS_TS_00910].
De specificatie definieert vier concrete foutwaarden [SWS_TS_00901]:
kDaemonConnectionLost (=1): De actie kan niet worden uitgevoerd omdat de verbinding met de Time-Sync-daemon is verbroken.
kLimitsExceeded (=2): Een meegegeven parameter overschrijdt het toegestane waardebereik. Dit treedt bijvoorbeeld op bij SetRateCorrection wanneer de aangevraagde snelheidscorrectie ongeldig is [SWS_TS_01110].
kFunctionNotSupported (=3): De aangevraagde functie wordt niet ondersteund. Interpretatie: Dit heeft vermoedelijk betrekking op implementaties waarbij optionele hardware- of interfacefuncties niet beschikbaar zijn. Vraag Q-e22067d84fd6adb4 (open)
kInvalidUserDataSize (=4): De lengte van de payload overschrijdt de door UserData::kMaxUserDataSize voorgeschreven maximale omvang van 3 bytes. Deze fout treedt op bij SetTime[SWS_TS_01107] en SetUserData[SWS_TS_01112].
Methoden voor tijd- en gegevensbijwerking zoals SetTime, UpdateTime, SetRateCorrection en SetUserData van de klasse ara::tsync::SynchronizedTimeBaseProvider leveren resultaten synchroon via ara::core::Result<void> op en zijn gespecificeerd als niet-thread-safe [SWS_TS_01107][SWS_TS_01108][SWS_TS_01110][SWS_TS_01112]. In geval van fouten geldt volgens de specificatie geen rollback-semantiek (no_rollback_semantics) [SWS_TS_01107][SWS_TS_01110][SWS_TS_01112].
Deze tekst is opgesteld door een AI en is gebaseerd op specificatiestand R25-11.
Implementer's Guide volgt (complexiteit I1)
Request a governed re-review of this record. The record is not changed immediately.
Returns a reference to the global TsyncErrorDomain object.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 3848538f31e7HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone functie GetTsyncErrorDomain behoort tot de namespace ara::tsync en wordt via het headerbestand ara/tsync/tsync_error_domain.h geïncludeerd [SWS_TS_00909]. De aanroep geschiedt zonder parameters en dient ertoe een referentie naar het globale TsyncErrorDomain-object van de tijdsynchronisatie op te halen [SWS_TS_00909].
Als retourwaarde levert de functie een constante referentie op naar dit globale foutdomein-object van het type const ara::core::ErrorDomain &[SWS_TS_00909]. Interpretatie: De beschikbaar gestelde instantie dient in het foutafhandelingsconcept van AUTOSAR Adaptive vermoedelijk als referentiepunt om modulespecifieke foutcodes uit het domein van de tijdsynchronisatie te identificeren, toe te wijzen of met andere foutdomeinen te vergelijken. Vraag Q-cf1fce412576bca3 (open)
Foutafhandeling en exception-veiligheid
De functiesignatuur is expliciet gedeclareerd als noexcept en gespecificeerd als uitzonderingsveilig (exception safe) [SWS_TS_00909]. Dit betekent dat er tijdens de uitvoering geen uitzonderingen kunnen worden gegenereerd. Aangezien de functie enkel de verwijzing naar het reeds bestaande globale domeinobject retourneert, treden er geen interne fouttoestanden op en bestaan er noch specifieke foutcodes noch foutmeldingen voor de aanroep [SWS_TS_00909].
Gelijktijdigheid en beperkingen
Volgens de specificatie is GetTsyncErrorDomain geclassificeerd als thread-safe (thread-safe) [SWS_TS_00909]. Aanroepen kunnen zodoende parallel vanuit verschillende threads zonder voorafgaande synchronisatie of vergrendelingsmechanismen worden uitgevoerd. Er gelden volgens de specificatie geen bijzondere volgordevoorwaarden of precondities voor de aanroep [SWS_TS_00909].
Deze tekst is gegenereerd door een AI en is gebaseerd op AUTOSAR-specificaties.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: ad8052caa2c8Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie MakeErrorCode dient voor het synchroon aanmaken van een ara::core::ErrorCode-object voor het foutdomein van de tijdsynchronisatie in de namespace ara::tsync[SWS_TS_00910]. Deze is beschikbaar via de header ara/tsync/tsync_error_domain.h en converteert foutnummers van de tijdsynchronisatie naar het gestandaardiseerde foutafhandelingsmodel van AUTOSAR Adaptive.
Parameters en retourwaarde
code (ara::tsync::TsyncErrc): Duidt het specifieke foutnummer van het domein aan [SWS_TS_00910].
data (ara::core::ErrorDomain::SupportDataType): Draagt fabrikantspecifieke aanvullende gegevens over met betrekking tot de opgetreden fout [SWS_TS_00910].
Retourwaarde: Geeft een geïnitialiseerd ara::core::ErrorCode-object terug [SWS_TS_00910].
Gelijktijdigheid en uitvoeringsveiligheid
De functie is gedeclareerd met noexcept en geclassificeerd als uitzonderingsveilig [SWS_TS_00910]; ze werpt tijdens runtime geen uitzonderingen. Bovendien is de implementatie gespecificeerd als thread-safe[SWS_TS_00910], waardoor ze zonder aanvullende synchronisatiemaatregelen parallel vanuit meerdere threads mag worden aangeroepen.
Samenspel
In aanvulling op deze basisfunctie specificeert de verwante eis [SWS_TS_14213] een analoge overbelasting voor TsyncFvmErrc in de namespace apext::tsync (header apext/tsync/fvm_error_domain.h), die als constexpr is gedefinieerd.
Deze tekst is gegenereerd door een AI op basis van de specificatie AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel