DEENESPTFRRUARHIKOZHNL

모듈 ara::tsync — Time Synchronization

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

모듈 가이드AI 생성

차량 전반에 동기화된 시간 기반을 제공하며, 애플리케이션이 정밀한 시간 쿼리 및 상태 모니터링을 수행할 수 있도록 합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 29e900d376f8 출처 열린 질문 (2)
인과 앵커: R25-11 R25-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

차량 전반에 동기화된 시간 기반을 제공하며, 애플리케이션이 정밀한 시간 쿼리 및 상태 모니터링을 수행할 수 있도록 합니다.

Time Synchronization 기능 클러스터는 AUTOSAR Adaptive Platform에 일관되고 네트워크 전반에 동기화된 시간 기반을 제공합니다(AUTOSAR_AP_SWS_TimeSynchronization 16쪽). 적응형 애플리케이션은 표준화된 인터페이스를 통해 원자적 시간 상태를 쿼리하거나, 액티브 타임 프로바이더로서 전체 시스템에 새로운 시간 및 레이트 보정을 공급합니다. 동시에 등록된 알림자(Notifier) 콜백은 기본 시계의 상태 변화 및 시간 점프를 지속적으로 모니터링합니다([SWS_TS_01009]). 측정 데이터와 신선도 값(Freshness Value)을 검증하기 위한 확장 메커니즘은 전송 오류 및 조작에 대해 시간 무결성을 보호합니다.

Time Synchronization(tsync) 기능 클러스터는 AUTOSAR Adaptive Platform에서 일관되고 네트워크 전반에 동기화된 시간 기반을 제공합니다(AUTOSAR_AP_SWS_TimeSynchronization 16쪽). 데몬 기반 백그라운드 서비스로서 하드웨어 및 버스 전용 동기화 메커니즘(예: IEEE 802.1AS gPTP)을 추상화하고, 표준화된 인터페이스를 통해 Log and Trace, Intrusion Detection System Manager(IdsM) 및 업데이트 서비스와 같은 핵심 클러스터에 공급합니다(AUTOSAR_AP_EXP_SWArchitecture 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()

컨텍스트 다이어그램: 데몬 기반 Time Synchronization 클러스터의 AUTOSAR Adaptive Platform 임베딩 및 소비 클러스터 및 애플리케이션과의 인터페이스 관계. 출처: AUTOSAR_AP_SWS_TimeSynchronization 16쪽, AUTOSAR_AP_EXP_SWArchitecture 83쪽, AUTOSAR_AP_EXP_SWArchitecture 83쪽

읽기 접근을 위해 애플리케이션은 인터페이스 SynchronizedTimeBaseConsumer을(를) 사용합니다([SWS_TS_01001]). 메서드 GetTimeWithStatus()은(는) 글로벌 시간, 로컬 연속 생성 시간, 동기화 상태 및 수신된 UserData를 검색할 수 있는 SynchronizedTimeBaseStatus 타입의 원자적 스냅샷을 반환합니다([SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176]). 폴링을 피하기 위해 애플리케이션은 상태 변경 및 시간 점프에 대해 알림자(Notifier) 콜백을 통해 등록합니다([SWS_TS_01010], [SWS_TS_01014]).

시간 및 스냅샷 상태의 동기 조회ApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustand시간 및 상태 원시 데이터<<create>> Snapshot erzeugen반환값: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

시퀀스 다이어그램: 컨슈머 인터페이스를 통한 동기 시간 쿼리 및 원자적 스냅샷 속성 판독 흐름. 출처: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture 225쪽

시간을 제공하는 애플리케이션은 SynchronizedTimeBaseProvider을(를) 통해 시스템 동작을 제어합니다. SetTime()은(는) 즉각적인 버스 전송을 트리거하는 반면, UpdateTime()은(는) 시계를 먼저 로컬에서 조정합니다([SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01108]). Time Validation([SWS_TS_00420], [SWS_TS_00421]) 및 네이티브 Freshness Value Management(FVM)와 같은 동반 메커니즘은 드리프트 및 리플레이 오류를 방지합니다([SWS_TS_14198]). 오류 발생 시 TsyncErrc 코드(예: kDaemonConnectionLost)는 연결 끊김을 알리며, 동기화 메시지의 누락은 상태 객체에 kTimeOut(으)로 표시됩니다([SWS_TS_00901], [SWS_TS_01050]).

기능 클러스터인 Time Synchronization(tsync)은 AUTOSAR Adaptive Platform상에서 조정되고 네트워크 전반에 걸쳐 동기화된 시간 기반을 제공하며, 애플리케이션 프로세스를 하드웨어 및 버스 전용 시간 동기화 프로토콜로부터 분리합니다(AUTOSAR_AP_SWS_TimeSynchronization 16쪽). 이 시스템은 제어기 경계를 넘어 일관된 이벤트 순서, 재현 가능한 추적 로그 및 결정론적 연산 주기를 보장해야 하는 분산 시스템의 정보 기술적 기반을 형성합니다(AUTOSAR_AP_EXP_SWArchitecture 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()

컨텍스트 다이어그램: 데몬 기반 Time Synchronization 클러스터의 AUTOSAR Adaptive Platform 임베딩 및 소비 클러스터 및 애플리케이션과의 인터페이스 관계. 출처: AUTOSAR_AP_SWS_TimeSynchronization 16쪽, AUTOSAR_AP_EXP_SWArchitecture 83쪽, AUTOSAR_AP_EXP_SWArchitecture 83쪽

데몬 기반 Time-Synchronization-클러스터의 시스템 경계 및 역할

Time Synchronization의 기능 아키텍처는 백그라운드에서 중앙 플랫폼 서비스로 작동하는 데몬 기반 클러스터(daemon-based)로 구현됩니다(AUTOSAR_AP_SWS_TimeSynchronization 16쪽). 이 데몬은 기본 운영체제의 인터페이스와 직접 상호작용하며 gPTP(IEEE 802.1AS) 또는 클래식 버스 시간 동기화와 같은 네트워크 기반 시간 동기화 데이터를 처리합니다(AUTOSAR_FO_PRS_TimeSyncProtocol 68쪽). 애플리케이션 컨텍스트에 대해 이 클러스터는 하드웨어 클록의 수학적 드리프트 및 오프셋 보상을 완전히 캡슐화합니다.

Adaptive Platform의 수많은 핵심 기능 클러스터는 표준화된 서비스 인터페이스를 통해 tsync에 접근합니다(AUTOSAR_AP_EXP_SWArchitecture 83쪽). 예를 들어 Log and Trace는 동기화된 시간 기반을 바탕으로 시스템 전반의 로그 및 DLT 이벤트에 신뢰할 수 있는 글로벌 타임스탬프를 부여합니다(AUTOSAR_AP_EXP_SWArchitecture 59쪽; AUTOSAR_AP_SWS_LogAndTrace 15쪽). Intrusion Detection System Manager(IdsM)와 같은 보안 관련 모듈 및 업데이트 서비스(UCM 및 Vehicle UCM) 또한 제어기 경계를 넘어 포렌식 관점에서 신뢰할 수 있는 보고서와 일관된 업데이트 트랜잭션을 제어하기 위해 SynchronizedTimeBaseConsumer의 C++ 인터페이스를 필수로 활용합니다(AUTOSAR_AP_EXP_SWArchitecture 125쪽; AUTOSAR_AP_SWS_UpdateAndConfigurationManagement 16쪽; AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement 11쪽).

컨슈머 인터페이스 및 상태 기반 시간 조회

동기화된 시간 기반에 대한 읽기 접근을 위해 애플리케이션은 인터페이스 클래스 SynchronizedTimeBaseConsumer을(를) 사용합니다([SWS_TS_01001]). 이 클래스는 이동 시맨틱을 구현하지만([SWS_TS_01003], [SWS_TS_01004]), 모든 복사는 명시적으로 배제합니다([SWS_TS_01005], [SWS_TS_01006]). 런타임에 GetRateDeviation()은(는) 클록의 현재 주파수 편차를 직접 읽을 수 있도록 지원합니다([SWS_TS_01008]).

모든 동기식 조회의 핵심 요소는 연산 GetTimeWithStatus()입니다([SWS_TS_01009]). 이 메서드는 고립된 원시 시간 값을 반환하는 대신 SynchronizedTimeBaseStatus 유형의 내부적으로 일관된 스냅샷을 생성합니다(EXP_SWArchitecture 81쪽). 이 스냅샷은 글로벌 시간([SWS_TS_01055]) 및 GetCreationLocalTime()을(를) 통한 로컬 연속 시간([SWS_TS_14176])의 정확한 생성 시점을 동결합니다. 이때 시점은 std::int64_t 기반의 나노초 해상도를 갖는 표준화된 C++ Chrono 유형 Timestamp(으)로 매핑됩니다([SWS_TS_01251], [SWS_TS_01261], [SWS_TS_01262]).

스냅샷으로부터 시간 외에도 GetSynchronizationStatus()을(를) 통한 통신 및 동기화 상태([SWS_TS_01053]), GetLeapJump()을(를) 통한 시간 점프 발생 여부([SWS_TS_01054]), 그리고 GetUserData()을(를) 통한 애플리케이션별 사용자 데이터([SWS_TS_01056])를 확인할 수 있습니다. 상태 객체를 위한 기본 생성자는 존재하지 않으며([SWS_TS_01061]), 이동 및 복사 생성자는 호출하는 애플리케이션 루틴으로의 스레드 안전한 전달을 보장합니다([SWS_TS_01057], [SWS_TS_01058]).

시간 및 스냅샷 상태의 동기 조회ApplicationSynchronizedTimeBaseConsumerTSyncDaemonSynchronizedTimeBaseStatusGetTimeWithStatus()IPC: Abfrage aktueller Zeitbasis-Zustand시간 및 상태 원시 데이터<<create>> Snapshot erzeugen반환값: SynchronizedTimeBaseStatusGetCreationTime()Timestamp (globale Zeit)GetCreationLocalTime()Timestamp (lokale stetige Zeit)GetSynchronizationStatus()SynchronizationStatus

시퀀스 다이어그램: 컨슈머 인터페이스를 통한 동기 시간 쿼리 및 원자적 스냅샷 속성 판독 흐름. 출처: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture 225쪽

이벤트 기반 알림 및 동기화 모니터링

폴링 루프를 방지하기 위해 SynchronizedTimeBaseConsumer은(는) 노티파이어 콜백을 통한 이벤트 구동형 옵서버 패턴을 제공합니다(AUTOSAR_AP_EXP_SWArchitecture 226쪽). 애플리케이션은 특정 상태 변경에 대해 타입 안전한 콜백을 등록합니다([SWS_TS_14221], [SWS_TS_14222]). 재등록 시마다 새 노티파이어가 이전에 등록된 핸들러를 덮어씁니다([SWS_TS_01010]).

집계된 상태 변경을 위해 RegisterStatusChangeNotifier()이(가) 제공되며([SWS_TS_01010]), UnregisterStatusChangeNotifier()이(가) 이를 보완합니다([SWS_TS_01011]). 애플리케이션이 주로 동기화 상태의 변경(예: Grandmaster 연결 끊김)에 반응하는 경우에는 RegisterSynchronizationStateChangeNotifier()([SWS_TS_01012])이(가) 사용됩니다. 구성된 임계값을 초과하는 미래(kTimeLeapFuture) 또는 과거(kTimeLeapPast)로의 시간 점프는 RegisterTimeLeapNotifier()을(를) 통해 보고됩니다([SWS_TS_01014], [SWS_TS_01051]).

초정밀 메카트로닉스 애플리케이션을 위해 RegisterTimePrecisionMeasurementNotifier() 또한 제공됩니다([SWS_TS_01018]). 콜백은 동기화 직전(locSeconds, locNanoSeconds) 및 직후(glbSeconds, glbNanoSeconds)의 정확한 초 및 나노초 값, 계산된 경로 지연 pathDelay, 그리고 비트마스크 timeBaseStatus을(를) 포함하는 구조체 TimePrecisionMeasurement을(를) 전달합니다([SWS_TS_01401], [SWS_TS_01403], [SWS_TS_01406], [SWS_TS_01408]). 이때 Time-Synchronization-클러스터는 큐 관리(Queuing)를 수행하지 않으므로, 필요한 경우 애플리케이션 콜백 내부에서 버퍼링을 구현해야 합니다([SWS_TS_01018]).

상태 변경 및 시간 도약을 위한 옵서버 패턴ApplicationSynchronizedTimeBaseConsumerTSyncDaemonRegisterSynchronizationStateChangeNotifier(syncNotifier)RegisterTimeLeapNotifier(leapNotifier)Use Case: 데몬 내 네트워크 이벤트Erkennung Statuswechsel / Leap JumpIPC Event: 상태 또는 Leap 이벤트alt동기화 상태 변경됨syncNotifier(SynchronizationStatus)Zeitsprung erkanntleapNotifier(SynchronizedTimeBaseStatus)

시퀀스 다이어그램: 동기화 변경 및 시간 점프 시의 등록 및 비동기 알림 흐름. 출처: [SWS_TS_01010], [SWS_TS_01012], [SWS_TS_01014], AUTOSAR_AP_EXP_SWArchitecture 226쪽

diag_sync_status init kNotSynchronizedUntilStartup kNotSynchronized UntilStartup (Initial) init->kNotSynchronizedUntilStartup kSynchronized kSynchronized (Synchron) kNotSynchronizedUntilStartup->kSynchronized 첫 번째 유효한 동기화 메시지 kTimeOut kTimeOut (Timeout) kNotSynchronizedUntilStartup->kTimeOut Startup-Timeout kSynchronized->kTimeOut Sync-Nachrichten ausgeblieben kTimeOut->kSynchronized Sync wiederhergestellt

상태 다이어그램: SWS_TS_01050에 따른 시간 기반 동기화 상태의 수명 주기. 출처: [SWS_TS_01050], AUTOSAR_SWS_TimeSync 25쪽

프로바이더를 통한 시간 기반 제공 및 주파수 조정

Adaptive Application이 액티브 시간 소스(Time Master)로 작동하는 경우(예: GNSS 수신기 또는 외부 기준 클록에 연결된 경우) 클래스 SynchronizedTimeBaseProvider을(를) 사용합니다([SWS_TS_01101]). 이 인터페이스는 두 가지 서로 다른 시맨틱인 SetTime() 및 UpdateTime()을(를) 통해 새로운 시간 값을 명시적으로 설정할 수 있도록 합니다(EXP_SWArchitecture 80쪽).

SetTime() 호출은 내부 클록 시간을 재설정할 뿐만 아니라 차량 버스로의 업데이트된 동기화 메시지의 즉각적인 전송을 강제합니다([SWS_TS_01107]). 반면 UpdateTime()은(는) 우선 로컬에서만 시간을 업데이트하며, 버스로의 전송은 시간 전송 프로토콜의 정규 후속 주기에서 지연되어 수행됩니다([SWS_TS_01108]). 두 메서드 모두 타임스탬프 외에도 구조화된 UserData을(를) 수신하여 동기화 부가 정보를 네트워크 전반에 전달합니다([SWS_TS_01112], [SWS_TS_01113]).

수정 발진기의 미세 조정 및 급격한 위상 점프 방지를 위해 SetRateCorrection()은(는) 상대 주파수 보정 계수의 적용을 가능하게 합니다([SWS_TS_01110]). 아울러 GetRateDeviation()은(는) 현재 적용된 클록 편차를 제공하며([SWS_TS_01111]), GetCurrentTime()은(는) 현재 동기화 상태와 무관하게 클록의 절대 시간 값을 읽어옵니다([SWS_TS_01109]).

Time Validation 및 Freshness Value Management를 통한 무결성 보장

안전 필수 및 고도 자율주행 환경에서는 시간 값을 단순히 수신하는 것만으로는 충분하지 않으며, 타임스탬프의 정확성과 위변조 방지성을 지속적으로 검증해야 합니다(AUTOSAR_AP_SWS_TimeSynchronization 38쪽). 이를 위해 tsync은(는) Time Validation을 위한 콜백 인터페이스를 제공합니다. 컨슈머는 RegisterTimeValidationNotification()을(를) 통해 등록하고([SWS_TS_01016]), 프로바이더는 유사하게 프로바이더 전용 메서드를 통해 등록합니다([SWS_TS_01114]).

검증 인터페이스 ConsumerTimeBaseValidationNotification 및 ProviderTimeBaseValidationNotification은(는) 상세 측정 데이터 레코드를 특화된 모니터링 애플리케이션으로 전달합니다([SWS_TS_01300], [SWS_TS_01301]). 마스터 스테이션에서 SetMasterTimingData()은(는) 전송된 동기화 프레임의 송출(Egress) 타임스탬프(syncEgressTimestamp)와 시퀀스 번호(sequenceId)를 제공합니다([SWS_TS_00421], [SWS_TS_14141], [SWS_TS_14142]). 슬레이브 레벨에서는 SetSlaveTimingData()이(가) 대응하는 유입(Ingress) 타임스탬프(syncIngressTimestamp), 수신된 보정 필드(correctionField) 및 측정된 경로 지연(pDelay)을 전달합니다([SWS_TS_00420], [SWS_TS_14152], [SWS_TS_14153], [SWS_TS_14155]). 피어 투 피어 지연 측정을 위해 SetPdelayInitiatorData() 및 SetPdelayResponderData()은(는) 요청 및 응답 패킷의 입출력 시점을 온전히 제공합니다([SWS_TS_00422], [SWS_TS_00423], [SWS_TS_14160], [SWS_TS_14170]).

재전송 공격을 방지하고 전송된 시간 메시지를 보호하기 위해 플랫폼은 네임스페이스 apext::tsync의 네이티브 인터페이스를 통해 Freshness Value Management(FVM)를 통합합니다([SWS_TS_14198], EXP_SWArchitecture 83쪽). 부팅 시 Initialize()이(가) 담당 FVM 플러그인을 초기화합니다([SWS_TS_14200]). 전송 전에 스택은 새로운 카운터 값을 가져오기 위해 GetTxFreshness()을(를) 호출하며([SWS_TS_14199]), 수신 시에는 검증 및 인증을 위해 GetRxFreshness()이(가) 참조됩니다([SWS_TS_14198]). 이때 데이터는 표준화된 FVContainer을(를) 통해 전송됩니다([SWS_TS_14195], [SWS_TS_14196]).

시간 검증 측정 데이터 수집 및 전달MasterPortSlavePortMasterValidatorSlaveValidatorSync 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)

시퀀스 다이어그램: 마스터, 슬레이브 및 외부 검증자 애플리케이션 간 타이밍 측정 데이터의 검증 흐름. 출처: [SWS_TS_00420], [SWS_TS_00421], AUTOSAR_AP_SWS_TimeSynchronization 38쪽

구성, 프로세스 바인딩 및 매니페스트 모델링

클러스터의 할당 및 기능적 바인딩은 AUTOSAR 모델 매니페스트에서 선언적으로 이루어집니다(AUTOSAR_AP_TPS_ManifestSpecification 590쪽). Machine Manifest에서 플랫폼 데몬은 메타모델 요소 TimeSyncModuleInstantiation을(를) 통해 구체적인 Machine 위에 인스턴스화되며, 그곳에서 물리 및 가상 TimeBaseResource 객체를 관리합니다(AUTOSAR_AP_TPS_ManifestSpecification 590쪽).

애플리케이션 레벨에서 프로세스는 포트 프로토타입(컨슈머의 경우 RPortPrototype, 프로바이더의 경우 PPortPrototype)을 통해 시간 기반에 대한 요구사항을 선언합니다(AUTOSAR_AP_TPS_ManifestSpecification 599쪽). 메타모델 구성체 TimeSyncPortPrototypeToTimeBaseMapping은(는) 이러한 포트를 머신에 정의된 시간 기반과 프로세스별로 연결합니다(TPS_ManifestSpecification 599쪽; AUTOSAR_AP_TPS_ManifestSpecification 600쪽). 런타임에 코드상의 인스턴스화는 타입 안전한 ara::core::InstanceSpecifier을(를) 통해 수행되며, 이를 통해 스택은 구성된 올바른 시간 기반을 바인딩합니다([SWS_TS_01001], [SWS_TS_01101]).

오류가 발생한 경우의 동작

Time-Synchronization-클러스터의 오류 상황은 Adaptive Platform의 표준화된 오류 모델(ara::core::Result 및 ara::core::ErrorCode)을 통해 시그널링됩니다([SWS_TS_00910]). 일반 시간 기반 연산의 경우 열거형 TsyncErrc이(가) 오류 코드를 정의합니다([SWS_TS_00901]). 예를 들어 플랫폼 데몬과의 프로세스 간 통신이 중단되면 오류 코드 kDaemonConnectionLost이(가) 반환됩니다([SWS_TS_00901]).

글로벌 오류 도메인 TsyncErrorDomain을(를) 통해 오류 코드를 검사하거나([SWS_TS_00905], [SWS_TS_00906], [SWS_TS_00907]), C++ 예외가 활성화된 경우 ThrowAsException()을(를) 통해 TsyncException(으)로 던질 수 있습니다([SWS_TS_00903], [SWS_TS_00908], [SWS_TS_00909]). Freshness Value Management를 위해 열거형 TsyncFvmErrc을(를) 갖는 독립적인 오류 도메인 TsyncFvmErrorDomain이(가) 존재합니다([SWS_TS_14201], [SWS_TS_14202]). 초기화에 실패하면 Initialize()은(는) 오류 kFVInitializeFailed을(를) 반환하고([SWS_TS_14200]), 인증 검사를 위한 카운터를 사용할 수 없는 경우에는 kFVNotAvailable이(가) 보고됩니다([SWS_TS_14202]).

기능 레벨에서 클러스터는 시간 메시지의 유실을 반드시 동기식 API 오류로 시그널링하지는 않으며, 상태 객체에서 시간 기반을 통신 상태 kTimeOut(으)로 표시하거나([SWS_TS_01050]) timeBaseStatus의 해당 비트를 설정합니다([SWS_TS_01403]). 해석: 따라서 측정값을 안전 필수 제어 루프에 적용하기 전에, 애플리케이션은 항상 GetTimeWithStatus() 이후 스냅샷의 유효성 상태를 능동적으로 확인할 책임이 있을 것으로 보입니다. 질문 Q-0cd9bb48452ae3db (열림)

더 자세한 증거

모듈 tsync의 핵심 요구사항 및 사양 항목은 다음과 같은 주요 영역으로 분류할 수 있습니다.

이 모듈 가이드는 AUTOSAR Adaptive 사양 R25-11을 기반으로 자동 생성되었습니다.

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

apext::tsync

FVContainer 클래스

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

FVM 클래스

A freshness value management interface for ara::tsync.

Defines a class representing the Freshness Value Manager error domain.

상속 대상 ara::core::ErrorDomain

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

상속 대상 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;
TsyncFvmErrc 열거형

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 클래스

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.

상속 대상 ara::core::ErrorDomain

TsyncException 클래스

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

상속 대상 ara::core::Exception

UserData 클래스

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 열거형

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 {...};
TsyncErrc 열거형

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 타입 별칭

Notifier function .

using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;
Timestamp 타입 별칭

Standard timestamp type as alias of a generic time_point .

네임스페이스

모듈의 UML 클래스 다이어그램

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