Предоставляет байты запроса (challenge) и период действия для проверки близости SOVD.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3ac9286258b1ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Предоставляет байты запроса (challenge) и период действия для проверки близости SOVD.
Структура данных ara::diag::SovdProximityChallengeType служит типом возвращаемого значения для SovdProximityChallenge::GetChallenge() и объединяет данные, необходимые для проверки близости SOVD [SWS_DM_01482]. Она предоставляет SOVD-клиенту последовательность байтов challenge в виде ara::core::Span, а также соответствующее время истечения срока действия valid_until[SWS_DM_01492]. Клиент должен решить challenge до наступления этого момента времени, в то время как ссылаемый буфер должен оставаться действительным в памяти на протяжении всего времени использования.
Контекст
Структура данных ara::diag::SovdProximityChallengeType служит в модуле Diagnostics (ara::diag) платформы AUTOSAR Adaptive Platform стандартизированным контейнером возвращаемого значения для проверок безопасности и близости (proximity) [SWS_DM_01482]. Конкретно структура принимает данные результата вызова метода SovdProximityChallenge::GetChallenge()AUTOSAR_AP_SWS_Diagnostics §8.56.3 «Struct: SovdProximityChallengeType». Основная задача этой структуры заключается в предоставлении SOVD-клиенту (Service-Oriented Vehicle Diagnostics) всех необходимых параметров, с помощью которых он может предоставить физическое подтверждение близости к автомобилю (proximity) [SWS_DM_01492].
При взаимодействии SovdProximityChallengeType действует как чистый объект передачи между предоставляющим диагностическим экземпляром SovdProximityChallenge и запрашивающим SOVD-клиентом [SWS_DM_01482]. Структура объединяет два фундаментальных атрибута: последовательность challenge challenge, а также абсолютный срок действия valid_untilAUTOSAR_AP_SWS_Diagnostics §8.56.3.1 «Public Member Variables». Интерпретация: сама структура не инкапсулирует бизнес-логику, а функционирует как чистый объект-значение Plain Old Data (POD) для передачи параметров без сохранения состояния. Вопрос Q-d2f4870d4cfaf724 (открытый)
Жизненный цикл
Жизненный цикл экземпляра SovdProximityChallengeType начинается с его создания вызывающим диагностическим интерфейсом SovdProximityChallenge::GetChallenge()AUTOSAR_AP_SWS_Diagnostics §8.56.3 «Struct: SovdProximityChallengeType». Структура обладает семантикой значений (Value Semantics), благодаря чему после вызова она передается вызывающей стороне путем копирования или перемещения (move).
Что касается отношений владения, в переменных-членах следует учитывать важное различие:
Элемент данных challenge определен как ara::core::Span<ara::core::Byte>[SWS_DM_01492]. ara::core::Span представляет собой невладеющее представление (non-owning view) непрерывной последовательности байтов в памяти. Предположительно, область памяти, на которую указывает этот span, должна управляться нижележащим диагностическим компонентом и оставаться действительной как минимум до тех пор, пока осуществляется доступ к span. Вопрос (открытый)
Элемент данных valid_until сохраняет абсолютную временную метку типа std::chrono::system_clock::time_point[SWS_DM_01491]. Эта временная метка напрямую определяет период функциональной валидности challenge в общей системе.
Уничтожение структуры происходит автоматически согласно стандартным правилам C++ при выходе из области видимости (scope) вызывающей стороны. Поскольку сама структура не выделяет динамическую память, уничтожение тривиально, однако требует учета времени жизни базового буфера данных диапазона [SWS_DM_01492].
Путь использования
Типовой путь использования в контексте проверки близости SOVD подразделяется на фиксированную последовательность запроса, анализа и предоставления подтверждения:
В качестве возвращаемого значения создается экземпляр SovdProximityChallengeType, заполненный сгенерированными байтами challenge и временем истечения срока действия [SWS_DM_01482].
Получатель считывает challenge как диапазон байтов, чтобы передать решаемую задачу SOVD-клиенту [SWS_DM_01492].
Параллельно с этим анализируется временная метка valid_until, чтобы задать временное окно для подтверждения [SWS_DM_01491].
SOVD-клиент решает challenge и передает подтверждение до наступления момента времени, обозначенного valid_until[SWS_DM_01491], [SWS_DM_01492].
При использовании SovdProximityChallengeType следует учитывать в особенности два критичных к ошибкам граничных условия:
Превышение времени ожидания (тайм-аут): если системное время достигает временной метки std::chrono::system_clock::time_point, указанной в valid_until[SWS_DM_01491], challenge теряет свою валидность. Интерпретация: попытка решения от SOVD-клиента, поступившая после истечения valid_until, вероятно, будет отклонена верифицирующим диагностическим экземпляром как недействительная, вследствие чего потребуется повторный вызов SovdProximityChallenge::GetChallenge(). Вопрос Q-ab9b44a73c189384 (открытый)
Недействительная ссылка на память (dangling span): поскольку challenge реализован как невладеющий ara::core::Span<ara::core::Byte>[SWS_DM_01492], доступ к байтам после уничтожения или перераспределения памяти базового буфера приводит к неопределенному поведению. Вызывающая сторона должна гарантировать, что ссылаемый буфер байтов сохраняется в памяти на протяжении всего времени использования span.
Данное руководство основано на спецификации AUTOSAR для Adaptive Platform (выпуск R25-11) и описывает структуру ara::diag::SovdProximityChallengeType как контейнер данных для проверок близости SOVD.
UML-диаграмма классов
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал