진단 기능의 표준화된 오류 처리를 위해 UDS 특정 Negative Response Code를 제공합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ee46722aaae6출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
진단 기능의 표준화된 오류 처리를 위해 UDS 특정 Negative Response Code를 제공합니다.
오류 도메인 ara::diag::DiagUdsNrcErrorDomain은 진단 처리의 오류 코드를 캡슐화하고 표준화된 UDS 오류 값에 매핑합니다 [SWS_DM_00529]. 외부 진단 프로세서가 해당 오류를 보고하면 Diagnostic Server는 이로부터 1바이트 NRC를 도출하고 테스터에 부정적인 UDS 응답을 전송합니다 [SWS_DM_02060]. 필수 경계 조건으로서 도출된 NRC 값은 엄격하게 0x01과 0xFE 사이의 값 범위에 있어야 합니다.
컨텍스트
클래스 ara::diag::DiagUdsNrcErrorDomain은 서로 다른 진단 클래스에서 발생하는 오류에 대한 표준화된 오류 도메인을 나타냅니다(AUTOSAR_AP_SWS_Diagnostics §8.12.3 “Class: DiagUdsNrcErrorDomain”). 기본 클래스 ara::core::ErrorDomain의 특수화로서 [SWS_DM_00529] 애플리케이션 측 진단 처리와 UDS(Unified Diagnostic Services) 프로토콜 간의 근본적인 연결 고리를 형성합니다. AUTOSAR Adaptive Platform 내에서 외부 진단 프로세서 또는 소프트웨어 애플리케이션과 Diagnostic Server(Diagnostic Management, DM) 사이를 중재합니다. 명령 실행 시 외부 진단 프로세서가 이 도메인의 오류를 보고하면 Diagnostic Server Instance는 이를 구체적으로 평가합니다 [SWS_DM_02060]. 또한 데이터 요소 판독에 실패한 경우 도메인은 구성 가능한 환경 조건 검사와 상호작용합니다 [SWS_DM_00970].
수명 주기
ara::diag::DiagUdsNrcErrorDomain의 인스턴스화는 기본 생성자 constexpr DiagUdsNrcErrorDomain() noexcept을 통해 수행됩니다 [SWS_DM_00532]. 이 생성자는 예외 안전 및 스레드 안전으로 명시되어 있습니다 [SWS_DM_00532]. constexpr 설계 및 함수 없는 오류 도메인의 특성으로 인해 인스턴스는 일반적으로 변경 불가능한 프로세스 전반의 객체로 제공될 것으로 추정됩니다(해석). 질문 Q-72b7b9c623c1efe0 (열림) 구성 멤버 검사 메서드인 Name()[SWS_DM_00533] 및 Message()[SWS_DM_00534] 역시 스레드 안전하며 예외 안전합니다. 객체가 변경 가능한 상태를 관리하지 않으므로 라이프사이클은 진단 애플리케이션의 전체 런타임 컨텍스트에 바인딩되며 제한 없는 동시 읽기 액세스를 허용합니다.
사용 경로
전형적인 사용 경로는 서비스 실행 중 진단 오류의 신호 전달 및 변환을 설명합니다:
외부 진단 프로세서가 진단 기능을 실행하고 오류 조건을 감지합니다.
애플리케이션은 Errc 타입(DiagUdsNrcErrc의 별칭)을 사용하여 ara::diag::DiagUdsNrcErrorDomain 도메인의 오류 코드를 포함하는 ara::core::Result을(를) 생성하고 [SWS_DM_00530], 이를 Diagnostic Server Instance로 반환합니다 [SWS_DM_02060].
Diagnostic Server Instance는 반환값을 수신하고 오류 도메인 ara::diag::DiagUdsNrcErrorDomain의 존재를 식별합니다 [SWS_DM_02060].
DM은 예를 들어 static_cast을(를) 1바이트 NRC 값으로 변환함으로써 오류 코드 DiagUdsNrcErrc에서 UDS-NRC를 도출합니다 [SWS_DM_02059].
Diagnostic Server는 요청한 진단 테스터에 도출된 NRC 값을 포함하는 부정 UDS 응답(negative response)으로 응답합니다 [SWS_DM_02060].
다중 DID 요청에는 특별한 처리가 적용됩니다. 결과에 ara::diag::DiagUdsNrcErrorDomain의 오류가 발생하는 것은 개별 요소에 대한 외부 진단 프로세서의 실패를 나타내지만, 요청된 여러 DID 중 활성 세션에서 하나 이상의 DID가 지원되는 경우 여전히 긍정적인 전체 피드백으로 이어질 수 있습니다 (AUTOSAR_AP_SWS_Diagnostics §7.3 “Multi-DID-Requests”).
오류 시나리오
ara::diag::DiagUdsNrcErrorDomain을(를) 통한 오류 사용 및 전달 시에는 엄격한 값 한계와 동작 규정이 적용됩니다:
유효 범위:DiagUdsNrcErrc에서 도출되는 허용된 UDS-NRC 값은 오직 0x01에서 0xFE 사이의 범위에만 위치합니다 [SWS_DM_02059].
환경 조건 시 장애: 외부 프로세서가 ara::diag::DiagUdsNrcErrorDomain의 오류를 보고하여 dataElement 검색에 실패하면, DM은 표현식 DiagnosticEnvConditionFormulaPart이(가) 충족되지 않은 것으로 평가하고 Log-and-Trace 메시지를 발송합니다 [SWS_DM_00970].
예외 처리:ThrowAsException() 메서드는 ErrorCode을(를) Exception 타입(DiagUdsNrcException의 별칭)의 해당 예외로 변환합니다 [SWS_DM_00531], [SWS_DM_00535]. 이 작업은 예외에 안전하지 않은 것으로 선언되며, C++ 예외가 비활성화된 경우 오버로드 확인에 참여하지 않습니다 [SWS_DM_00535].
메시지 확인:Message() 메서드는 전달된 각 오류 코드에 대해 설명 텍스트 문자열을 제공하며, 절대로 nullptr을(를) 반환하지 않음을 보장합니다 [SWS_DM_00534].
이 가이드는 AUTOSAR Adaptive R25-11 사양을 기반으로 하며 DiagUdsNrcErrorDomain 오류 도메인에 대한 요구사항을 요약합니다.
Throw the exception type corresponding to the given ErrorCode. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
동시성 및 예외 안전성과 관련하여 생성자는 thread-safe 및 exception safe(으)로 지정되어 있습니다[SWS_DM_00532]. 이는 noexcept(으)로 선언되어 있으며 자체적으로 어떠한 예외도 발생시키지 않습니다. 도메인은 MakeErrorCode()[SWS_DM_00537]을(를) 통해 생성되는 열거형 타입 DiagUdsNrcErrc의 오류 코드를 별칭 Errc[SWS_DM_00530]을(를) 통해 관리합니다. 또한 이 클래스는 DiagUdsNrcException[SWS_DM_00531]의 프레임워크 내에서 Name()[SWS_DM_00533], Message()[SWS_DM_00534] 및 ThrowAsException()[SWS_DM_00535]와(과) 같은 메소드를 제공합니다.
Diagnostic Management와의 상호 작용에서 이 도메인의 오류는 부정 응답 처리를 제어합니다. ara::diag 인터페이스가 DiagUdsNrcErrorDomain의 오류를 반환하면, Diagnostic Server는 이로부터 0x01에서 0xFE까지의 유효한 범위의 오류 코드 값을 갖는 부정 UDS 응답(NRC)을 도출합니다[SWS_DM_02059], [SWS_DM_02060]. 컨텍스트 요소를 검색할 때 이러한 오류가 발생하면, 서버는 해당 조건이 충족되지 않은 것으로 평가하고 Log and Trace 메시지를 발행합니다[SWS_DM_00970].
Translate an error code value into a text message.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8d40cc1d5cea출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
ara::diag::DiagUdsNrcErrorDomain 클래스의 동기 멤버 함수 Message은 숫자 오류 코드를 읽기 쉬운 문자열로 변환합니다 [SWS_DM_00534]. 매개변수로 ara::core::ErrorDomain::CodeType 타입의 오류 값 errorCode이 전달됩니다. 호출은 해당 메시지를 가리키는 상수 포인터(const char *)를 반환하며, 반환값이 절대로 nullptr이 아님이 보장됩니다 [SWS_DM_00534].
오류 처리 및 동시성
이 메서드는 noexcept으로 선언되어 있으며 완전한 예외 안전성(exception safe)을 보장합니다 [SWS_DM_00534]. 예외가 발생하지 않습니다. 널 포인터는 명시적으로 배제되어 있으므로 errorCode에 대해 알려지지 않았거나 유효하지 않은 값이 전달되더라도 구현은 아마도 정적 폴백 메시지를 제공할 것으로 추정됩니다 [SWS_DM_00534]. 질문 Q-e9724baf4aedc3ff (열림) 또한 이 함수는 스레드 안전(thread-safe)으로 지정되어 있어 외부 동기화 없이 여러 스레드에서 병렬로 호출할 수 있습니다 [SWS_DM_00534].
Diagnostic Management에서의 상호작용
Diagnostic Management 내에서 Message은 특히 UDS Negative Response Codes(NRC)를 위한 오류 메시지 확인의 표준화된 재정의를 구현합니다 [SWS_DM_00534]. 이는 DiagErrorDomain[SWS_DM_00522], DiagOfferErrorDomain[SWS_DM_00994], DiagReportingErrorDomain[SWS_DM_01001] 및 DiagSovdErrorDomain[SWS_DM_01814]와 같은 다른 진단 오류 도메인의 유사한 기능들과 대응합니다.
이 텍스트는 AUTOSAR AP 릴리스 R25-11 사양을 기반으로 AI 시스템에 의해 생성되었습니다.
Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0056a3709625출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
ara::diag::DiagUdsNrcErrorDomain 클래스의 멤버 함수 Name은 이 특정 진단 오류 도메인의 짧은 이름(ApApplicationErrorDomain.SN)을 반환합니다 [SWS_DM_00533]. 호출은 동기적으로 이루어지며 헤더 ara/diag/diag_uds_nrc_error_domain.h를 통해 선언되어 있습니다. 메서드는 전달 매개변수를 받지 않으며 널 종료 문자열을 가리키는 const char * 타입의 포인터를 반환합니다 [SWS_DM_00533].
오류 처리
이 함수는 noexcept으로 선언되어 있으며 exception safe 속성을 가집니다 [SWS_DM_00533]. 예외를 발생시키지 않으며 오류 코드를 반환하지 않습니다. 인터페이스 설계상 쿼리 실패는 예정되어 있지 않으므로 별도의 오류 메시지는 존재하지 않습니다.
동시성 및 제약사항
사양에 따르면 Name은 thread-safe로 분류됩니다 [SWS_DM_00533]. 재진입 가능하며 외부 동기화 메커니즘 없이 여러 스레드에서 병렬로 호출될 수 있습니다. 참조되는 문자열은 정적으로 할당된 데이터를 나타낼 것으로 보이므로, 포인터는 애플리케이션의 전체 수명 주기 동안 변경되지 않고 유효하게 유지될 것으로 보입니다. 질문 Q-d4a4d28af7a9c2df (열림) 호출을 위한 특별한 순서 조건은 없습니다.
상호 작용
이 연산은 진단 컨텍스트에서 AUTOSAR Adaptive 오류 도메인에 대한 통합 이름 쿼리를 구현합니다. 구조적으로 ara::diag::DiagErrorDomain::Name[SWS_DM_00521], ara::diag::DiagOfferErrorDomain::Name[SWS_DM_00993], ara::diag::DiagReportingErrorDomain::Name[SWS_DM_01000] 및 ara::diag::DiagSovdErrorDomain::Name[SWS_DM_01813]과 같은 관련 오류 도메인의 동명 인터페이스에 해당합니다. 주로 진단 클라이언트 또는 로깅 컴포넌트가 UDS NRC 환경의 오류를 읽기 쉽게 식별할 수 있도록 하는 데 사용됩니다.
Throw the exception type corresponding to the given ErrorCode. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e2f3a36037be출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
오류 및 런타임 동작과 관련하여, 예외를 발생시키는 것이 주된 시맨틱이므로 이 메서드는 noexcept(false)으로 선언되어 있고 예외 안전하지 않음(not exception safe)으로 분류됩니다 [SWS_DM_00535]. 동시 호출 컨텍스트에 대해 이 함수는 스레드 안전(thread-safe)으로 지정되어 있습니다 [SWS_DM_00535].
통합 및 시스템 구성 시 다음과 같은 조건과 설계 참조가 적용됩니다:
컴파일러 제한 사항: 컴파일러 툴체인에서 C++ 예외가 비활성화된 경우, 이 함수는 [SWS_CORE_10304]에 따라 오버로드 확인(overload resolution)에 참여하지 않습니다 [SWS_DM_00535].
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문