적응형 Diagnostic Management를 위한 애플리케이션 측 확장 진단 데이터 제공에 사용됩니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0446a63ad449출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
적응형 Diagnostic Management를 위한 애플리케이션 측 확장 진단 데이터 제공에 사용됩니다.
클래스 <ExtendedDataRecordElementInterface>은 적응형 애플리케이션이 Diagnostic Management([SWS_DM_02152])에 확장 진단 데이터를 제공하기 위한 인터페이스 역할을 합니다. 인스턴스화 및 Offer()를 통한 활성화 후, 핸들러는 순수 가상 메서드 Read()을 통해 비동기 데이터 제공을 구현합니다([SWS_DM_02156]). Diagnostic Manager는 데이터 레코드를 비휘발성 메모리에 영구적으로 저장하므로, 사용할 수 없는 값은 반드시 채우기 패턴으로 채워져야 합니다. 인터페이스는 복사 및 이동이 불가능하며 소멸자는 스레드 안전하지 않습니다.
컨텍스트
인터페이스 <ExtendedDataRecordElementInterface>은 AUTOSAR Adaptive Platform의 진단 서브시스템에서 Diagnostic Management(DM)(AUTOSAR AP SWS Diagnostics §7.2 “DiagnosticExtendedDataRecordInterface”)에 애플리케이션별 확장 진단 데이터(Extended Data Records)를 제공하는 역할을 합니다. Extended Data Record에는 오류 이벤트에 할당된 카운터 판독값 또는 환경 정보와 같은 진단 관련 추가 데이터가 포함됩니다. 이 클래스는 애플리케이션 측 핸들러 컴포넌트를 위한 추상 기본 인터페이스 역할을 합니다. 상호작용 파트너에는 읽기 작업을 요청하고 조정하는 Diagnostic Manager(DM), 애플리케이션 내의 구체적인 핸들러 구현, 그리고 DM이 검색된 데이터를 영구적으로 저장하는 비휘발성 메모리(Non-Volatile Memory, NVM)가 포함됩니다([SWS_DM_02156]). Interpretation: Read() 호출은 예를 들어 오류 이벤트 발생 시 또는 진단 문제 코드의 상태 변경 시 DM 내부 진단 처리에 의해 시작되는 것으로 추정됩니다. 질문 Q-f80be8c2bd5697fc (열림)
인스턴스화 후 객체는 처음에 비활성 상태에 있습니다. Offer()([SWS_DM_02152])을 호출해야만 서비스가 활성화되고 DM이 핸들러로 요청을 전달합니다. StopOffer()([SWS_DM_02153])를 사용하여 언제든지 이 전달을 중지할 수 있습니다. 소멸은 가상 소멸자 ~<ExtendedDataRecordElementInterface>()([SWS_DM_02151])를 통해 수행됩니다. 이는 예외 안전하지만 명시적으로 스레드 안전하지 않습니다(not thread-safe)([SWS_DM_02151]). Interpretation: 객체가 해제되는 동안 더 이상 요청이 들어오지 않도록 보장하기 위해 핸들러 객체를 파괴하기 전에 StopOffer()을 호출해야 할 것으로 보입니다. 질문 Q-c77dda63f0e8798a (열림)
사용 경로
일반적인 흐름에는 제공, 읽기 요청에 대한 비동기 응답, 서비스 비활성화가 포함됩니다:
초기화: 애플리케이션은 적절한 포트 식별자 및 동시성 구성([SWS_DM_02158])을 사용하여 파생 클래스를 인스턴스화합니다.
서비스 제공:Offer() 호출을 통해 DM 내 요청 포워딩이 활성화됩니다([SWS_DM_02152]). 이 메서드는 ara::core::Result<void>을(를) 반환합니다.
데이터 조회: 읽기 요청이 수신되면 DM은 순수 가상 메서드 Read()을(를) 호출합니다([SWS_DM_02156]). 이때 요청 메타데이터(metaInfo)와 cancellationHandler이(가) 전달됩니다.
취소 처리 및 반환: 핸들러는 cancellationHandler.IsCanceled()을(를) 통해 대화가 취소되었는지 확인하거나 cancellationHandler.SetNotifier()을(를) 통해 알림을 등록할 수 있습니다([SWS_DM_02156]). 결과는 ReadOutput 객체를 포함하는 ara::core::Future을(를) 통해 비동기식으로 전달됩니다([SWS_DM_02156], [SWS_DM_02154]).
영속화: DM은 조회된 데이터를 인수하여 비휘발성 메모리에 영구 저장합니다([SWS_DM_02156]).
생성 오류 및 모델 위반: 생성자 호출 시 모델링 오류가 발생할 수 있습니다([SWS_DM_02158]). 여기에는 InstanceSpecifierMappingIntegrityViolation(식별자를 확인할 수 없거나 PortPrototype을(를) 참조하지 않음), PortInterfaceMappingViolation(DiagnosticDataPortMapping에 의한 참조 누락), ProcessMappingViolation(모델에서 일치하는 프로세스를 찾을 수 없음), InstanceSpecifierAlreadyInUseViolation(해당 식별자가 프로세스에서 이미 사용 중임)이 포함됩니다([SWS_DM_02158]).
중복 제공: 서비스가 이미 활발히 제공되고 있을 때 Offer()을(를) 호출하면 호출이 실패하고 오류 코드 DiagOfferErrc::kAlreadyOffered을(를) 반환합니다([SWS_DM_02152]).
읽기 요청 시 데이터를 사용할 수 없음: DM은 데이터를 비휘발성 메모리에 저장하므로 Read() 호출 시 반드시 값이 반환되어야 합니다([SWS_DM_02156]). 조회 시점에 데이터를 사용할 수 없는 경우, 핸들러 구현은 이를 0xFF와(과) 같은 정의된 채움 패턴으로 채워야 합니다([SWS_DM_02156]).
애플리케이션 및 진단 오류: 데이터 제공이 완전히 실패한 경우, 반환된 ara::core::Future에는 해당 진단 NRC 오류 코드(DiagUdsNrcErrc) 또는 애플리케이션별 오류(ApApplicationError)가 포함될 수 있습니다([SWS_DM_02156]).
소멸 시 위험: 소멸자는 스레드 안전하지 않으므로([SWS_DM_02151]), 병렬 호출이 진행되는 동안 또는 사전 StopOffer() 없이([SWS_DM_02153]) 객체를 파괴하면 정의되지 않은 동작이 발생합니다.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5f6f8ec51798출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용법 및 호출 컨텍스트
함수 <ExtendedDataRecordElementInterface>은 ara::core::InstanceSpecifier를 기반으로 확장 데이터 레코드 인터페이스용 DataElement을 생성하기 위한 생성자 역할을 합니다 [SWS_DM_02158]. 선언은 네임스페이스 <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>에 위치하며 헤더 파일 #include "<ExtendedDataRecordElementShortname>.h"의 포함을 필요로 합니다 AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.
instanceSpec (ara::core::InstanceSpecifier): AUTOSAR 모델 내 구체적인 서비스 인스턴스의 식별자.
concurrencyType (ara::diag::ConcurrencyType): 인터페이스가 스레드 안전(kConcurrent)으로 인스턴스화되는지 또는 비-스레드 안전(kNotConcurrent)으로 인스턴스화되는지 여부를 결정합니다.
동시성 및 오류 안전성
생성자 함수 자체는 noexcept으로 선언되어 있으며 thread-safe 및 exception safe로 명시되어 있습니다 [SWS_DM_02158]. Interpretation: 함수가 noexcept로 정의되어 있으므로, 모델링 및 초기화 오류는 C++-Exceptions를 통해서가 아니라 Adaptive 프레임워크에 정의된 Violations를 통해 신호될 것으로 보입니다 [SWS_DM_02158]. 질문 Q-9ce91764c3e8364e (열림)
오류 처리 및 모델 위반
잘못된 모델 구성 또는 유효하지 않은 식별자가 있는 경우 특정한 위반이 발생합니다[SWS_DM_02158]:
InstanceSpecifierMappingIntegrityViolation: 프로세스 컨텍스트에서 식별자를 확인할 수 없거나 PortPrototype을(를) 가리키지 않습니다.
PortInterfaceMappingViolation: DiagnosticExtendedDataRecordInterface(으)로 유형화된 PortPrototype이(가) DiagnosticDataPortMapping에 의해 참조되지 않습니다.
ProcessMappingViolation: 일치하는 InstanceRef이(가) 존재하지만, 런타임 프로세스에 대해 일치하는 모델링된 프로세스를 찾을 수 없습니다.
InstanceSpecifierAlreadyInUseViolation: 프로세스에서 이미 사용 중인 InstanceSpecifier(으)로 생성자가 호출되었습니다.
이 사용 지침은 AUTOSAR Adaptive R25-11 사양을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
thread-safe
Verletzungen (Violations)
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is typed by a pingViolation DiagnosticExtendedDataRecordInterface needs to be referenced by a DiagnosticDataPortMapping.
ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
instanceSpec
The specifier of a specific instance of a service.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
This Offer will enable the DM to forward request messages to this handler
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e44e4ef775f3출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 Offer은 Diagnostic Management Daemon(DM)에 의한 해당 핸들러 인스턴스로의 진단 요청 전달을 활성화합니다 [SWS_DM_02152]. 매개변수 없이 호출되며 noexcept으로 선언되고 exception-safe로 명시된 ara::core::Result<void>을 동기식으로 반환합니다 [SWS_DM_02152].
올바른 사용 및 오류 처리를 위해 다음과 같은 규정이 적용됩니다:
반환값 및 오류: 성공 시 결과에는 비어 있는 값이 포함됩니다. 이 핸들러 인스턴스에 대해 서비스가 이전에 이미 등록된 경우 호출은 실패하고 롤백 시맨틱과 함께 오류 코드 DiagOfferErrc::kAlreadyOffered을 반환합니다 [SWS_DM_02152]. 관련 오류 도메인도 이 상태에 대해 오류 코드 kAlreadyOffered를 정의합니다 [SWS_DM_00514][SWS_DM_00560].
동시성: 흔히 스레드 안전하지 않은 것으로 명시되는 다른 진단 핸들러(예: [SWS_DM_00557]에서와 같음)와 달리, 이 메서드는 명시적으로 thread-safe로 정의되어 있습니다 [SWS_DM_02152].
시스템 내 상호 작용: 인터페이스가 애플리케이션에 의해 아직 Offer을 통해 제공되지 않은 동안에는 DM이 컨텍스트에 따라 DoIP PowerMode 질의 시의 “Not ready” 상태 [SWS_DM_01525] 또는 그룹 식별자에 대한 대체값 [SWS_DM_01527]과 같은 정의된 표준값 또는 대체값으로 응답합니다. 또한 사양에서는 진단 제공 기능이 ara::diag에 고유하며 ara::com::Offer와 혼동해서는 안 된다는 점을 강조합니다 AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”.
Interpretation: Offer의 동기식 응답 동작은 후속 UDS 요청을 수신하기 전에 핸들러 등록이 완전히 완료되도록 보장할 것으로 보입니다. 질문 Q-e6b2916cf4887164 (열림)
이 텍스트는 AUTOSAR 사양 R25-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
• If successful: an ara::core::Result containing a ara:: core::Result::value_type • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: diag::DiagOfferErrc
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
Request a governed re-review of this record. The record is not changed immediately.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fe834745387e출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용법 및 의미론
순수 가상 메서드 Read은(는) 애플리케이션에서 ExtendedDataRecordElement의 데이터를 가져오기 위해 Diagnostic Management (DM)에 의해 호출됩니다([SWS_DM_02156]). DM은 가져온 데이터를 비휘발성 메모리에 영구 저장하므로 메서드는 항상 값을 제공해야 합니다. 호출 시점에 데이터를 사용할 수 없는 경우 구현 시 0xFF과(와) 같은 채움 패턴으로 채워야 합니다([SWS_DM_02156]).
실행은 비동기식으로 이루어지며, 성공 시 ReadOutput 구조체를 캡슐화하는 ara::core::Future을(를) 반환합니다([SWS_DM_02154]). 호출 시 다음 매개변수가 전달됩니다([SWS_DM_02156]):
metaInfo: 기본 진단 요청의 메타 정보를 전달합니다.
cancellationHandler: cancellationHandler.IsCanceled()을(를) 통한 중단 쿼리 및 cancellationHandler.SetNotifier()을(를) 통한 알림 함수 등록을 가능하게 합니다.
이 메서드는 예외 안전(exception safe)으로 명시되어 있습니다([SWS_DM_02156]). 스레드 안전성은 조건부이며 구현 정의(implementation defined)입니다([SWS_DM_02156]). 이는 확장 데이터 레코드(Extended-Data-Records)를 위한 Read을(를) 명시적으로 스레드 안전하지 않은 일반 데이터 요소([SWS_DM_00596]) 또는 데이터 식별자([SWS_DM_00640])의 읽기 연산과 구분 짓습니다.
이 텍스트는 릴리스 R25-11의 사양을 기반으로 AI 시스템에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
conditional Thread safety is implementation defined
Parameter (in)
Parameter
Beschreibung
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
• If successful: an ara::core::Future containing an ReadOutput object as per [SWS_DM_02154] • If unsuccessful: an ara::core::Future containing a corresponding DiagUdsNrcErrc or ApApplicationError.
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7a0fc3b7b561출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용법 및 호출 컨텍스트
함수 StopOffer은 헤더 #include "<ExtendedDataRecordElementShortname>.h"를 통해 포함되는 확장 데이터 레코드 인터페이스(<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>)의 인스턴스에서 호출됩니다 [SWS_DM_02153]. 호출은 동기식으로 이루어지며, 매개변수를 받지 않고 반환값이 없습니다(void).
메서드의 목적은 Diagnostic Management(DM)로부터의 수신 요청 메시지가 각 Extended-Data-Record 요소로 전달되는 것을 비활성화하는 것입니다 [SWS_DM_02153]. 실행 후 DM은 관련 핸들러로 더 이상 새로운 진단 요청을 전달하지 않습니다.
오류 처리 및 동시성
함수는 식별자 noexcept으로 선언되어 있으며 예외 안전(exception safe)으로 명시되어 있습니다 [SWS_DM_02153]. 페이로드에는 특정한 오류 코드, 반환값 또는 오류 모니터링 알림이 정의되어 있지 않으며, 오류 시 Exceptions가 발생하지 않습니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문