DEENESPTFRRUARHIKOZHNL

класс ara::diag::GenericRoutine

[SWS_DM_00605] Upstream: RS_Diag_04169, RS_Diag_04224

class GenericRoutine {...};

Generic Routine interface.

Header-Datei#include "ara/diag/generic_routine.h"
Forwarding-Header#include "ara/diag/diag_fwd.h"
Scopenamespace ara::diag

Руководство пользователяСОЗДАНО ИИ

Позволяет приложениям выполнять обобщенную обработку служб UDS RoutineControl с асинхронной передачей данных.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ed3ab770d945 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Позволяет приложениям выполнять обобщенную обработку служб UDS RoutineControl с асинхронной передачей данных.

Класс предоставляет обобщенный обработчик для служб UDS RoutineControl и перенаправляет запросы для различных идентификаторов рутин в адаптивные приложения [SWS_DM_00552]. Разработчики реализуют требуемые действия рутин через асинхронные методы, такие как Start, и активируют пересылку сообщений с помощью Offer [SWS_DM_00557]. Поскольку экземпляры нельзя ни копировать, ни перемещать, жизненный цикл и параллелизм должны точно управляться через конструктор и конфигурацию интерфейса. Текущие операции поддерживают совместную отмену, а также стандартизированные коды ошибок UDS.

Контекст

Класс ara::diag::GenericRoutine предоставляет обобщенный интерфейс для обработки диагностических рутин согласно ISO 14229-1 (UDS RoutineControl, служба 0x31) в AUTOSAR Adaptive Platform. Он функционирует как связующее звено между центральным Diagnostic Management (DM) и адаптивным приложением. Экземпляр этого класса привязывается к смоделированному прототипу порта типа DiagnosticRoutineGenericInterface, на который должна присутствовать ссылка через DiagnosticServiceGenericMapping в модели [SWS_DM_00552]. В отличие от типоспецифичных интерфейсов рутин, GenericRoutine передает сырые данные диагностического запроса в виде ara::core::Span<const std::uint8_t> вместе с конкретным идентификатором рутины (routineId) приложению [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. Благодаря этому один обработчик может гибко обслуживать несколько рутин.

Жизненный цикл

Экземпляры GenericRoutine привязаны к своему специфическому порту и не могут ни копироваться, ни перемещаться; конструкторы копирования и перемещения, а также операторы присваивания явно удалены [SWS_DM_01637], [SWS_DM_01638], [SWS_DM_01635], [SWS_DM_01636]. Инициализация осуществляется через конструктор с указанием ara::core::InstanceSpecifier, а также поведения параллелизма (ConcurrencyType: kConcurrent или kNotConcurrent) [SWS_DM_00552]. Этот параметр определяет, должны ли виртуальные методы выполнения быть реализованы потокобезопасным образом.

После создания DM изначально не пересылает сообщения обработчику. Пересылка активируется только после вызова Offer() [SWS_DM_00557]. С помощью StopOffer() пересылку можно снова деактивировать [SWS_DM_00558] до того, как экземпляр будет освобожден виртуальным деструктором ~GenericRoutine() [SWS_DM_00553]. Хотя конструктор является потокобезопасным, Offer(), StopOffer() и деструктор не являются потокобезопасными и требуют внешней синхронизации [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553].

generic_routine_lifecycle start instantiated Инстанцирован (не предложен) start->instantiated GenericRoutine(...) offered Angeboten (Weiterleitung aktiv) instantiated->offered Offer() end instantiated->end ~GenericRoutine() offered->instantiated StopOffer() offered->offered Start() / Stop() / RequestResults() offered->end ~GenericRoutine()

Диаграмма состояний: жизненный цикл и переходы состояний экземпляра GenericRoutine. Источники: [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553]

Путь использования

Для предоставления обобщенной рутины приложение наследуется от GenericRoutine и переопределяет необходимые виртуальные методы. Метод Start (подфункция UDS 0x01) является чисто виртуальным (pure virtual) и должен быть обязательно реализован [SWS_DM_00554]. Методы Stop (подфункция 0x02) [SWS_DM_00555] и RequestResults (подфункция 0x03) [SWS_DM_00556] представляют собой виртуальные методы; интерпретация: поскольку они не являются чисто виртуальными, их переопределение, вероятно, требуется только тогда, когда соответствующая рутина функционально поддерживает остановку или отдельный опрос результатов. Вопрос (открытый)

Стандартный рабочий процесс включает следующие фазы:

  • Создание экземпляра: создание производного обработчика со ссылкой на порт и режимом параллелизма [SWS_DM_00552].
  • Активация: вызов Offer() для предоставления доступа со стороны DM [SWS_DM_00557].
  • Выполнение: при входящих UDS-запросах DM вызывает Start, Stop или RequestResults. Приложение получает routineId, requestData, metaInfo, а также CancellationHandler и возвращает ara::core::Future<OperationOutput> [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. Действительность requestData гарантируется до тех пор, пока не будет выполнено соответствующее promise или не будет отменена операция [SWS_DM_00554].
  • Обработка отмены: приложение может проверить статус отмены через cancellationHandler.IsCanceled() или зарегистрировать обратный вызов через cancellationHandler.SetNotifier() [SWS_DM_00554]. Интерпретация: в случае отмены приложению, вероятно, следует досрочно завершить текущие фоновые действия и своевременно разрешить promise. Вопрос (открытый)
  • Деактивация: прекращение пересылки через StopOffer() [SWS_DM_00558] перед уничтожением объекта.
Типичная последовательность обработки обобщенной рутиныDiagnostic Manager (DM)GenericRoutine-HandlerAnwendungs-WorkerOffer()Result<void> (Erfolg)Use Case: Diagnoseanfrage RoutineControl (Start 0x01)Start(routineId, requestData, metaInfo, cancellationHandler)Запустить асинхронное выполнениеFuture<OperationOutput>altErfolgreicher AbschlussВыполнить Promise (OperationOutput)FehlerfallВыполнить Promise с UDS NRC (DiagUdsNrcErrc)Use Case: Dienst deregistrierenStopOffer()

Диаграмма последовательности: типичный процесс регистрации, выполнения рутины и отмены регистрации. Источники: [SWS_DM_00557], [SWS_DM_00554], [SWS_DM_00558]

Сценарии ошибок

Ошибки могут возникать как при конфигурации, так и во время выполнения и обработки:

  • Нарушения модели и сопоставления: если разрешение InstanceSpecifier в модели завершается сбоем, он не идентифицируется как PortPrototype или отсутствует подходящий DiagnosticServiceGenericMapping, платформа сообщает о нарушениях, таких как InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation или InstanceSpecifierAlreadyInUseViolation [SWS_DM_00552].
  • Ошибки предоставления: если Offer() вызывается, когда служба уже предлагается, вызов завершается сбоем и возвращает код ошибки DiagOfferErrc::kAlreadyOffered [SWS_DM_00557].
  • Диагностические коды ошибок (NRC): если операция рутины не может быть успешно завершена или запрос содержит недопустимые параметры, приложение выполняет возвращенный future не с OperationOutput, а с подходящим UDS Negative Response Code (NRC) из DiagUdsNrcErrc согласно ISO 14229-1 [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556].

Данное руководство по классу основано на спецификации AUTOSAR Adaptive Platform R25-11 и сформировано автоматически.

Карта членов

Конструкторы и деструктор

2

Операторы

1

Вложенные типы

1

Диаграмма классов

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__diag__GenericRoutine818 GenericRoutine + GenericRoutine() + operator=() + ~GenericRoutine() + Offer() + RequestResults() + Start() + Stop() + StopOffer()

Подробный вид

Выберите элемент в оглавлении.

Конструкторы и деструктор

GenericRoutine функция 3

Class for an GenericRoutine.

Перегрузки GenericRoutine 3
explicit GenericRoutine (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept; SWS_DM_00552
GenericRoutine (GenericRoutine &)=delete; SWS_DM_01637
GenericRoutine (GenericRoutine &&) noexcept=delete; SWS_DM_01638
~GenericRoutine функция

Destructor of class GenericRoutine .

virtual ~GenericRoutine () noexcept;

Методы

Offer функция

This Offer will enable the DM to forward request messages to this handler.

ara::core::Result< void > Offer () noexcept;
RequestResults функция

Called for RoutineControl with SubFunction RequestResults (0x03) request for this Diagnostic RoutineIdentifier.

virtual ara::core::Future< OperationOutput > RequestResults (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;
Start функция

Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutine Identifier.

virtual ara::core::Future< OperationOutput > Start (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;
Stop функция

Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutine Identifier.

virtual ara::core::Future< OperationOutput > Stop (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;
StopOffer функция

This StopOffer will disable the forwarding of request messages from DM.

void StopOffer () noexcept;

Операторы

operator= функция 2

GenericRoutine shall be a single not assignable instance.

Перегрузки = 2

Вложенные типы

OperationOutput класс

Документация методов

функция GenericRoutine [SWS_DM_00552] Upstream: RS_AP_00137, RS_Diag_04169, RS_Diag_04224, RS_AP_00170, RS_ AP_00171, RS_AP_00172, RS_AP_00173

explicit GenericRoutine (const ara::core::InstanceSpecifier &specifier, ConcurrencyType concurrencyType) noexcept;

Class for an GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitthread-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 DiagnosticRoutineGenericInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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)

ParameterBeschreibung
specifierInstanceSpecifier to a PortPrototype of a DiagnosticRoutineGenericInterface.
concurrencyTypeSpecifies 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.

Record
AUTOSAR/AP/record/SWS_DM_00552
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00552@rel:R25-11#a6f9d4ca
Content hash
a6f9d4ca
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00552
Status: valid/unmigrated Version: rel:R25-11#c9b9a91d Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00552@rel:R25-11#c9b9a91d
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#3b80ef8b2026-09-30
  • R19-11rel:R19-11#51e933df2026-10-14
  • R20-11rel:R20-11#0d85dbb92026-10-14
  • R21-11rel:R21-11#92d6b5382026-10-14
  • R22-11rel:R22-11#8bf360da2026-10-14
  • R23-11rel:R23-11#a1b6139f2026-10-14
  • R24-11rel:R24-11#96d2033b2026-10-14
  • R25-11rel:R25-11#c9b9a91d2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция GenericRoutine [SWS_DM_01637] Upstream: RS_AP_00147

GenericRoutine (GenericRoutine &)=delete;

GenericRoutine shall be a single not copy-able instance.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01637
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01637@rel:R25-11#758879a7
Content hash
758879a7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01637
Status: valid/unmigrated Version: rel:R25-11#9a0cb8e2 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01637@rel:R25-11#9a0cb8e2
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#14cfa5d22026-09-30
  • R23-11rel:R23-11#51890adb2026-10-14
  • R24-11rel:R24-11#3254577b2026-10-14
  • R25-11rel:R25-11#9a0cb8e22026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция GenericRoutine [SWS_DM_01638] Upstream: RS_AP_00147

GenericRoutine (GenericRoutine &&) noexcept=delete;

Move constructor of GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01638
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01638@rel:R25-11#6c2e9468
Content hash
6c2e9468
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01638
Status: valid/unmigrated Version: rel:R25-11#51079bf1 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01638@rel:R25-11#51079bf1
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#773a87742026-09-30
  • R23-11rel:R23-11#39b72a912026-10-14
  • R24-11rel:R24-11#51079bf12026-10-14
  • R25-11rel:R25-11#51079bf12026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция Offer [SWS_DM_00557] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04224

ara::core::Result< void > Offer () noexcept;

This Offer will enable the DM to forward request messages to this handler.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 36b2772d0811 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция Offer класса ara::diag::GenericRoutine позволяет Diagnostic Management (DM) пересылать входящие сообщения с диагностическими запросами для рутины зарегистрированному обработчику [SWS_DM_00557]. Вызов выполняется синхронно, не принимает параметров и возвращает ara::core::Result<void> [SWS_DM_00557]. Поскольку метод объявлен со спецификацией noexcept, он считается безопасным относительно исключений (exception safe) [SWS_DM_00557].

Обработка ошибок

Если предоставление завершается сбоем, метод возвращает отрицательный результат. Если рутина для данного экземпляра уже предлагалась ранее, метод возвращает специфический код ошибки DiagOfferErrc::kAlreadyOffered [SWS_DM_00557]. Для этого случая ошибки определена семантика отката, так что состояние остается неизменным [SWS_DM_00557]. Идентификатор ошибки kAlreadyOffered также закреплен во внутренних доменах ошибок для диагностических вызовов [SWS_DM_00514].

Параллелизм и ограничения

Интерфейс явно специфицирован как непотокобезопасный (not thread-safe) [SWS_DM_00557]. Если несколько потоков приложения обращаются к одному и тому же обработчику, вызов необходимо синхронизировать. Интерпретация: вызов, вероятно, обычно выполняется во время инициализации, поскольку до выполнения Offer запросы приниматься не могут. Вопрос Q-0c42f415bcb0de20 (открытый)

Взаимодействие

Предоставление функциональных возможностей через Offer представляет собой центральный паттерн в диагностическом кластере AUTOSAR Adaptive; аналогичным образом он используется также для типоспецифических интерфейсов рутин [SWS_DM_00594], универсальных сервисов UDS [SWS_DM_00619] и идентификаторов данных (Data Identifier) [SWS_DM_00638]. Несмотря на совпадение имен с ara::com, это представляет собой специфическую реализацию Diagnostic Management SWS Diagnostics §7.3.4.1.2 «Monitors».

Это указание по использованию составлено ИИ и опирается исключительно на спецификацию AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< void >Returns nothing or an error.

Fehler

FehlercodeBeschreibung
DiagOfferErrc::kAlreadyOfferedrollback_semantics The service is already offered.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00557
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00557@rel:R25-11#a528c6cb
Content hash
a528c6cb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00557
Status: valid/unmigrated Version: rel:R25-11#842b3bff Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00557@rel:R25-11#842b3bff
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#e128836f2026-09-30
  • R19-11rel:R19-11#2759f9062026-10-14
  • R20-11rel:R20-11#d89302952026-10-14
  • R21-11rel:R21-11#0eadb9e12026-10-14
  • R22-11rel:R22-11#eee8d1382026-10-14
  • R23-11rel:R23-11#292d5a312026-10-14
  • R24-11rel:R24-11#f26055882026-10-14
  • R25-11rel:R25-11#842b3bff2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция RequestResults [SWS_DM_00556] Upstream: RS_AP_00119, RS_Diag_04169, RS_Diag_04170, RS_Diag_04224

virtual ara::core::Future< OperationOutput > RequestResults (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Called for RoutineControl with SubFunction RequestResults (0x03) request for this Diagnostic RoutineIdentifier.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f4080ca4c8cd Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод RequestResults класса ara::diag::GenericRoutine вызывается экземпляром Diagnostic Server для типовой обработки запросов UDS RoutineControl службы 0x31 с подфункцией requestRoutineResults (0x03) для параметризованного идентификатора диагностической рутины ([SWS_DM_00575], [SWS_DM_00556]).

При вызове передаются идентификатор рутины routineId, специфичные для запроса метаданные metaInfo, а также входные данные requestData ([SWS_DM_00556]). Действительность диапазона requestData строго ограничена моментом, пока соответствующее Promise не будет выполнено или выполнение не будет прервано ([SWS_DM_00556]). Переданный cancellationHandler позволяет опрашивать статус отмены через IsCanceled, а также регистрировать функцию уведомления через SetNotifier ([SWS_DM_00556]).

Результат возвращается асинхронно как ara::core::Future<OperationOutput> ([SWS_DM_00556]). Интерпретация: предоставление выходных данных, как правило, должно осуществляться асинхронно через ara::core::Promise на стороне приложения. Вопрос Q-f50c8509d7515e3f (открытый) В случае успеха future предоставляет OperationOutput, тогда как в случае ошибки передается подходящий UDS NRC согласно ISO 14229-1 через DiagUdsNrcErrc ([SWS_DM_00556]). Функция объявлена как noexcept и считается исключениебезопасной ([SWS_DM_00556]).

Что касается параллелизма, потокобезопасность является условной (conditional): должна ли реализация метода быть потокобезопасной, жестко управляется через ConcurrencyType, переданный в конструктор ([SWS_DM_00556]).

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier), Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00556
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00556@rel:R25-11#0b45bbec
Content hash
0b45bbec
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00556
Status: valid/unmigrated Version: rel:R25-11#53fd1ae4 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00556@rel:R25-11#53fd1ae4
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#de1ddb392026-09-30
  • R19-11rel:R19-11#20a566642026-10-14
  • R20-11rel:R20-11#d68da6d72026-10-14
  • R21-11rel:R21-11#b76c6ec72026-10-14
  • R22-11rel:R22-11#5b49da632026-10-14
  • R23-11rel:R23-11#be4d5ce62026-10-14
  • R24-11rel:R24-11#307b0f5f2026-10-14
  • R25-11rel:R25-11#53fd1ae42026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция Start [SWS_DM_00554] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04170, RS_ Diag_04224

virtual ara::core::Future< OperationOutput > Start (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept=0;

Called for RoutineControl with SubFunction Start (0x01) request for this DiagnosticRoutine Identifier.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9e819a027940 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Start класса ara::diag::GenericRoutine вызывается, как только поступает диагностический запрос для RoutineControl с субфункцией Start (0x01) для специфицированного routineId [SWS_DM_00554]. В отличие от типизированного интерфейса рутины согласно [SWS_DM_00591], этот универсальный интерфейс принимает необработанные данные сообщения запроса в виде диапазона байтов.

Для реализации действуют следующие требования и свойства интерфейса:

  • Контекст вызова и параметры: Наряду с routineId и метаданными (metaInfo) передается параметр requestData. Время жизни данных запроса остается действительным до тех пор, пока promise не будет выполнен или обработка не будет отменена со стороны cancellationHandler [SWS_DM_00554].
  • Обработка отмены: Рутина может запросить текущий статус отмены с помощью cancellationHandler.IsCanceled() или зарегистрировать через cancellationHandler.SetNotifier() функцию-оповеститель, которая вызывается при отмене сеанса взаимодействия [SWS_DM_00554].
  • Асинхронная семантика: Обработка выполняется неблокирующим образом через ara::core::Future<OperationOutput>. При успешном выполнении OperationOutput предоставляет полезные данные для положительного ответа [SWS_DM_00554].
  • Обработка ошибок: Если выполнение завершается неудачно, future необходимо завершить с подходящим Negative Response Code (NRC) согласно ISO 14229-1 с использованием DiagUdsNrcErrc [SWS_DM_00554].
  • Конкурентность: Функция объявлена исключениебезопасной (noexcept). Должно ли предоставление быть потокобезопасным, определяет переданный в конструктор ConcurrencyType [SWS_DM_00554].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaInfo of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for a negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00554
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00554@rel:R25-11#ba05666f
Content hash
ba05666f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00554
Status: valid/unmigrated Version: rel:R25-11#632d4829 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00554@rel:R25-11#632d4829
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#a9ad92122026-09-30
  • R19-11rel:R19-11#f6d47d602026-10-14
  • R20-11rel:R20-11#ba587eba2026-10-14
  • R21-11rel:R21-11#5f3710452026-10-14
  • R22-11rel:R22-11#927f1c032026-10-14
  • R23-11rel:R23-11#362a0cc42026-10-14
  • R24-11rel:R24-11#a07e64292026-10-14
  • R25-11rel:R25-11#632d48292026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция Stop [SWS_DM_00555] Upstream: RS_AP_00119, RS_AP_00138, RS_Diag_04169, RS_Diag_04170, RS_ Diag_04224

virtual ara::core::Future< OperationOutput > Stop (std::uint16_t routineId, ara::core::Span< const std::uint8_t > requestData, const MetaInfo &metaInfo, CancellationHandler cancellationHandler) noexcept;

Called for RoutineControl with SubFunction Stop (0x02) request for this DiagnosticRoutine Identifier.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d8c6cb55284b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Метод Stop вызывается при UDS-запросе RoutineControl с субфункцией Stop (0x02) для соответствующей универсальной диагностической процедуры [SWS_DM_00555]. В отличие от типизированных интерфейсов процедур [SWS_DM_00592], он принимает идентификатор процедуры routineId, а также данные запроса в виде диапазона необработанных данных requestData [SWS_DM_00555].

При использовании необходимо соблюдать следующие правила для параметров и последовательности выполнения [SWS_DM_00555]:

  • Время жизни диапазона входных данных: область памяти requestData остается действительной до тех пор, пока соответствующий Promise не будет выполнен или выполнение не будет отменено через cancellationHandler [SWS_DM_00555].
  • Обработка отмены: приложение может через cancellationHandler.IsCanceled() проверить, была ли отменена текущая диагностическая сессия, или через cancellationHandler.SetNotifier зарегистрировать функцию уведомления, срабатывающую при отмене [SWS_DM_00555].
  • Асинхронность и возврат: функция работает асинхронно и возвращает ara::core::Future<OperationOutput>, который в случае успеха содержит выходные данные для положительного UDS-ответа [SWS_DM_00555].

Обработка ошибок осуществляется через отрицательные диагностические возвращаемые значения: если остановка процедуры не удалась, фьючер необходимо завершить с подходящим кодом ошибки UDS-NRC согласно ISO 14229-1 через DiagUdsNrcErrc [SWS_DM_00555].

В отношении параллелизма метод специфицирован как noexcept и бессбойный. Должна ли конкретная реализация быть потокобезопасной, зависит от ConcurrencyType, переданного в конструкторе при инстанцировании [SWS_DM_00555].

Это указание по использованию основано исключительно на спецификациях релиза Adaptive AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I1)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitconditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor

Parameter (in)

ParameterBeschreibung
routineIdthe corresponding RoutineIdentifier
requestDataContent of request message (without RoutineIdentifier). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfoMetaData of the request.
cancellationHandlerThis 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.

Rückgabewert

TypBeschreibung
ara::core::Future<OperationOutput >A Future with either OperationOutput (for a positive response message) or an UDS NRC value (for an negative response message).

Fehler

FehlercodeBeschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00555
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00555@rel:R25-11#6b1b83b0
Content hash
6b1b83b0
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00555
Status: valid/unmigrated Version: rel:R25-11#56c0affc Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00555@rel:R25-11#56c0affc
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#04e6a8622026-09-30
  • R19-11rel:R19-11#23fc2c642026-10-14
  • R20-11rel:R20-11#3e55de712026-10-14
  • R21-11rel:R21-11#b34b7e672026-10-14
  • R22-11rel:R22-11#dbc3abf42026-10-14
  • R23-11rel:R23-11#146ebc662026-10-14
  • R24-11rel:R24-11#702a311c2026-10-14
  • R25-11rel:R25-11#56c0affc2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция StopOffer [SWS_DM_00558] Upstream: RS_Diag_04169, RS_Diag_04224

void StopOffer () noexcept;

This StopOffer will disable the forwarding of request messages from DM.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 73588f5f0b57 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Метод ara::diag::GenericRoutine::StopOffer деактивирует пересылку входящих диагностических запросов Diagnostic Management (DM) соответствующему экземпляру рутины [SWS_DM_00558]. Функция имеет сигнатуру void StopOffer() noexcept;, не принимает параметров и не возвращает значения [SWS_DM_00558]. Вызов обрабатывается синхронно и сигнализирует DM, что рутина с этого момента больше не принимает запросы.

Обработка ошибок

Операция специфицирована как exception safe и объявлена с noexcept [SWS_DM_00558]. Коды ошибок или исключения C++ при выполнении не возникают. Специфические сообщения в экземпляры журнала разработки или памяти ошибок (DET/DEM) для этого интерфейса в модуле диагностики не предусмотрены.

Параллелизм и ограничения

В отношении многопоточного поведения метод обозначен как not thread-safe [SWS_DM_00558]. Поэтому параллельные вызовы на одном и том же экземпляре ara::diag::GenericRoutine должны синхронизироваться на стороне приложения. Интерпретация: вызов, вероятно, происходит прежде всего тогда, когда рутина временно инактивируется или работа приложения контролируемо завершается после того, как ранее был выполнен вызов предоставления. Вопрос Q-e110ce01110699e3 (открытый)

Взаимодействие

Именование концептуально следует предоставлению сервисов (service offering) из ara::com, однако представляет собой самостоятельную реализацию в рамках ara::diag и не должно смешиваться с предложениями связи (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). Тот же паттерн предоставления для деактивации пересылки запросов в масштабах всего модуля используют и другие диагностические классы, такие как ara::diag::GenericUDSService [SWS_DM_00620], ara::diag::GenericDataIdentifier [SWS_DM_00639], интерфейсы рутин [SWS_DM_00595], а также ara::diag::Monitor [SWS_DM_01089].

Этот текст был создан ИИ и основан исключительно на материалах спецификации AUTOSAR R25-11.

Руководство разработчика реализации в подготовке (сложность I2)

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
None

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00558
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00558@rel:R25-11#f9ebb5eb
Content hash
f9ebb5eb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00558
Status: valid/unmigrated Version: rel:R25-11#39feb507 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00558@rel:R25-11#39feb507
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#f2c61aa62026-09-30
  • R19-11rel:R19-11#33f222af2026-10-14
  • R20-11rel:R20-11#ec8bc9632026-10-14
  • R21-11rel:R21-11#c0037e202026-10-14
  • R22-11rel:R22-11#b08db6972026-10-14
  • R23-11rel:R23-11#3cfad6d22026-10-14
  • R24-11rel:R24-11#ec651f742026-10-14
  • R25-11rel:R25-11#39feb5072026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция operator= [SWS_DM_01635] Upstream: RS_AP_00147

GenericRoutine & operator= (GenericRoutine &)=delete;

GenericRoutine shall be a single not assignable instance.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01635
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01635@rel:R25-11#5324dbb4
Content hash
5324dbb4
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01635
Status: valid/unmigrated Version: rel:R25-11#3028b007 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01635@rel:R25-11#3028b007
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#fea4feed2026-09-30
  • R23-11rel:R23-11#98987c072026-10-14
  • R24-11rel:R24-11#3028b0072026-10-14
  • R25-11rel:R25-11#3028b0072026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция operator= [SWS_DM_01636] Upstream: RS_AP_00147

GenericRoutine & operator= (GenericRoutine &&)=delete;

Move assignment operator of GenericRoutine.

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_01636
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01636@rel:R25-11#1de7720e
Content hash
1de7720e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01636
Status: valid/unmigrated Version: rel:R25-11#881d1dd4 Versionshistorie & Revisions (1 transition, 4 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_01636@rel:R25-11#881d1dd4
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#24fc63642026-09-30
  • R23-11rel:R23-11#98cccf9a2026-10-14
  • R24-11rel:R24-11#881d1dd42026-10-14
  • R25-11rel:R25-11#881d1dd42026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

функция ~GenericRoutine [SWS_DM_00553] Upstream: RS_AP_00134, RS_Diag_04169, RS_Diag_04224

virtual ~GenericRoutine () noexcept;

Destructor of class GenericRoutine .

Header-Datei#include "ara/diag/generic_routine.h"
Scopeclass ara::diag::GenericRoutine
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_DM_00553
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00553@rel:R25-11#e590b635
Content hash
e590b635
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00553
Status: valid/unmigrated Version: rel:R25-11#a6efdb40 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_DM_00553@rel:R25-11#a6efdb40
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#c99137522026-09-30
  • R19-11rel:R19-11#b7ba28462026-10-14
  • R20-11rel:R20-11#dbe0f1bb2026-10-14
  • R21-11rel:R21-11#dbe0f1bb2026-10-14
  • R22-11rel:R22-11#510ac3412026-10-14
  • R23-11rel:R23-11#50b0d8172026-10-14
  • R24-11rel:R24-11#a6efdb402026-10-14
  • R25-11rel:R25-11#a6efdb402026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill