응용 프로그램 측에서 SOVD 진단 데이터를 읽고 쓰기 위한 일반 인터페이스 역할을 합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e0fb00ce3377출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
응용 프로그램 측에서 SOVD 진단 데이터를 읽고 쓰기 위한 일반 인터페이스 역할을 합니다.
클래스 ara::diag::GenericDiagnosticSovdContent은 Adaptive 응용 프로그램이 AUTOSAR 시스템의 SOVD 리소스를 연결할 수 있도록 일반 인터페이스를 제공합니다 [SWS_DM_02186]. 인스턴스화 후 응용 프로그램은 Offer()를 통해 진단 요청 수신을 활성화하며, 이후 Diagnostic Management는 수신된 읽기 및 쓰기 접근을 비동기식으로 Read() 및 Write()로 전달합니다 [SWS_DM_02193]. 종료하기 전에 StopOffer()을 사용하여 제공을 비활성화해야 하며, 진행 중인 접근은 전달된 취소 핸들러를 준수해야 합니다.
컨텍스트
클래스 ara::diag::GenericDiagnosticSovdContent은 Adaptive 응용 프로그램이 ASAM SOVD에 따라 서비스 지향 차량 진단(SOVD)을 위한 데이터 리소스를 제공하고 처리하는 데 사용하는 일반 프로그래밍 인터페이스를 제공합니다 [SWS_DM_02186]. 일반적인 진단 시나리오에는 외부 SOVD 클라이언트, Diagnostic Management (DM), Adaptive 응용 프로그램의 응용 프로그램별 핸들러라는 세 가지 주요 구성요소가 참여합니다.
컨텍스트 다이어그램: 외부 SOVD 클라이언트, Diagnostic Management 및 응용 프로그램별 핸들러 간의 GenericDiagnosticSovdContent 임베딩. 출처: [SWS_DM_01431], [SWS_DM_01432], [SWS_DM_02186].
수명 주기
인스턴스화는 DiagnosticDataIdentifierGenericInterface의 PortPrototype을 가리키는 ara::core::InstanceSpecifier과 SovdContentConcurrencyType 타입의 동시성 모드를 지정하여 생성자를 통해 수행됩니다 [SWS_DM_02187]. 이 클래스는 스레드 안전하고 예외에 안전하도록 설계되었습니다 [SWS_DM_02187].
생성 후 인스턴스는 비제공 상태에 있습니다. Offer()을 호출해야만 DM이 수신된 진단 요청을 인스턴스로 전달하도록 승인됩니다 [SWS_DM_02193]. 종료 전 또는 서비스 종료 시 StopOffer()를 통해 전달 권한이 다시 취소됩니다 [SWS_DM_02194].
사용 경로
정상적인 흐름에는 서비스 활성화, 비동기 요청 수락 및 최종 등록 취소가 포함됩니다:
응용 프로그램은 GenericDiagnosticSovdContent 구현체를 인스턴스화하고 Offer()을 통해 DM에 등록합니다 [SWS_DM_02193].
시퀀스 다이어그램: 서비스 등록, 비동기 읽기 폴링 및 서비스 종료 흐름. 출처: [SWS_DM_01432], [SWS_DM_02191], [SWS_DM_02193], [SWS_DM_02194].
오류 시나리오
서비스가 이미 제공되고 있는 상태에서 Offer()을 호출하면 오류 코드 DiagOfferErrc::kAlreadyOffered과 함께 작업이 실패합니다 [SWS_DM_02193].
Read()에서의 데이터 확인 또는 Write()에서의 쓰기 중 응용 프로그램별 오류가 발생하면 반환된 ara::core::Future이 해당 SOVD 오류로 충족되며 [SWS_DM_02191], [SWS_DM_02192], 이후 DM은 클라이언트에 부정 SOVD 응답을 전송합니다.
This Offer will enable the DM to forward request messages to this handler.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5a32b6fc61be출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
ara::diag::GenericDiagnosticSovdContent::Offer 메서드는 수신 요청 메시지(request messages)를 핸들러 인스턴스로 전달하도록 Diagnostic Management(DM)를 활성화합니다[SWS_DM_02193]. 호출은 동기식으로 수행되고 매개변수를 받지 않으며 반환 유형 ara::core::Result<void>을(를) 통해 결과를 알립니다[SWS_DM_02193]. 긍정적인 결과는 DM에 서비스가 성공적으로 등록되었음을 확인합니다[SWS_DM_02193].
오류 처리
등록에 실패하면 메서드는 오류 코드가 포함된 ara::core::Result을(를) 반환합니다[SWS_DM_02193]:
DiagOfferErrc::kAlreadyOffered: 서비스가 이전에 이미 제공된 경우 발생하며, 이때 롤백 시맨틱이 적용됩니다[SWS_DM_02193]. 이 오류 코드는 DiagErrc[SWS_DM_00514] 및 DiagReportingErrc[SWS_DM_00560]의 일반 진단 상태 kAlreadyOffered에 해당합니다.
동시성 및 제약사항
이 함수는 noexcept 및 exception safe(으)로 지정되어 있습니다[SWS_DM_02193]. 또한 명시적으로 thread-safe(으)로 분류되어 있습니다[SWS_DM_02193]. 이는 각각 not thread-safe(으)로 선언된 GenericRoutine::Offer[SWS_DM_00557], GenericUDSService::Offer[SWS_DM_00619] 또는 CommunicationControl::Offer[SWS_DM_00809]와(과) 같은 DM의 다른 대부분의 Offer 메서드와 GenericDiagnosticSovdContent::Offer을(를) 크게 구별 짓습니다.
Called for "Read Single Data Value request" for the specified SOVD Content.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e27f0077c84c출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용법 및 호출 시맨틱
ara::diag::GenericDiagnosticSovdContent 클래스의 순수 가상 메서드 Read은(는) 지정된 SOVD 콘텐츠 [SWS_DM_02191]에 대한 “Read Single Data Value” 유형의 요청을 처리하는 데 사용됩니다. Diagnostic Manager가 호출할 때 콘텐츠 식별자 sovd_content_name, meta_info을(를) 통한 컨텍스트 관련 진단 정보 및 cancellation_handler이(가) 전달됩니다[SWS_DM_02191]. 애플리케이션은 cancellation_handler을(를) 통해 진행 중인 요청이 취소되었는지 확인할 수 있습니다. 이 인스턴스는 해당 연산의 수명을 초과하여 저장되거나 참조되어서는 안 됩니다[SWS_DM_02191]. 데이터 제공은 반환값 ara::core::Future<DiagnosticSovdContentData>을(를) 통해 비동기식으로 수행되며, 이는 성공 시 추상 SOVD 콘텐츠 데이터를 캡슐화합니다[SWS_DM_02191].
오류 처리
이 메서드는 noexcept 및 exception safe(으)로 지정되어 있으므로, 발생하는 오류를 C++ 예외를 통해 보고해서는 안 됩니다[SWS_DM_02191]. 대신 오류 발생 시 ara::core::Future을(를) 통해 해당 SOVD Error이(가) 반환되며, 이는 부정 응답 메시지로 변환됩니다[SWS_DM_02191]. 인터페이스가 애플리케이션에 의해 아직 또는 더 이상 offer()(으)로 제공되지 않는 경우, Diagnostic Manager는 수신된 서비스 요청에 대해 부정 응답 코드 NRC 0x94(ResourceTemporarilyNotAvailable)(으)로 응답합니다[SWS_DM_01257].
동시성 및 상호 작용
인터페이스 함수는 thread-safe(으)로 정의됩니다[SWS_DM_02191]. Diagnostic Manager에 의해 읽기 및 쓰기 접근이 동시에 호출될 수 있는지 여부는 ara::diag::SovdContentConcurrencyType 구조체의 구성 변수 readWrite을(를) 통해 결정됩니다[SWS_DM_02185]. 이것이 kConcurrent(으)로 설정된 경우에만 Read 및 Write의 호출이 동시적으로 발생하며, 기본값 kNotConcurrent은(는) 동시 접근을 배제합니다[SWS_DM_02185].
This StopOffer will disable the forwarding of request messages from DM.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a2e6fc88edb0출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ara::diag::GenericDiagnosticSovdContent::StopOffer 메서드는 Diagnostic Management(DM)에 대한 진단 콘텐츠 제공을 종료하고 호출 시점부터 수신 요청 메시지의 전달을 차단합니다[SWS_DM_02194]. 이 함수는 헤더 파일 ara/diag/generic_diagnostic_sovd_content.h을(를) 필요로 하고, 매개변수를 기대하지 않으며, 반환값을 제공하지 않습니다[SWS_DM_02194].
오류 처리와 관련하여 이 연산은 noexcept(으)로 선언되어 있으며 완전한 예외 안전(exception safe)으로 간주됩니다[SWS_DM_02194]. 오류 코드나 반환 상태가 전달되지 않으며, 호출 실패는 API 설계에서 고려되지 않았습니다.
동시성 영역에서 이 메서드는 명시적으로 스레드 안전(thread-safe)으로 지정되어 있다는 점이 특징입니다[SWS_DM_02194]. 이는 GenericUDSService[SWS_DM_00620], GenericRoutine[SWS_DM_00558] 또는 CommunicationControl[SWS_DM_00810]에서와 같이 StopOffer이(가) 스레드 안전하지 않은 것으로 정의된 다른 많은 진단 인터페이스와 비교할 때 중요한 고유 기능입니다.
Called for "Write a Data Value" request for the specified SOVD Content.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 545b938dce05출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ara::diag::GenericDiagnosticSovdContent 클래스의 [SWS_DM_02192] 메서드는 ASAM SOVD를 통해 진단 요소에 대한 “Write a data resource” 메서드가 수신되는 즉시 Diagnostic Management(DM)에 의해 호출됩니다[SWS_DM_02166]. 이 쓰기 연산의 제공은 선택 사항이며 구성 DiagnosticSovdData.DiagnosticSovdMethod.put의 존재를 전제로 합니다[SWS_DM_01431].
sovd_abstract_content_data: 요소 이름과 변환된 값으로 구성된 추상 페이로드(DiagnosticSovdContentData)입니다[SWS_DM_02166]. 이 데이터는 Promise가 충족되거나 취소 핸들러를 통해 처리가 중단될 때까지 유효하게 유지됩니다.
meta_info: 요청 컨텍스트에 대한 추가 메타 정보입니다.
cancellation_handler: 진행 중인 연산의 취소를 감지하는 데 사용되며, 함수의 수명을 초과하여 저장되거나 참조되어서는 안 됩니다.
이 함수는 noexcept(으)로 지정되어 예외에 안전한 것으로 간주되며, 성공 시 void를, 부정적인 피드백의 경우 SOVD 오류를 전달하는 ara::core::Future<void>을(를) 반환합니다[SWS_DM_02192]. 이 메서드는 스레드 안전한 것으로 선언되었습니다[SWS_DM_02192]. DM이 읽기 및 쓰기 메서드를 동시 실행할 수 있는지 여부는 ara::diag::SovdContentConcurrencyType의 매개변수 readWrite에서 제어합니다[SWS_DM_02185].
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문