структура 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 |
Руководство пользователяСОЗДАНО ИИ
Служит структурой возврата для асинхронного запроса статуса операций SOVD к Diagnostic Management.
Служит структурой возврата для асинхронного запроса статуса операций SOVD к Diagnostic Management.
Структура данных GetStatusResponse служит контейнером возвращаемых данных для асинхронного запроса статуса операций SOVD ([SWS_DM_02200]). Она передается экземпляром SovdOperationExecution через ara::core::Future в Diagnostic Management, который извлекает из нее атрибуты status и parameters для ответа ASAM SOVD ([SWS_DM_02181]). Необходимым условием для предоставления является успешная валидация близости (Proximity), а также безошибочное асинхронное выполнение вызова.
Контекст
Структура 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 отправляет метод «Read the Status of an operation» с заданным
execution-idв 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), а также выходными параметрами (ParametersизDiagnosticSovdContentData) и предоставляет объект черезara::core::Future([SWS_DM_02181]). - DM извлекает данные из предоставленного
GetStatusResponse, устанавливает полеcapabilityвexecuteи отправляет тело ответа клиенту в соответствии с ASAM SOVD ([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»).
Данное руководство создано ИИ и основано на спецификации AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал