module ara::tsync — Time Synchronization
ModulegidsAI-GEGENEREERD
Biedt voertuigbreed gesynchroniseerde tijdbases en stelt applicaties in staat nauwkeurige tijdopvragingen en statusbewaking uit te voeren.
Biedt voertuigbreed gesynchroniseerde tijdbases en stelt applicaties in staat nauwkeurige tijdopvragingen en statusbewaking uit te voeren.
Het functionele cluster Time Synchronization stelt het AUTOSAR Adaptive Platform consistente en netwerkbreed gesynchroniseerde tijdbases ter beschikking (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Via gestandaardiseerde interfaces roepen adaptieve applicaties atomische tijdtoestanden op of voeden zij als actieve tijdgevers nieuwe tijd- en rate-correcties in het totale systeem in. Tegelijkertijd bewaken geregistreerde notifier-callbacks continu statuswisselingen en tijdsprongen van de onderliggende klokken ([SWS_TS_01009]). Geavanceerde mechanismen voor de validatie van meetdata en versheidswaarden beveiligen daarbij de temporele integriteit tegen overdrachtsfouten en manipulaties.
Het functionele cluster Time Synchronization (tsync) stelt op het AUTOSAR Adaptive Platform consistente en netwerkbreed gesynchroniseerde tijdbases beschikbaar (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Als daemon-gebaseerde achtergronddienst abstraheert het hardware- en busspecifieke synchronisatiemechanismen (zoals IEEE 802.1AS gPTP) en levert het aan kernclusters zoals Log and Trace, de Intrusion Detection System Manager (IdsM) en update-services via gestandaardiseerde interfaces (AUTOSAR_AP_EXP_SWArchitecture p. 83).
Contextdiagram: inbedding van het daemon-gebaseerde Time Synchronization-cluster in het AUTOSAR Adaptive Platform en de interface-relaties met consumerende clusters en applicaties. Bronnen: AUTOSAR_AP_SWS_TimeSynchronization p. 16, AUTOSAR_AP_EXP_SWArchitecture p. 83, AUTOSAR_AP_EXP_SWArchitecture p. 83
Voor leestoegang gebruiken applicaties de interface SynchronizedTimeBaseConsumer ([SWS_TS_01001]). De methode GetTimeWithStatus() levert een atomische snapshot van het type SynchronizedTimeBaseStatus op, waaruit de globale tijd, de lokale continue aanmaaktijd, de synchronisatietoestand en ontvangen UserData kunnen worden opgevraagd ([SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176]). Om polling te voorkomen, registreren applicaties zich via notifier-callbacks voor statuswisselingen en tijdsprongen ([SWS_TS_01010], [SWS_TS_01014]).
Sequentiediagram: verloop van een synchrone tijdopvraging via de consumer-interface en het uitlezen van atomische snapshot-eigenschappen. Bronnen: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture p. 225
Tijdgevende applicaties sturen via SynchronizedTimeBaseProvider het systeemgedrag aan: SetTime() initieert onmiddellijke busoverdrachten, terwijl UpdateTime() de klok eerst lokaal aanpast ([SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01108]). Begeleidende mechanismen zoals Time Validation ([SWS_TS_00420], [SWS_TS_00421]) en het native Freshness Value Management (FVM) beschermen tegen drift- en replay-fouten ([SWS_TS_14198]). Bij fouten signaleren TsyncErrc-codes (bijv. kDaemonConnectionLost) verbindingsonderbrekingen, terwijl het uitblijven van synchronisatieberichten als kTimeOut in het statusobject wordt weergegeven ([SWS_TS_00901], [SWS_TS_01050]).
Het functionele cluster Time Synchronization (tsync) stelt op het AUTOSAR Adaptive Platform gecoördineerde, netwerkbreed gesynchroniseerde tijdbases beschikbaar en ontkoppelt applicatieprocessen van hardware- en busspecifieke tijdsynchronisatieprotocollen (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Het systeem vormt het informatietechnische fundament voor gedistribueerde systemen waarin over grenzen van regeleenheden heen consistente gebeurtenisvolgordes, reproduceerbare trace-protocollen en deterministische rekencycli gewaarborgd moeten zijn (AUTOSAR_AP_EXP_SWArchitecture p. 83).
Contextdiagram: inbedding van het daemon-gebaseerde Time Synchronization-cluster in het AUTOSAR Adaptive Platform en de interface-relaties met consumerende clusters en applicaties. Bronnen: AUTOSAR_AP_SWS_TimeSynchronization p. 16, AUTOSAR_AP_EXP_SWArchitecture p. 83, AUTOSAR_AP_EXP_SWArchitecture p. 83
Systeemgrenzen en rol van het daemon-gebaseerde Time Synchronization-cluster
De functionele architectuur van Time Synchronization is uitgevoerd als een daemon-gebaseerd cluster (daemon-based), dat op de achtergrond als centrale platformdienst fungeert (AUTOSAR_AP_SWS_TimeSynchronization p. 16). Deze daemon interageert rechtstreeks met de interfaces van het onderliggende besturingssysteem en verwerkt netwerkgebaseerde tijdsynchronisatiedata zoals gPTP (IEEE 802.1AS) of klassieke bus-tijdsynchronisaties (AUTOSAR_FO_PRS_TimeSyncProtocol p. 68). Richting de applicatiecontext kapt het cluster de wiskundige drift- en offsetcompensatie van de hardwareklokken volledig af.
Talrijke functionele kernclusters van het Adaptive Platform hebben via gestandaardiseerde service-interfaces toegang tot tsync (AUTOSAR_AP_EXP_SWArchitecture p. 83). Zo baseert Log and Trace zich op de gesynchroniseerde tijdbasis om systeemwijde log- en DLT-gebeurtenissen te voorzien van betrouwbare globale tijdstempels (AUTOSAR_AP_EXP_SWArchitecture p. 59; AUTOSAR_AP_SWS_LogAndTrace p. 15). Ook veiligheidsrelevante modules zoals de Intrusion Detection System Manager (IdsM) en update-services (UCM en Vehicle UCM) vertrouwen dwingend op de C++-interface van SynchronizedTimeBaseConsumer om forensisch betrouwbare rapporten en consistente update-transacties over de grenzen van regeleenheden heen te besturen (AUTOSAR_AP_EXP_SWArchitecture p. 125; AUTOSAR_AP_SWS_UpdateAndConfigurationManagement p. 16; AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement p. 11).
Consumerende interfaces en statusgebonden tijdopvragingen
Voor leestoegang tot een gesynchroniseerde tijdbasis gebruiken applicaties de interfaceklasse SynchronizedTimeBaseConsumer ([SWS_TS_01001]). De klasse implementeert move-semantiek ([SWS_TS_01003], [SWS_TS_01004]), maar sluit elke vorm van kopiëren expliciet uit ([SWS_TS_01005], [SWS_TS_01006]). Tijdens runtime maakt GetRateDeviation() het rechtstreeks uitlezen van de actuele frequentieafwijking van de klok mogelijk ([SWS_TS_01008]).
Het centrale element van elke synchrone opvraging is de operatie GetTimeWithStatus() ([SWS_TS_01009]). In plaats van geïsoleerde ruwe tijdwaarden terug te leveren, genereert de methode een intern consistente snapshot van het type SynchronizedTimeBaseStatus (EXP_SWArchitecture p. 81). Deze snapshot bevriest het exacte aanmaaktijdstip in globale tijd ([SWS_TS_01055]) evenals in lokale continue tijd via GetCreationLocalTime() ([SWS_TS_14176]). Tijdstippen worden hierbij in het gestandaardiseerde C++-chrono-type Timestamp met nanoseconderesolutie op basis van std::int64_t gerepresenteerd ([SWS_TS_01251], [SWS_TS_01261], [SWS_TS_01262]).
Uit de snapshot kunnen naast de tijd ook de communicatie- en synchronisatietoestand via GetSynchronizationStatus() ([SWS_TS_01053]), een eventueel opgetreden tijdsprong via GetLeapJump() ([SWS_TS_01054]) evenals applicatiespecifieke gebruikersgegevens via GetUserData() ([SWS_TS_01056]) worden bepaald. Een standaardconstructor voor het statusobject bestaat niet ([SWS_TS_01061]), terwijl move- en copy-constructors de thread-veilige overdracht ervan aan aanroepende applicatieroutines waarborgen ([SWS_TS_01057], [SWS_TS_01058]).
Sequentiediagram: verloop van een synchrone tijdopvraging via de consumer-interface en het uitlezen van atomische snapshot-eigenschappen. Bronnen: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture p. 225
Op gebeurtenissen gebaseerde notificaties en synchronisatiebewaking
Om polling-loops te vermijden, stelt SynchronizedTimeBaseConsumer een gebeurtenisgestuurd observer-patroon via notifier-callbacks ter beschikking (AUTOSAR_AP_EXP_SWArchitecture p. 226). Applicaties registreren zich met typesafe callbacks voor specifieke toestandsveranderingen ([SWS_TS_14221], [SWS_TS_14222]). Bij elke nieuwe registratie overschrijft de nieuwe notifier de eerder geregistreerde handler ([SWS_TS_01010]).
Voor geaggregeerde toestandsveranderingen bestaat RegisterStatusChangeNotifier() ([SWS_TS_01010]), aangevuld met UnregisterStatusChangeNotifier() ([SWS_TS_01011]). Als een applicatie primair reageert op de verandering van de synchronisatiestatus (bijv. verlies van de grandmaster-verbinding), wordt RegisterSynchronizationStateChangeNotifier() ([SWS_TS_01012]) gebruikt. Tijdsprongen naar de toekomst (kTimeLeapFuture) of het verleden (kTimeLeapPast) die een geconfigureerde drempelwaarde overschrijden, worden via RegisterTimeLeapNotifier() gemeld ([SWS_TS_01014], [SWS_TS_01051]).
Voor mechatronische toepassingen met hoge precisie is tevens RegisterTimePrecisionMeasurementNotifier() beschikbaar ([SWS_TS_01018]). De callback geeft een structuur TimePrecisionMeasurement mee die exacte seconde- en nanosecondewaarden direct vóór (locSeconds, locNanoSeconds) en na de synchronisatie (glbSeconds, glbNanoSeconds), de berekende padvertraging pathDelay en het bitmasker timeBaseStatus bevat ([SWS_TS_01401], [SWS_TS_01403], [SWS_TS_01406], [SWS_TS_01408]). Het Time Synchronization-cluster voert hierbij geen wachtrijbeheer (queuing) uit; buffering moet indien gewenst binnen de applicatie-callback worden gerealiseerd ([SWS_TS_01018]).
Sequentiediagram: registratie en asynchrone notificatiestroom bij synchronisatiewijzigingen en tijdsprongen. Bronnen: [SWS_TS_01010], [SWS_TS_01012], [SWS_TS_01014], AUTOSAR_AP_EXP_SWArchitecture p. 226
Toestandsdiagram: levenscyclus van de synchronisatiestatus van een tijdbasis volgens SWS_TS_01050. Bronnen: [SWS_TS_01050], AUTOSAR_SWS_TimeSync p. 25
Beschikbaarstelling van tijdbases en frequentieaanpassing door providers
Wanneer een Adaptive Application optreedt als actieve tijdgever (Time Master) – bijvoorbeeld via koppeling met een GNSS-ontvanger of een externe referentieklok –, gebruikt deze de klasse SynchronizedTimeBaseProvider ([SWS_TS_01101]). De interface maakt het expliciet instellen van nieuwe tijdwaarden mogelijk via twee verschillende semantieken: SetTime() en UpdateTime() (EXP_SWArchitecture p. 80).
De aanroep van SetTime() stelt niet alleen de interne klokstand opnieuw in, maar forceert ook de onmiddellijke verzending van de bijgewerkte synchronisatieberichten op de voertuigbus ([SWS_TS_01107]). Daarentegen werkt UpdateTime() de tijd aanvankelijk uitsluitend lokaal bij; de overdracht naar de bus vindt vertraagd plaats in de reguliere volgende cyclus van het tijdoverdrachtsprotocol ([SWS_TS_01108]). Beide methoden accepteren naast de tijdstempel gestructureerde UserData om synchronisatiebegeleidende extra informatie netwerkbreed te distribueren ([SWS_TS_01112], [SWS_TS_01113]).
Voor de fijnregeling van kwartsoscillatoren en het voorkomen van abrupte fasesprongen maakt SetRateCorrection() het opleggen van een relatieve frequentiecorrectiefactor mogelijk ([SWS_TS_01110]). Aanvullend levert GetRateDeviation() de actueel aanwezige klokafwijking ([SWS_TS_01111]), terwijl GetCurrentTime() de absolute tijdwaarde van de klok uitleest, onafhankelijk van de huidige synchronisatiestatus ([SWS_TS_01109]).
Integriteitsborging via Time Validation en Freshness Value Management
In veiligheidskritieke en hooggeautomatiseerde rijomgevingen volstaat het louter overnemen van tijdwaarden niet; de correctheid en manipulatiebestendigheid van de tijdstempels moeten continu worden gevalideerd (AUTOSAR_AP_SWS_TimeSynchronization p. 38). Hiervoor biedt tsync callback-interfaces voor Time Validation: consumers registreren zich via RegisterTimeValidationNotification() ([SWS_TS_01016]), providers analoog via de provider-specifieke methode ([SWS_TS_01114]).
De validatie-interfaces ConsumerTimeBaseValidationNotification en ProviderTimeBaseValidationNotification dragen gedetailleerde meetdatasetten over aan gespecialiseerde bewakingsapplicaties ([SWS_TS_01300], [SWS_TS_01301]). Op het master-station levert SetMasterTimingData() de egress-tijdstempel (syncEgressTimestamp) en het sequentienummer (sequenceId) van de verzonden sync-frames ([SWS_TS_00421], [SWS_TS_14141], [SWS_TS_14142]). Op slave-niveau draagt SetSlaveTimingData() de corresponderende ingress-tijdstempels (syncIngressTimestamp), het ontvangen correctieveld (correctionField) en de gemeten padvertraging (pDelay) over ([SWS_TS_00420], [SWS_TS_14152], [SWS_TS_14153], [SWS_TS_14155]). Voor peer-to-peer-vertragingsmetingen stellen SetPdelayInitiatorData() en SetPdelayResponderData() de in- en uitgangstijdstippen van de verzoek- en antwoordpakketten volledig beschikbaar ([SWS_TS_00422], [SWS_TS_00423], [SWS_TS_14160], [SWS_TS_14170]).
Ter bescherming tegen replay-aanvallen en ter beveiliging van overgedragen tijdberichten integreert het platform Freshness Value Management (FVM) via native interfaces in de namespace apext::tsync ([SWS_TS_14198], EXP_SWArchitecture p. 83). Bij het opstarten initialiseert Initialize() de verantwoordelijke FVM-plugin ([SWS_TS_14200]). Vóór het verzenden roept de stack GetTxFreshness() aan om verse tellerwaarden op te halen ([SWS_TS_14199]), terwijl bij ontvangst GetRxFreshness() wordt gebruikt voor verificatie en authenticatie ([SWS_TS_14198]). Gegevens worden hierbij getransporteerd via de gestandaardiseerde FVContainer ([SWS_TS_14195], [SWS_TS_14196]).
Sequentiediagram: validatiestroom van timing-meetgegevens tussen master, slave en externe validator-applicatie. Bronnen: [SWS_TS_00420], [SWS_TS_00421], AUTOSAR_AP_SWS_TimeSynchronization p. 38
Configuratie, procesbinding en manifestmodellering
De allocatie en functionele binding van het cluster vinden declaratief plaats in de AUTOSAR-modelmanifesten (AUTOSAR_AP_TPS_ManifestSpecification p. 590). In het Machine Manifest wordt de platform-daemon via het metamodelelement TimeSyncModuleInstantiation op een concrete Machine geïnstantieerd en beheert daar de fysieke en virtuele TimeBaseResource-objecten (AUTOSAR_AP_TPS_ManifestSpecification p. 590).
Op applicatieniveau declareren processen via poortprototypes (RPortPrototype voor consumers resp. PPortPrototype voor providers) hun behoefte aan tijdbases (AUTOSAR_AP_TPS_ManifestSpecification p. 599). Het metamodelconstruct TimeSyncPortPrototypeToTimeBaseMapping koppelt deze poorten procesindividueel aan de op de machine gedefinieerde tijdbases (TPS_ManifestSpecification p. 599; AUTOSAR_AP_TPS_ManifestSpecification p. 600). Tijdens runtime vindt de instantiëring in de code plaats via de typeveilige ara::core::InstanceSpecifier, waardoor de stack de correct geconfigureerde tijdbasis bindt ([SWS_TS_01001], [SWS_TS_01101]).
Gedrag in het foutgeval
Foutsituaties in het Time-Synchronization-cluster worden gesignaleerd via het gestandaardiseerde foutmodel van het Adaptive Platform (ara::core::Result en ara::core::ErrorCode) ([SWS_TS_00910]). Voor reguliere tijdbasisoperaties definieert de enumeratie TsyncErrc de foutcodes ([SWS_TS_00901]). Als bijvoorbeeld de interprocescommunicatie met de platform-daemon wegvalt, wordt de foutcode kDaemonConnectionLost geretourneerd ([SWS_TS_00901]).
Via het globale foutdomein TsyncErrorDomain kunnen foutcodes worden geïnspecteerd ([SWS_TS_00905], [SWS_TS_00906], [SWS_TS_00907]) of bij geactiveerde C++-exceptions via ThrowAsException() als TsyncException worden geworpen ([SWS_TS_00903], [SWS_TS_00908], [SWS_TS_00909]). Voor het Freshness Value Management bestaat een zelfstandig foutdomein TsyncFvmErrorDomain met de enumeratie TsyncFvmErrc ([SWS_TS_14201], [SWS_TS_14202]). Faalt de initialisatie, dan levert Initialize() de fout kFVInitializeFailed ([SWS_TS_14200]), terwijl bij niet-beschikbare tellers voor authenticatiecontroles kFVNotAvailable wordt gemeld ([SWS_TS_14202]).
Op functioneel niveau signaleert het cluster het verlies van tijdberichten niet noodzakelijkerwijs via synchrone API-fouten, maar markeert het de tijdbasis in het statusobject met de communicatiestatus kTimeOut ([SWS_TS_01050]) resp. zet het de bijbehorende bit in timeBaseStatus ([SWS_TS_01403]). Interpretatie: De applicatie zal derhalve steeds de plicht hebben om na GetTimeWithStatus() de geldigheidsstatus van de snapshot actief te controleren voordat meetwaarden worden gebruikt voor veiligheidskritieke regellussen. Vraag Q-0cd9bb48452ae3db (open)
Verdere gedetailleerde bewijzen
De kernvereisten en specificatiepunten van de module tsync kunnen worden onderverdeeld in de volgende zwaartepunten:
- Runtime-interfaces voor consumer en provider: De levenscyclus- en opvraagoperaties zijn gebaseerd op [SWS_TS_01001] tot en met [SWS_TS_01019] en de provider-functies [SWS_TS_01101] tot en met [SWS_TS_01115] (EXP_SWArchitecture p. 80, EXP_SWArchitecture p. 81).
- Statusstructuren en tijdrepresentatie: Definitie van
SynchronizedTimeBaseStatus,SynchronizationStatusenLeapJumpvolgens [SWS_TS_01050] tot en met [SWS_TS_01062] alsmede standaard-chrono-typen conform [SWS_TS_01251] tot en met [SWS_TS_01265]. - Time Validation en registratie van meetgegevens: Definitie van de meetstructuren en notificatie-callbacks conform [SWS_TS_00420] tot en met [SWS_TS_00423] alsmede [SWS_TS_14140] tot en met [SWS_TS_14174] (AUTOSAR_AP_SWS_TimeSynchronization p. 38).
- Beveiligingsuitbreiding FVM: Authenticatie en versheidscontrole via interfaces [SWS_TS_14195] tot en met [SWS_TS_14213] (AUTOSAR_AP_EXP_SWArchitecture p. 83).
- Manifestmodellering: Declaratieve configuratie en toewijzing van processen en poortprototypes aan tijdbases conform AUTOSAR_AP_TPS_ManifestSpecification p. 590 en AUTOSAR_AP_TPS_ManifestSpecification p. 599.
Deze modulehandleiding werd geautomatiseerd gegenereerd op basis van de AUTOSAR Adaptive-specificatie R25-11.
function: 70 variable: 37 type alias: 12 class: 10 struct: 8 enumeration: 4
Klassen
ConsumerTimeBaseValidationNotificationFVContainerFVMPdelayInitiatorMeasurementTypePdelayResponderMeasurementTypeProviderTimeBaseValidationNotificationSynchronizedTimeBaseConsumerSynchronizedTimeBaseProviderSynchronizedTimeBaseStatusTimeBaseTimeMasterMeasurementTypeTimePrecisionMeasurementTimeSlaveMeasurementTypeTsyncErrorDomainTsyncExceptionTsyncFvmErrorDomainTsyncFvmExceptionUserDataFuncties
GetTsyncErrorDomainGetTsyncFvmErrorDomainMakeErrorCodeMakeErrorCode (ara::tsync)Typen
SynchronizationNotifierSynchronizedTimeBaseNotifierTimePrecisionNotifierTimestampEnumeraties
LeapJumpSynchronizationStatusTsyncErrcTsyncFvmErrcThemakaart
ara::tsync
23Geen elementgegevens voor deze release
apext::tsync
A freshness value container to hold the length of freshness value in bits and the freshness value itself as vector.
A freshness value management interface for ara::tsync.
Defines a class representing the Freshness Value Manager error domain.
erft van ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the Freshness Value Manager.
erft van ara::core::Exception
Returns a reference to the global apext::tsync::TsyncFvmErrorDomain object.
constexpr const ara::core::ErrorDomain & GetTsyncFvmErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode.
constexpr ara::core::ErrorCode MakeErrorCode (TsyncFvmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;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
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.
erft van ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the Time Synchronization.
erft van ara::core::Exception
Structure to define user data
Returns a reference to the global TsyncErrorDomain object.
const ara::core::ErrorDomain & GetTsyncErrorDomain () noexcept;Creates an instance of ErrorCode.
ara::core::ErrorCode MakeErrorCode (ara::tsync::TsyncErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Enumeration that is used to express the leap jump of a time base. .
enum class LeapJump : std::uint32_t {...};Enumeration that is used to express the communication state of a time base. .
enum class SynchronizationStatus : std::uint32_t {...};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&)>;Notifier function .
using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;Standard timestamp type as alias of a generic time_point .
using Timestamp = std::chrono::time_point<TimeBase, std::chrono::nanoseconds>;Namespaces
- apext::tsync 4 Klassen, 2 freie Funktionen
- ara::tsync 14 Klassen, 2 freie Funktionen
UML-klassendiagram van de module
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel