DEENESPTFRRUARHIKOZHNL

module ara::tsync — Time Synchronization

Spezifikation: AUTOSAR_AP_SWS_TimeSynchronization.pdf (R25-11) · 141 API-Records

Guide du moduleGÉNÉRÉ PAR IA

Met à disposition des bases de temps synchronisées à l'échelle du véhicule et permet aux applications d'effectuer des interrogations temporelles précises et une surveillance de l'état.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 29e900d376f8 Provenance Questions ouvertes (2)
Ancre causale : R25-11 Valable à partir de R25-11 Synthétisé pour cette version de spécification.
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Met à disposition des bases de temps synchronisées à l'échelle du véhicule et permet aux applications d'effectuer des interrogations temporelles précises et une surveillance de l'état.

Le cluster fonctionnel Time Synchronization met à disposition de l'AUTOSAR Adaptive Platform des bases de temps cohérentes et synchronisées à l'échelle du réseau (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Par le biais d'interfaces standardisées, les applications adaptatives interrogent des états temporels atomiques ou injectent, en tant qu'horloges maîtresses actives, de nouvelles corrections de temps et de dérive dans l'ensemble du système. Parallèlement, des callbacks de notification enregistrés surveillent en continu les changements d'état ainsi que les sauts temporels des horloges sous-jacentes ([SWS_TS_01009]). Des mécanismes avancés de validation des données de mesure et des valeurs de fraîcheur protègent en outre l'intégrité temporelle contre les erreurs de transmission et les manipulations.

Le cluster fonctionnel Time Synchronization (tsync) met à disposition des bases de temps cohérentes et synchronisées à l'échelle du réseau sur l'AUTOSAR Adaptive Platform (AUTOSAR_AP_SWS_TimeSynchronization p. 16). En tant que service d'arrière-plan basé sur un démon, il fait abstraction des mécanismes de synchronisation spécifiques au matériel et aux bus (tels que le gPTP IEEE 802.1AS) et alimente les clusters centraux tels que Log and Trace, l'Intrusion Detection System Manager (IdsM) ainsi que les services de mise à jour via des interfaces standardisées (AUTOSAR_AP_EXP_SWArchitecture p. 83).

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

Diagramme de contexte : intégration du cluster Time Synchronization basé sur un démon dans l'AUTOSAR Adaptive Platform et ses relations d'interface avec les clusters consommateurs et les applications. Sources : AUTOSAR_AP_SWS_TimeSynchronization p. 16, AUTOSAR_AP_EXP_SWArchitecture p. 83, AUTOSAR_AP_EXP_SWArchitecture p. 83

Pour l'accès en lecture, les applications utilisent l'interface SynchronizedTimeBaseConsumer ([SWS_TS_01001]). La méthode GetTimeWithStatus() renvoie un instantané atomique de type SynchronizedTimeBaseStatus, à partir duquel l'heure globale, l'heure locale continue de création, l'état de synchronisation ainsi que les UserData reçues peuvent être récupérés ([SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176]). Pour éviter l'attente active (polling), les applications s'enregistrent via des callbacks de notification pour les changements d'état et les sauts temporels ([SWS_TS_01010], [SWS_TS_01014]).

Interrogation synchrone de l'heure et de l'état d'instantanéApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-ZustandDonnées brutes de temps et d'état<<create>> Snapshot erzeugenRetour : SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

Diagramme de séquence : déroulement d'une interrogation temporelle synchrone via l'interface consommateur et lecture des propriétés atomiques de l'instantané. Sources : [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture p. 225

Les applications assurant la base de temps contrôlent le comportement du système via SynchronizedTimeBaseProvider : SetTime() déclenche des transmissions immédiates sur le bus, tandis que UpdateTime() ajuste d'abord l'horloge localement ([SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01108]). Des mécanismes d'accompagnement tels que Time Validation ([SWS_TS_00420], [SWS_TS_00421]) et la gestion native des valeurs de fraîcheur (FVM) protègent contre les erreurs de dérive et de rejeu ([SWS_TS_14198]). En cas d'erreur, des codes TsyncErrc (p. ex. kDaemonConnectionLost) signalent des pertes de connexion, tandis qu'une absence de messages de synchronisation est indiquée par kTimeOut dans l'objet d'état ([SWS_TS_00901], [SWS_TS_01050]).

Le cluster fonctionnel Time Synchronization (tsync) met à disposition des bases de temps coordonnées et synchronisées à l'échelle du réseau sur l'AUTOSAR Adaptive Platform et découple les processus applicatifs des protocoles de synchronisation temporelle spécifiques au matériel et aux bus (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Le système constitue le fondement informatique des systèmes distribués, pour lesquels des séquences d'événements cohérentes, des journaux de trace reproductibles et des cycles de calcul déterministes doivent être garantis au-delà des frontières des calculateurs (AUTOSAR_AP_EXP_SWArchitecture p. 83).

diag_tsync_architektur cluster_platform Adaptive Platform Core cluster_consumers Konsumierende Functional Cluster cluster_apps Adaptive Applications tsync Time Synchronization (daemon-based) fvm apext::tsync::FVM (Platform Extension) tsync->fvm GetTxFreshness() GetRxFreshness() log Log and Trace (ara::log) tsync->log SynchronizedTimeBaseConsumer idsm Intrusion Detection System Manager tsync->idsm SynchronizedTimeBaseConsumer ucm Update and Config Management tsync->ucm SynchronizedTimeBaseConsumer app_consumer Consumer Application (SynchronizedTimeBaseConsumer) tsync->app_consumer GetTimeWithStatus() Notifier validator Validator Application (ValidationNotification) tsync->validator Timing Measurement Data app_provider Provider / Time Master (SynchronizedTimeBaseProvider) app_provider->tsync SetTime() UpdateTime()

Diagramme de contexte : intégration du cluster Time Synchronization basé sur un démon dans l'AUTOSAR Adaptive Platform et ses relations d'interface avec les clusters consommateurs et les applications. Sources : AUTOSAR_AP_SWS_TimeSynchronization p. 16, AUTOSAR_AP_EXP_SWArchitecture p. 83, AUTOSAR_AP_EXP_SWArchitecture p. 83

Limites du système et rôle du cluster Time Synchronization basé sur un démon

L'architecture fonctionnelle de Time Synchronization est conçue sous la forme d'un cluster basé sur un démon (daemon-based), qui opère en arrière-plan en tant que service de plateforme central (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Ce démon interagit directement avec les interfaces du système d'exploitation sous-jacent et traite les données de synchronisation temporelle basées sur le réseau telles que gPTP (IEEE 802.1AS) ou les synchronisations temporelles de bus classiques (AUTOSAR_FO_PRS_TimeSyncProtocol p. 68). Vis-à-vis du contexte applicatif, le cluster encapsule complètement la compensation mathématique de dérive et d'offset des horloges matérielles.

De nombreux clusters fonctionnels centraux de l'Adaptive Platform accèdent à tsync via des interfaces de service standardisées (AUTOSAR_AP_EXP_SWArchitecture p. 83). Par exemple, Log and Trace s'appuie sur la base de temps synchronisée pour doter les événements de journalisation et DLT à l'échelle du système d'horodatages globaux fiables (AUTOSAR_AP_EXP_SWArchitecture p. 59 ; AUTOSAR_AP_SWS_LogAndTrace p. 15). De même, des modules critiques pour la sécurité tels que l'Intrusion Detection System Manager (IdsM) ainsi que les services de mise à jour (UCM et Vehicle UCM) s'appuient impérativement sur l'interface C++ de SynchronizedTimeBaseConsumer pour générer des rapports probants sur le plan médico-légal et piloter des transactions de mise à jour cohérentes par-delà les frontières des calculateurs (AUTOSAR_AP_EXP_SWArchitecture p. 125 ; AUTOSAR_AP_SWS_UpdateAndConfigurationManagement p. 16 ; AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement p. 11).

Interfaces consommatrices et interrogations temporelles avec état

Pour l'accès en lecture à une base de temps synchronisée, les applications utilisent la classe d'interface SynchronizedTimeBaseConsumer ([SWS_TS_01001]). La classe implémente la sémantique de déplacement ([SWS_TS_01003], [SWS_TS_01004]), mais exclut explicitement toute copie ([SWS_TS_01005], [SWS_TS_01006]). Au moment de l'exécution, GetRateDeviation() permet la lecture directe de l'écart de fréquence actuel de l'horloge ([SWS_TS_01008]).

L'élément central de chaque interrogation synchrone est l'opération GetTimeWithStatus() ([SWS_TS_01009]). Au lieu de renvoyer des valeurs de temps brutes isolées, la méthode génère un instantané intrinsèquement cohérent de type SynchronizedTimeBaseStatus (EXP_SWArchitecture p. 81). Cet instantané fige l'instant exact de création en heure globale ([SWS_TS_01055]) ainsi qu'en heure locale continue via GetCreationLocalTime() ([SWS_TS_14176]). Les points temporels sont ici représentés dans le type chrono C++ standardisé Timestamp avec une résolution en nanosecondes sur la base de std::int64_t ([SWS_TS_01251], [SWS_TS_01261], [SWS_TS_01262]).

À partir de l'instantané, il est possible de déterminer, outre l'heure, l'état de communication et de synchronisation via GetSynchronizationStatus() ([SWS_TS_01053]), un éventuel saut temporel survenu via GetLeapJump() ([SWS_TS_01054]) ainsi que des données utilisateur spécifiques à l'application via GetUserData() ([SWS_TS_01056]). Il n'existe pas de constructeur par défaut pour l'objet d'état ([SWS_TS_01061]), tandis que les constructeurs de déplacement et de copie garantissent son transfert thread-safe aux routines applicatives appelantes ([SWS_TS_01057], [SWS_TS_01058]).

Interrogation synchrone de l'heure et de l'état d'instantanéApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-ZustandDonnées brutes de temps et d'état<<create>> Snapshot erzeugenRetour : SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

Diagramme de séquence : déroulement d'une interrogation temporelle synchrone via l'interface consommateur et lecture des propriétés atomiques de l'instantané. Sources : [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture p. 225

Notifications basées sur les événements et surveillance de la synchronisation

Pour éviter les boucles d'attente active (polling), SynchronizedTimeBaseConsumer met à disposition un patron observateur piloté par les événements via des callbacks de notification (AUTOSAR_AP_EXP_SWArchitecture p. 226). Les applications s'enregistrent avec des callbacks sécurisés du point de vue des types pour des changements d'état spécifiques ([SWS_TS_14221], [SWS_TS_14222]). À chaque nouvel enregistrement, le nouveau notificateur écrase le gestionnaire précédemment enregistré ([SWS_TS_01010]).

Pour les changements d'état agrégés, il existe RegisterStatusChangeNotifier() ([SWS_TS_01010]), complété par UnregisterStatusChangeNotifier() ([SWS_TS_01011]). Si une application réagit principalement au changement de l'état de synchronisation (p. ex. perte de la connexion au Grandmaster), RegisterSynchronizationStateChangeNotifier() ([SWS_TS_01012]) est utilisé. Les sauts temporels vers le futur (kTimeLeapFuture) ou le passé (kTimeLeapPast) qui dépassent un seuil configuré sont signalés via RegisterTimeLeapNotifier() ([SWS_TS_01014], [SWS_TS_01051]).

Pour les applications mécatroniques de haute précision, RegisterTimePrecisionMeasurementNotifier() est en outre disponible ([SWS_TS_01018]). Le callback transmet une structure TimePrecisionMeasurement qui contient des valeurs exactes en secondes et en nanosecondes immédiatement avant (locSeconds, locNanoSeconds) et après la synchronisation (glbSeconds, glbNanoSeconds), le délai d'acheminement calculé pathDelay ainsi que le masque de bits timeBaseStatus ([SWS_TS_01401], [SWS_TS_01403], [SWS_TS_01406], [SWS_TS_01408]). Le cluster Time Synchronization n'effectue ici aucune gestion de file d'attente (queuing) ; les mises en mémoire tampon doivent, le cas échéant, être réalisées au sein du callback de l'application ([SWS_TS_01018]).

Modèle d'observateur pour les changements d'état et les sauts de tempsApplicationSynchronizedTimeBaseConsumerTSyncDaemonRegisterSynchronizationStateChangeNotifier(syncNotifier)RegisterTimeLeapNotifier(leapNotifier)Use Case: Événement réseau dans le démonErkennung Statuswechsel / Leap JumpÉvénement IPC : événement d'état ou de sautaltÉtat de synchronisation modifiésyncNotifier(SynchronizationStatus)Zeitsprung erkanntleapNotifier(SynchronizedTimeBaseStatus)

Diagramme de séquence : enregistrement et flux de notification asynchrone lors de modifications de synchronisation et de sauts temporels. Sources : [SWS_TS_01010], [SWS_TS_01012], [SWS_TS_01014], AUTOSAR_AP_EXP_SWArchitecture p. 226

diag_sync_status init kNotSynchronizedUntilStartup kNotSynchronized UntilStartup (Initial) init->kNotSynchronizedUntilStartup kSynchronized kSynchronized (Synchron) kNotSynchronizedUntilStartup->kSynchronized Premier message de synchronisation valide kTimeOut kTimeOut (Timeout) kNotSynchronizedUntilStartup->kTimeOut Startup-Timeout kSynchronized->kTimeOut Sync-Nachrichten ausgeblieben kTimeOut->kSynchronized Sync wiederhergestellt

Diagramme d'état : cycle de vie de l'état de synchronisation d'une base de temps selon SWS_TS_01050. Sources : [SWS_TS_01050], AUTOSAR_SWS_TimeSync p. 25

Mise à disposition de bases de temps et ajustement de fréquence par les fournisseurs

Lorsqu'une Adaptive Application agit en tant qu'horloge maîtresse active (Time Master) – par exemple via une connexion à un récepteur GNSS ou à une horloge de référence externe –, elle utilise la classe SynchronizedTimeBaseProvider ([SWS_TS_01101]). L'interface permet la définition explicite de nouvelles valeurs de temps par le biais de deux sémantiques distinctes : SetTime() et UpdateTime() (EXP_SWArchitecture p. 80).

L'appel de SetTime() réinitialise non seulement l'heure interne de l'horloge, mais force également l'émission immédiate des messages de synchronisation mis à jour sur le bus du véhicule ([SWS_TS_01107]). En revanche, UpdateTime() met d'abord à jour l'heure exclusivement au niveau local ; la transmission sur le bus s'effectue de manière différée lors du cycle régulier suivant du protocole de transmission temporelle ([SWS_TS_01108]). Les deux méthodes acceptent, outre l'horodatage, des UserData structurées afin de distribuer des informations supplémentaires associées à la synchronisation à l'échelle du réseau ([SWS_TS_01112], [SWS_TS_01113]).

Pour l'ajustement fin des oscillateurs à quartz et l'évitement de sauts de phase brusques, SetRateCorrection() permet l'application d'un facteur relatif de correction de fréquence ([SWS_TS_01110]). En complément, GetRateDeviation() fournit l'écart d'horloge actuellement présent ([SWS_TS_01111]), tandis que GetCurrentTime() lit la valeur temporelle absolue de l'horloge indépendamment de l'état de synchronisation actuel ([SWS_TS_01109]).

Garantie de l'intégrité via Time Validation et Freshness Value Management

Dans les environnements de conduite hautement automatisés et critiques pour la sécurité, la simple reprise de valeurs de temps ne suffit pas ; l'exactitude et l'inviolabilité des horodatages doivent être validées en continu (AUTOSAR_AP_SWS_TimeSynchronization p. 38). À cette fin, tsync propose des interfaces de callback pour la Time Validation : les consommateurs s'enregistrent via RegisterTimeValidationNotification() ([SWS_TS_01016]), les fournisseurs de manière analogue via la méthode spécifique au fournisseur ([SWS_TS_01114]).

Les interfaces de validation ConsumerTimeBaseValidationNotification et ProviderTimeBaseValidationNotification transmettent des jeux de données de mesure détaillés à des applications de surveillance spécialisées ([SWS_TS_01300], [SWS_TS_01301]). Au niveau de la station maître, SetMasterTimingData() fournit l'horodatage d'égress (syncEgressTimestamp) et le numéro de séquence (sequenceId) des trames de synchronisation transmises ([SWS_TS_00421], [SWS_TS_14141], [SWS_TS_14142]). Au niveau de l'esclave, SetSlaveTimingData() transmet les horodatages d'ingress correspondants (syncIngressTimestamp), le champ de correction reçu (correctionField) ainsi que le délai de propagation mesuré (pDelay) ([SWS_TS_00420], [SWS_TS_14152], [SWS_TS_14153], [SWS_TS_14155]). Pour les mesures de délai de pair à pair, SetPdelayInitiatorData() et SetPdelayResponderData() mettent intégralement à disposition les instants d'entrée et de sortie des paquets de requête et de réponse ([SWS_TS_00422], [SWS_TS_00423], [SWS_TS_14160], [SWS_TS_14170]).

Pour assurer une protection contre les attaques par rejeu et sécuriser les messages temporels transmis, la plateforme intègre le Freshness Value Management (FVM) via des interfaces natives dans l'espace de noms apext::tsync ([SWS_TS_14198], EXP_SWArchitecture p. 83). Lors du démarrage, Initialize() initialise le plugin FVM compétent ([SWS_TS_14200]). Avant l'émission, la pile appelle GetTxFreshness() pour récupérer des valeurs de compteur fraîches ([SWS_TS_14199]), tandis qu'à la réception, GetRxFreshness() est sollicité pour la vérification et l'authentification ([SWS_TS_14198]). Les données sont alors transportées via le FVContainer standardisé ([SWS_TS_14195], [SWS_TS_14196]).

Acquisition et transmission de données de mesure de validation temporelleMasterPortSlavePortMasterValidatorSlaveValidatorSync frameEgress-Zeitstempel T1 erfassenIngress-Zeitstempel T2 erfassenFollow_Up frame (preciseOriginTimestamp, correctionField)SetMasterTimingData(TimeMasterMeasurementType)SetSlaveTimingData(TimeSlaveMeasurementType)Use Case: Pdelay-MessungPdelay_ReqPdelay_Resp + Follow_UpSetPdelayInitiatorData(PdelayInitiatorMeasurementType)SetPdelayResponderData(PdelayResponderMeasurementType)

Diagramme de séquence : flux de validation des données de mesure temporelles entre le maître, l'esclave et l'application de validation externe. Sources : [SWS_TS_00420], [SWS_TS_00421], AUTOSAR_AP_SWS_TimeSynchronization p. 38

Configuration, liaison de processus et modélisation de manifeste

L'allocation et la liaison fonctionnelle du cluster s'effectuent de manière déclarative dans les manifestes de modèle AUTOSAR (AUTOSAR_AP_TPS_ManifestSpecification p. 590). Dans le Machine Manifest, le démon de la plateforme est instancié sur une Machine concrète via l'élément de métamodèle TimeSyncModuleInstantiation et y gère les objets TimeBaseResource physiques et virtuels (AUTOSAR_AP_TPS_ManifestSpecification p. 590).

Au niveau applicatif, les processus déclarent leurs besoins en bases de temps via des prototypes de ports (RPortPrototype pour les consommateurs et PPortPrototype pour les fournisseurs) (AUTOSAR_AP_TPS_ManifestSpecification p. 599). La construction de métamodèle TimeSyncPortPrototypeToTimeBaseMapping associe ces ports, individuellement pour chaque processus, aux bases de temps définies sur la machine (TPS_ManifestSpecification p. 599 ; AUTOSAR_AP_TPS_ManifestSpecification p. 600). Au moment de l'exécution, l'instanciation dans le code s'effectue via le ara::core::InstanceSpecifier à sûreté de typage, ce qui permet à la pile de lier la base de temps configurée appropriée ([SWS_TS_01001], [SWS_TS_01101]).

Comportement en cas d'erreur

Les situations d'erreur dans le cluster de synchronisation temporelle sont signalées via le modèle d'erreur standardisé de l'Adaptive Platform (ara::core::Result et ara::core::ErrorCode) ([SWS_TS_00910]). Pour les opérations régulières sur les bases de temps, l'énumération TsyncErrc définit les codes d'erreur ([SWS_TS_00901]). Si, par exemple, la communication inter-processus avec le démon de plateforme s'interrompt, le code d'erreur kDaemonConnectionLost est renvoyé ([SWS_TS_00901]).

Le domaine d'erreur global TsyncErrorDomain permet d'inspecter les codes d'erreur ([SWS_TS_00905], [SWS_TS_00906], [SWS_TS_00907]) ou, lorsque les exceptions C++ sont activées, de les lever sous forme de TsyncException via ThrowAsException() ([SWS_TS_00903], [SWS_TS_00908], [SWS_TS_00909]). Pour le Freshness Value Management, il existe un domaine d'erreur autonome TsyncFvmErrorDomain associé à l'énumération TsyncFvmErrc ([SWS_TS_14201], [SWS_TS_14202]). Si l'initialisation échoue, Initialize() renvoie l'erreur kFVInitializeFailed ([SWS_TS_14200]), tandis qu'en cas d'indisponibilité des compteurs pour les contrôles d'authentification, kFVNotAvailable est signalé ([SWS_TS_14202]).

Au niveau fonctionnel, le cluster ne signale pas nécessairement la perte de messages temporels par des erreurs d'API synchrones, mais marque la base de temps dans l'objet d'état avec l'état de communication kTimeOut ([SWS_TS_01050]) ou active le bit correspondant dans timeBaseStatus ([SWS_TS_01403]). Interprétation : il incomberait donc systématiquement à l'application de vérifier activement l'état de validité de l'instantané après GetTimeWithStatus() avant que les valeurs mesurées ne soient utilisées pour des boucles de régulation critiques pour la sécurité. Question Q-0cd9bb48452ae3db (ouverte)

Preuves détaillées supplémentaires

Les exigences clés et les points de spécification du module tsync peuvent être regroupés selon les axes principaux suivants :

Ce guide de module a été généré de manière automatisée sur la base de la spécification AUTOSAR Adaptive R25-11.

function: 70 variable: 37 type alias: 12 class: 10 struct: 8 enumeration: 4

apext::tsync

A freshness value container to hold the length of freshness value in bits and the freshness value itself as vector.

FVM classe

A freshness value management interface for ara::tsync.

Defines a class representing the Freshness Value Manager error domain.

hérite de ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the Freshness Value Manager.

hérite de ara::core::Exception

Returns a reference to the global apext::tsync::TsyncFvmErrorDomain object.

constexpr const ara::core::ErrorDomain & GetTsyncFvmErrorDomain () noexcept;
MakeErrorCode fonction

Creates an instance of ara::core::ErrorCode.

constexpr ara::core::ErrorCode MakeErrorCode (TsyncFvmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
TsyncFvmErrc énumération

The enumeration class defines the error codes for the apext::tsync:: TsyncFvmErrorDomain.

enum class TsyncFvmErrc : ara::core::ErrorDomain::CodeType {...};

ara::tsync

Callback interface to notify Consumer Application about the availability of a new data block recorded for the Time Base

Structure with detailed timing data for the pDelay Initiator .

Structure with detailed timing data for the pDelay Responder .

Callback interface to notify (Validator) Application about the availability of a new data block recorded for the Time Base

Class SynchronizedTimeBaseConsumer is the access to the synchronized timebase referenced by the InstanceSpecifier

Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier

This class represents a snapshot of a time point including his states

TimeBase classe

The class TimeBase is a pseudo-clock

Structure with detailed data for validation of the Time Master .

Structure with detailed data for precision measurement of the Time Slave .

Structure with detailed data for validation of the Time Slave .

Defines a class representing the Time Synchronization error domain.

hérite de ara::core::ErrorDomain

Defines a class for exceptions to be thrown by the Time Synchronization.

hérite de ara::core::Exception

UserData classe

Structure to define user data

Returns a reference to the global TsyncErrorDomain object.

const ara::core::ErrorDomain & GetTsyncErrorDomain () noexcept;

Creates an instance of ErrorCode.

LeapJump énumération

Enumeration that is used to express the leap jump of a time base. .

enum class LeapJump : std::uint32_t {...};
SynchronizationStatus énumération

Enumeration that is used to express the communication state of a time base. .

enum class SynchronizationStatus : std::uint32_t {...};
TsyncErrc énumération

Defines an enumeration class for the Time Synchronization error codes.

enum class TsyncErrc : ara::core::ErrorDomain::CodeType {...};

Notifier function .

using SynchronizationNotifier = std::function<void(const SynchronizationStatus&)>;

Notifier function .

using SynchronizedTimeBaseNotifier = std::function<void(const SynchronizedTimeBaseStatus&)>;
TimePrecisionNotifier alias de type

Notifier function .

using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;
Timestamp alias de type

Standard timestamp type as alias of a generic time_point .

Namespaces

Diagramme de classes UML du module

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 apext::tsync cluster_2 ara::tsync napext__tsync__FVContainer955 «struct» FVContainer napext__tsync__FVM697 FVM napext__tsync__TsyncFvmErrorDomain111 TsyncFvmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain napext__tsync__TsyncFvmErrorDomain111->nara__core__ErrorDomain335 napext__tsync__TsyncFvmException780 TsyncFvmException nara__core__Exception792 ara::core::Exception napext__tsync__TsyncFvmException780->nara__core__Exception792 nara__tsync__ConsumerTimeBaseValidationNotification118 ConsumerTimeBaseValidationNotification nara__tsync__PdelayInitiatorMeasurementType279 «struct» PdelayInitiatorMeasurementType nara__tsync__PdelayResponderMeasurementType5 «struct» PdelayResponderMeasurementType nara__tsync__ProviderTimeBaseValidationNotification786 ProviderTimeBaseValidationNotification nara__tsync__SynchronizedTimeBaseConsumer483 SynchronizedTimeBaseConsumer nara__tsync__SynchronizedTimeBaseProvider954 SynchronizedTimeBaseProvider nara__tsync__SynchronizedTimeBaseStatus758 SynchronizedTimeBaseStatus nara__tsync__TimeBase940 «struct» TimeBase nara__tsync__TimeMasterMeasurementType777 «struct» TimeMasterMeasurementType nara__tsync__TimePrecisionMeasurement344 «struct» TimePrecisionMeasurement nara__tsync__TimeSlaveMeasurementType161 «struct» TimeSlaveMeasurementType nara__tsync__TsyncErrorDomain367 TsyncErrorDomain nara__tsync__TsyncErrorDomain367->nara__core__ErrorDomain335 nara__tsync__TsyncException184 TsyncException nara__tsync__TsyncException184->nara__core__Exception792 nara__tsync__UserData398 «struct» UserData