진단 이벤트의 비트 코딩된 상태 바이트를 나타내며 상태 비트에 대한 타입 안전 검사 메서드를 제공합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c0a8a1df20de출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
진단 이벤트의 비트 코딩된 상태 바이트를 나타내며 상태 비트에 대한 타입 안전 검사 메서드를 제공합니다.
구조체 ara::diag::EventStatusByte은 Adaptive Platform 내 개별 진단 이벤트의 비트 인코딩된 상태 바이트를 캡슐화합니다 [SWS_DM_00644]. 이 구조체는 설정되거나 설정되지 않은 상태 비트 및 복합 검사 상태를 타입 안전하게 쿼리하는 메서드를 제공합니다 [SWS_DM_01755]. 계산은 항상 특정 이벤트를 매핑하므로 상위 DTC 이벤트 조합의 영향을 받지 않습니다. 경량 값 객체로서 모든 읽기 접근은 예외로부터 안전하고 동시 읽기가 가능한 반면, 변경을 수반하는 할당은 외부에서 동기화되어야 합니다.
컨텍스트
구조체 ara::diag::EventStatusByte은 AUTOSAR Adaptive Diagnostic Management의 장애 메모리에 있는 진단 이벤트의 비트 인코딩된 상태 바이트를 캡슐화합니다 [SWS_DM_00644]. 명세에 따르면 EventStatusByte은 항상 할당된 개별 이벤트의 상태를 정확하게 나타내며, 계산 시 발생할 수 있는 이벤트 조합(Event Combination)의 영향을 받지 않습니다 (AUTOSAR_AP_SWS_Diagnostics 234쪽). 상호작용 대상에는 주로 이벤트의 상태 업데이트 시 UDS DTC 상태를 확인하고 [SWS_DM_01109] 구성된 콜백을 통해 통지하는 [SWS_DM_01110] Diagnostic Management Core (DM)가 포함됩니다. 해석: 등록된 응용 프로그램 함수가 상태 변경에 반응할 수 있도록 타입 별칭 ara::diag::EventStatusByteNotifier[SWS_DM_02118]을 통해 이러한 상태 변경이 보고될 것으로 보입니다. 질문 Q-8fd114acd74569ee (열림)
소유권 및 수명과 관련하여, 객체는 일반적으로 값 전달(by-value) 또는 상수 참조를 통해 Notifier로 전달됩니다. 이동 생성자 [SWS_DM_01751]과 복사 생성자 [SWS_DM_01752]은 예외 안전성 및 스레드 안전성을 보장합니다. 이와 대조적으로, 복사 할당 연산자 [SWS_DM_01750] 및 이동 할당 연산자 [SWS_DM_01749]은 명세에서 스레드에 안전하지 않음(not thread-safe)으로 명시적으로 분류되어 있습니다. 기존 상태 바이트에 대한 여러 동시 읽기 접근은 스레드 안전하게 가능하지만, 공유 인스턴스에 대한 수정 할당에는 외부 동기화가 필요합니다.
사용 경로
일반적인 유스케이스는 Diagnostic Management에서 전달된 상태 바이트를 특정 진단 기준에 대해 검사하는 것입니다. 클래스는 이를 위해 특화된 평가 메서드를 제공합니다:
오류 테스트 검사:IsFailedAndTested()을 사용하면 비트 kTestFailed과 kTestFailedThisOperationCycle가 모두 설정되어 있는지 직접 검사할 수 있습니다 [SWS_DM_01757]. 해석: 이는 응용 프로그램에 현재 작동 주기에서 이벤트가 이미 테스트되었으며 결함이 있는 것으로 평가되었음을 알립니다. 질문 (열림)
오류 없는 테스트 검사:IsPassedAndTested() 메서드는 kTestFailed와 kTestNotCompletedThisOperationCycle이 모두 설정되지 않은 경우 true을 반환합니다 [SWS_DM_01756].
일반 비트 검사: 템플릿 IsSet(bits...)을 통해 전달된 모든 상태 비트가 설정되어 있는지 검증할 수 있습니다 [SWS_DM_01755]. 이와 상호보완적으로 IsNotSet(bits...)은 전달된 비트 중 어느 것도 활성화되어 있지 않은지 검사합니다 [SWS_DM_01754].
clearDTC 작업을 통해 장애를 재설정할 때, Diagnostic Management는 이벤트 조합 구성 여부와 관계없이 관련된 모든 이벤트를 정리합니다 [SWS_DM_01108]. 다음 시퀀스 다이어그램은 상태 업데이트 및 응용 프로그램에서의 후속 평가 시 상호작용을 보여줍니다.
ara::diag::EventStatusByte은 기본 데이터 컨테이너이므로 모든 멤버 함수는 noexcept이며 완벽하게 예외에 안전하도록 명세되어 있습니다 ([SWS_DM_01749]~[SWS_DM_01757]). C++ 예외가 발생하지 않으며 ara::core::Result 형태의 오류 코드도 반환되지 않습니다.
따라서 응용 프로그램의 오류 상황은 API 오류 코드로 인해 발생하는 것이 아니라, 의미론적 오해석이나 동기화 오류로 인해 발생합니다. 대표적인 위험으로는 뮤텍스 보호 없는 할당 연산자를 통한 동시 쓰기 접근([SWS_DM_01749], [SWS_DM_01750])이나, EventStatusByte이 명세상 개별 이벤트에 엄격히 바인딩되어 있음에도 불구하고(AUTOSAR_AP_SWS_Diagnostics 234쪽) 결합된 DTC에 의해 수정될 것이라는 잘못된 가정이 있습니다.
이 가이드는 AUTOSAR Adaptive R25-11 명세를 기반으로 하며, 문서 AUTOSAR_AP_SWS_Diagnostics에 따라 클래스의 특성을 요약합니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문