동기화된 시간 기준, 고정밀 타임스탬프 및 상태 모니터링을 위한 표준화된 인터페이스를 제공합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aa3b87a713ce출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
동기화된 시간 기준, 고정밀 타임스탬프 및 상태 모니터링을 위한 표준화된 인터페이스를 제공합니다.
네임스페이스 ara::tsync은(는) 애플리케이션을 SynchronizedTimeBaseConsumer을(를) 통해 구성된 시간 기준에 바인딩하여 Adaptive Platform에서 동기화된 시간 접근을 위한 인터페이스를 제공합니다. 시간 캡처는 나노초 해상도 [SWS_TS_01251]을(를) 기반으로 하는 Timestamp 타입의 고정밀 타임스탬프를 통해 수행됩니다. 애플리케이션은 SynchronizationStatus[SWS_TS_01050]와(과) 같은 상태 표시기를 통해 동기성을 모니터링합니다. 주요 제약 사항으로 비동기 알림 콜백은 스레드 안전하지 않게 설계되었으며, 시간 데몬에 대한 연결 손실은 반드시 처리되어야 합니다.
컨텍스트
네임스페이스 ara::tsync은(는) AUTOSAR Adaptive Platform 내에서 고정밀 시간 동기화를 위한 인터페이스를 제공합니다. 애플리케이션이 동기화된 시점을 판독하고, 동기화 상태를 모니터링하며, 검증 목적으로 측정값을 로깅할 수 있도록 지원합니다. 소비 애플리케이션의 핵심 역할은 InstanceSpecifier을(를) 통해 구성된 시간 기준에 대한 접근을 캡슐화하는 SynchronizedTimeBaseConsumer 클래스가 담당합니다. 공급자 측에서는 SynchronizedTimeBaseProvider이(가) 시간 기준의 제공 및 제어를 위한 접근 지점 역할을 합니다.
시간 표현의 기초는 의사 시계(Pseudo-Clock) TimeBase이며, 이를 통해 타입 별칭 Timestamp이(가) std::chrono::time_point<TimeBase, std::chrono::nanoseconds>[SWS_TS_01251](으)로 정의됩니다. 실제 동기화 작업 및 IEEE 802.1AS 또는 PTP와 같은 버스 프로토콜과의 연동은 일반적으로 백그라운드 서비스를 통해 수행됩니다. Interpretation: 이 시간 데몬은 ara::tsync의 인스턴스와 프로세스 간 통신을 수행하며, 이는 특정 오류 TsyncErrc::kDaemonConnectionLost[SWS_TS_00901]을(를) 통해 입증될 수 있습니다. 질문 Q-dd9d1a36f7573a03 (열림) 이 아키텍처는 ConsumerTimeBaseValidationNotification 및 ProviderTimeBaseValidationNotification과 같은 인터페이스뿐만 아니라 런타임 및 정밀도 측정을 위한 데이터 구조(예: TimeMasterMeasurementType, TimeSlaveMeasurementType, PdelayInitiatorMeasurementType 및 PdelayResponderMeasurementType)에 의해 보완됩니다.
동기화된 시간 기준의 수명 주기는 상태 구조와 이산 상태 전이에 의해 결정됩니다. 모든 메타데이터를 포함한 시간 상태의 스냅샷은 SynchronizedTimeBaseStatus에 의해 표현됩니다. 통신 및 동기화 상태는 열거형 SynchronizationStatus[SWS_TS_01050]을(를) 통해 제어됩니다:
kNotSynchronizedUntilStartup: 시스템 시작 후 최초의 성공적인 동기화 이전의 초기 상태.
kSynchronized: 시간 기준이 타임 마스터와 동기화된 상태.
kSynchToGateway: 게이트웨이를 통해 동기화가 수행되는 상태.
kTimeOut: 정의된 시간 창 내에서 동기화가 수립되거나 유지되지 못한 상태.
통신 상태 외에도 열거형 LeapJump[SWS_TS_01051]은(는) 시간 기준의 급격한 보정을 캡처합니다: kTimeLeapNone은(는) 임계값 초과가 없는 지속적인 진행을 나타내며, kTimeLeapFuture 및 kTimeLeapPast은(는) 각각 미래 또는 과거 방향으로의 유의미한 보정을 나타냅니다.
동시성과 관련하여, SynchronizationNotifier[SWS_TS_14222], SynchronizedTimeBaseNotifier[SWS_TS_14221], TimePrecisionNotifier[SWS_TS_14223]와(과) 같은 콜백 타입은 사양에 따라 스레드 안전하지 않은 것으로 분류되어 있다는 점에 유의해야 합니다. 따라서 상태 전이, 특히 타임아웃 또는 재동기화 발생 시에는 애플리케이션 측에서의 동기화가 필요합니다.
상태 다이어그램: 동기화된 시간 기준의 수명 주기 및 통신 상태. 출처: [SWS_TS_01050].
사용 경로
소비자 애플리케이션이 동기화된 시간 기준을 사용하는 일반적인 절차는 다음 단계로 구성됩니다:
초기화 및 바인딩: 애플리케이션은 적절한 InstanceSpecifier을(를) 지정하여 원하는 시간 기준에 대한 SynchronizedTimeBaseConsumer을(를) 인스턴스화합니다.
알림 등록: 동기화 상태를 모니터링하기 위해 애플리케이션은 콜백 함수를 전달합니다. 여기에는 SynchronizationStatus의 변경을 위한 SynchronizationNotifier[SWS_TS_14222], 상세 상태 스냅샷을 위한 SynchronizedTimeBaseNotifier[SWS_TS_14221](SynchronizedTimeBaseStatus), 정밀도 측정 데이터를 위한 TimePrecisionNotifier[SWS_TS_14223](TimePrecisionMeasurement)이 포함됩니다.
타임스탬프 쿼리:kSynchronized 또는 kSynchToGateway[SWS_TS_01050] 상태가 존재하는 경우, 애플리케이션은 Timestamp[SWS_TS_01251] 타입의 고정밀 시간 값을 판독합니다.
상태 및 시간 점프에 대한 반응: 알림이 kTimeLeapNone[SWS_TS_01051]과(와) 일치하지 않는 LeapJump 또는 kTimeOut[SWS_TS_01050](으)로의 전이를 알리는 경우, 애플리케이션은 내부 타이머를 조정하거나 성능 저하 모드(Degradation mode)로 전환합니다.
사용자 데이터 전송: 시간 동기화 프레임워크 내에서 사용자 정의 페이로드가 전송되는 경우 구조체 UserData이(가) 사용됩니다.
오류 시나리오
네임스페이스의 오류 처리는 오류 도메인 TsyncErrorDomain을(를) 통해 AUTOSAR 표준 모델을 따릅니다. 이 전역 도메인에 대한 접근은 GetTsyncErrorDomain()[SWS_TS_00909]을(를) 통해 수행됩니다. 오류 원인은 열거형 타입 TsyncErrc[SWS_TS_00901]에 의해 설명됩니다:
kDaemonConnectionLost: Time-Sync 데몬과의 연결이 끊어져 요청된 작업이 실패했습니다.
kLimitsExceeded: 전달되거나 계산된 값이 유효한 값 범위를 벗어났습니다.
kFunctionNotSupported: 현재 구성 또는 플랫폼 환경에서 요청된 기능이 지원되지 않습니다.
kInvalidUserDataSize: 전달된 사용자 데이터의 길이가 UserData::kMaxUserDataSize에 의해 정의된 현재 최대값인 3바이트를 초과합니다.
ara::core::ErrorCode의 인스턴스는 도우미 함수 MakeErrorCode[SWS_TS_00910]을(를) 통해 생성됩니다. 이 함수는 noexcept(으)로 선언되어 있으며 스레드 안전합니다. 예외 기반 아키텍처를 위해 네임스페이스는 예외 클래스 TsyncException을(를) 제공합니다.
이 가이드는 tsync 모듈에 대한 AUTOSAR Adaptive Platform R25-11 사양을 기반으로 합니다.
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
클래스 다이어그램
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.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2b617e90b13f출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
열거형 SynchronizationStatus은(는) 네임스페이스 ara::tsync에 속한 시간 기준의 통신 및 동기화 상태를 나타냅니다 [SWS_TS_01050]. 이 타입은 std::uint32_t을(를) 기반으로 하며 헤더 파일 ara/tsync/synchronized_time_base_status.h 및 포워딩 헤더 ara/tsync/tsync_fwd.h을(를) 통해 제공됩니다 [SWS_TS_01050]. 이 열거형은 네 가지 상태를 정의합니다:
kNotSynchronizedUntilStartup (= 0): 시스템 시작 전에 타임베이스가 동기화되지 않았습니다(초기 상태) [SWS_TS_01050].
kTimeOut (= 0x1): 지정된 시간 윈도우 내에 타임베이스가 동기화되지 않았습니다 [SWS_TS_01050].
상태의 동기식 조회는 클래스 ara::tsync::SynchronizedTimeBaseStatus의 메서드 GetSynchronizationStatus()을(를) 통해 수행되며, 이 메서드는 상태 객체 생성 시점의 상태를 스레드 안전 및 예외 안전(noexcept)하게 제공합니다 [SWS_TS_01053]. 상태 변경 시 알림을 위해 ara/tsync/synchronized_time_base_consumer.h에는 타입 별칭 SynchronizationNotifier(std::function<void(const SynchronizationStatus &)>)이(가) 존재하며, 이는 명시적으로 스레드 안전하지 않은 것으로 명시되어 있습니다 [SWS_TS_14222].
오류 발생 시 또는 동기화가 되지 않은 경우 연결된 메서드의 동작에 유의해야 합니다: 타임베이스가 한 번도 동기화되지 않았고 상태 kNotSynchronizedUntilStartup을(를) 나타내는 경우, 동기화된 시간 기준의 유효한 생성 시점이 존재하지 않으므로 메서드 GetCreationTime()은(는) 빈 ara::core::Optional을(를) 반환합니다 [SWS_TS_01055].
이 텍스트는 AI 시스템에 의해 생성되었으며 AUTOSAR R25-11의 사양 데이터만을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 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).
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bf6ea0154525출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
열거형 TsyncErrc은(는) Time Synchronization 기능 클러스터의 표준화된 오류 코드를 정의합니다 [SWS_TS_00901]. 이는 ara::core::ErrorDomain::CodeType을(를) 기반으로 하며 네임스페이스 ara::tsync 내에 선언되고, ara::tsync::TsyncErrorDomain::Errc을(를) 통해 별칭도 제공됩니다 [SWS_TS_01266]. 완전한 오류 객체를 생성하기 위해 스레드 안전 함수 MakeErrorCode이(가) 사용되며, 이 함수는 TsyncErrc 값을 제조업체별 추가 데이터와 연결하여 ara::core::ErrorCode(으)로 만듭니다 [SWS_TS_00910].
kDaemonConnectionLost (=1): Time-Sync 데몬과의 연결이 끊어져 작업을 실행할 수 없습니다.
kLimitsExceeded (=2): 전달된 파라미터가 허용된 값 범위를 초과합니다. 이는 예를 들어 요청된 속도 보정이 유효하지 않을 때 SetRateCorrection에서 발생합니다 [SWS_TS_01110].
kFunctionNotSupported (=3): 요청된 기능이 지원되지 않습니다. 해석: 이는 선택적 하드웨어 또는 인터페이스 기능을 사용할 수 없는 구현에 해당할 것으로 보입니다. 질문 Q-e22067d84fd6adb4 (열림)
kInvalidUserDataSize (=4): 페이로드 길이가 UserData::kMaxUserDataSize에 의해 지정된 최대 크기인 3바이트를 초과합니다. 이 오류는 SetTime[SWS_TS_01107] 및 SetUserData[SWS_TS_01112]에서 발생합니다.
Returns a reference to the global TsyncErrorDomain object.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3848538f31e7출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
동기 함수 GetTsyncErrorDomain은(는) 네임스페이스 ara::tsync에 속하며 헤더 파일 ara/tsync/tsync_error_domain.h을(를) 통해 포함됩니다 [SWS_TS_00909]. 매개변수 없이 호출되며 시간 동기화의 전역 TsyncErrorDomain 객체에 대한 참조를 가져오는 용도로 사용됩니다 [SWS_TS_00909].
반환값으로 이 함수는 const ara::core::ErrorDomain & 형식의 전역 오류 도메인 객체에 대한 상수 참조를 반환합니다 [SWS_TS_00909]. 해석: 제공된 인스턴스는 AUTOSAR Adaptive의 오류 처리 개념에서 시간 동기화 영역의 모듈별 오류 코드를 식별, 할당하거나 다른 오류 도메인과 비교하기 위한 기준점으로 사용될 것으로 보입니다. 질문 Q-cf1fce412576bca3 (열림)
오류 처리 및 예외 안전성
함수 시그니처는 명시적으로 noexcept(으)로 선언되어 있으며 예외 안전(exception safe)한 것으로 명시되어 있습니다 [SWS_TS_00909]. 이는 실행 중에 예외가 발생할 수 없음을 의미합니다. 함수는 이미 존재하는 전역 도메인 객체에 대한 참조만 반환하므로 내부 오류 상태가 발생하지 않으며, 해당 호출에 대한 특정 오류 코드나 오류 메시지도 존재하지 않습니다 [SWS_TS_00909].
동시성 및 제약사항
사양에 따라 GetTsyncErrorDomain은(는) 스레드 안전(thread-safe)한 것으로 분류됩니다 [SWS_TS_00909]. 따라서 사전 동기화나 잠금 메커니즘 없이 서로 다른 스레드에서 병렬로 호출을 수행할 수 있습니다. 사양에 따르면 호출에 대한 특별한 순서 조건이나 사전 조건은 없습니다 [SWS_TS_00909].
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ad8052caa2c8출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 MakeErrorCode은(는) ara::tsync 네임스페이스의 시간 동기화 오류 도메인에 대한 ara::core::ErrorCode 객체를 동기적으로 생성하는 역할을 합니다 [SWS_TS_00910]. 헤더 ara/tsync/tsync_error_domain.h을(를) 통해 사용할 수 있으며, 시간 동기화의 오류 번호를 AUTOSAR Adaptive의 표준화된 오류 처리 모델로 변환합니다.
매개변수 및 반환값
code (ara::tsync::TsyncErrc): [SWS_TS_00910] 도메인의 특정 오류 번호를 나타냅니다.
data (ara::core::ErrorDomain::SupportDataType): 발생한 오류 [SWS_TS_00910]에 대한 제조업체별 추가 데이터를 전달합니다.
이 함수는 noexcept(으)로 선언되어 있고 예외에 안전한 것으로 분류되어 있습니다 [SWS_TS_00910]. 즉, 런타임에 예외를 발생시키지 않습니다. 또한 구현이 thread-safe(으)로 명시되어 있으므로 [SWS_TS_00910], 추가적인 동기화 조치 없이 여러 스레드에서 병렬로 호출할 수 있습니다.
상호 작용
이 기본 함수 외에도 관련 요구사항 [SWS_TS_14213]은(는) apext::tsync 네임스페이스(헤더 apext/tsync/fvm_error_domain.h)의 TsyncFvmErrc에 대해 constexpr(으)로 정의된 유사한 오버로드를 명시합니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문