구조체 ara::diag::SovdOperationExecution::GetStatusResponse
struct GetStatusResponse {...};
Get Status response .
| Header-Datei | #include "ara/diag/generic_diagnostic_sovd_operation.h" |
|---|---|
| Forwarding-Header | #include "ara/diag/diag_fwd.h" |
| Scope | class ara::diag::SovdOperationExecution |
사용자 가이드AI 생성
Diagnostic Management에 대한 SOVD 작업의 비동기 상태 조회를 위한 반환 구조체 역할을 합니다.
Diagnostic Management에 대한 SOVD 작업의 비동기 상태 조회를 위한 반환 구조체 역할을 합니다.
데이터 구조 GetStatusResponse은 SOVD 오퍼레이션의 비동기 상태 쿼리([SWS_DM_02200])를 위한 반환 컨테이너 역할을 합니다. 이는 SovdOperationExecution 인스턴스에 의해 ara::core::Future을 통해 Diagnostic Management로 전달되며, Diagnostic Management는 이로부터 ASAM SOVD 응답을 위한 속성 status 및 parameters를 도출합니다([SWS_DM_02181]). 제공을 위한 전제 조건은 성공적인 근접성 검증(Proximity Validation) 및 호출의 오류 없는 비동기 실행입니다.
컨텍스트
구조체 ara::diag::SovdOperationExecution::GetStatusResponse은 Adaptive Platform([SWS_DM_02200])의 응답 데이터 구조로서, SOVD(Service-Oriented Vehicle Diagnostics) 오퍼레이션의 상태 쿼리 시 표준화된 반환 컨테이너로 사용됩니다(AUTOSAR_AP_SWS_Diagnostics §8.62.6 “Struct: GetStatusResponse”). diag 모듈 내에서 이 구조체는 진단 데몬인 Diagnostic Management(DM)와 SovdOperationExecution 인터페이스를 구현하는 애플리케이션별 진단 서비스 간의 인터페이스 요소 역할을 합니다. Diagnostic Management에 오퍼레이션 상태 쿼리를 위한 외부 SOVD 호출(“Read the Status of an operation”)이 수신되면, DM은 이 요청을 담당 인스턴스로 전달합니다([SWS_DM_02180]). GetStatusResponse은 판별된 상태 및 결과 데이터를 캡슐화하며, DM이 ASAM SOVD에 따른 표준 준수 응답을 구성할 수 있도록 지원합니다([SWS_DM_02181]).
수명 주기
데이터 구조(struct GetStatusResponse)로서 인스턴스는 일반적으로 가상 메서드 SovdOperationExecution::GetStatus이 처리를 위해 호출되는 즉시 서비스 애플리케이션의 컨텍스트에서 인스턴스화됩니다. 객체는 비동기 메서드 시그니처가 반환 타입으로 규정하는 ara::core::Future<GetStatusResponse>에 값으로 임베드됩니다(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”). 해석: GetStatusResponse는 수명 주기가 연관된 Future 및 Promise 쌍에 밀접하게 결합된 순수 값 전달 객체로 설계되었을 것으로 추정됩니다. 질문 Q-e5e2b31a97df0af4 (열림) 애플리케이션별 판별이 완료되고 Future이 충족되면 데이터 접근 권한이 호출하는 Diagnostic Management로 넘어갑니다. SOVD 응답 구성을 위한 속성을 판독한 후([SWS_DM_02181]) 구조체의 수명이 종료되고 정상적으로 소멸됩니다.
사용 경로
오퍼레이션 상태 쿼리 시의 정규 흐름에는 여러 컴포넌트의 상호 작용이 포함됩니다:
- 외부 SOVD 클라이언트가 특정
execution-id을 포함한 “Read the Status of an operation” 메서드를 DM으로 전송합니다([SWS_DM_02180]). - DM은 요청을 검사하고 필요 시 Proximity Challenge의 유효성 검증을 수행합니다([SWS_DM_02173]).
- 성공적인 검사 후 DM은
execution-id을 기반으로 해당SovdOperationExecution인스턴스를 어드레싱하고([SWS_DM_02177]) 해당 메서드GetStatus(meta_info, cancellation_handler)을 호출합니다([SWS_DM_02180], AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”). - 애플리케이션은 실행 상태를 판별하고,
GetStatusResponse을 상태 값(status) 및 출력 매개변수(DiagnosticSovdContentData의Parameters)로 채우며,ara::core::Future를 통해 객체를 제공합니다([SWS_DM_02181]). - DM은 제공된
GetStatusResponse에서 데이터를 추출하고,capability필드를execute로 설정하며, ASAM SOVD에 따라 Response Body를 클라이언트로 반환합니다([SWS_DM_02181]).
시퀀스 다이어그램: GetStatusResponse를 통한 오퍼레이션 상태 쿼리 시의 상호 작용. 출처: [SWS_DM_02180], [SWS_DM_02181], AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”, [SWS_DM_02173]
오류 시나리오
GetStatusResponse의 처리 및 성공적인 교환은 여러 사전 조건과 오류 경로에 따라 달라집니다:
- 요구되는 Proximity Challenge가 실패하는 경우([SWS_DM_02173]), DM은 메서드
GetStatus을 아예 호출하지 않으며([SWS_DM_02180]), 이 경우GetStatusResponse의 인스턴스화 또는 평가는 완전히 생략됩니다. - 메서드
SovdOperationExecution::GetStatus은noexcept로 선언되어 있습니다(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”). 따라서 상태 판별 시의 오류는 C++ 예외를 통해 전파되어서는 안 되며,ara::core::Future의 오류 경로를 통해 비동기적으로 신호되어야 합니다. - 메서드 실행이 성공하지 못하면(“succeeded” 조건 미충족), 정규 SOVD 성공 응답의 구성이 수행되지 않습니다([SWS_DM_02181]).
- 전달된
ara::diag::CancellationHandler객체를 통해 실행 중인 오퍼레이션에 중단 요청을 알릴 수 있습니다(AUTOSAR_AP_SWS_Diagnostics §8.62 “GetStatus”).
이 가이드는 AI에 의해 작성되었으며 AUTOSAR 사양 R25-11을 기반으로 합니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문