DEENESPTFRRUARHIKOZHNL

classe 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

Guia do utilizadorGERADO POR IA

Permite que aplicações realizem o processamento genérico de serviços UDS RoutineControl com transferência assíncrona de dados.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: ed3ab770d945 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite que aplicações realizem o processamento genérico de serviços UDS RoutineControl com transferência assíncrona de dados.

A classe disponibiliza um handler genérico para serviços UDS RoutineControl e encaminha solicitações para diferentes identificadores de rotina a aplicações adaptativas [SWS_DM_00552]. Os desenvolvedores implementam as ações de rotina requeridas por meio de métodos assíncronos como Start e ativam o encaminhamento de mensagens através de Offer [SWS_DM_00557]. Como as instâncias não podem ser copiadas nem movidas, o ciclo de vida e a simultaneidade devem ser controlados de forma exata por meio do construtor e da configuração da interface. As operações em andamento suportam cancelamentos cooperativos bem como códigos de erro UDS padronizados.

Contexto

A classe ara::diag::GenericRoutine disponibiliza a interface genérica para o processamento de rotinas de diagnóstico conforme a ISO 14229-1 (UDS RoutineControl, serviço 0x31) na AUTOSAR Adaptive Platform. Ela atua como elemento de ligação entre o Diagnostic Management (DM) central e a aplicação adaptativa. Uma instância dessa classe é vinculada a um protótipo de porta modelado do tipo DiagnosticRoutineGenericInterface, o qual deve ser referenciado no modelo por meio de um DiagnosticServiceGenericMapping [SWS_DM_00552]. Diferentemente de interfaces de rotina específicas de tipo, GenericRoutine transfere os dados brutos da solicitação de diagnóstico como ara::core::Span<const std::uint8_t> juntamente com o identificador de rotina concreto (routineId) para a aplicação [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. Com isso, um único handler pode atender a múltiplas rotinas de forma flexível.

Ciclo de vida

As instâncias de GenericRoutine são vinculadas à sua porta específica e não devem ser copiadas nem movidas; os construtores de cópia e de movimento, bem como os operadores de atribuição, estão explicitamente excluídos [SWS_DM_01637], [SWS_DM_01638], [SWS_DM_01635], [SWS_DM_01636]. A inicialização ocorre por meio do construtor, com a indicação de ara::core::InstanceSpecifier bem como do comportamento de simultaneidade (ConcurrencyType: kConcurrent ou kNotConcurrent) [SWS_DM_00552]. Esse parâmetro define se os métodos virtuais de execução precisam ser implementados de forma thread-safe.

Após a criação, o DM inicialmente não encaminha mensagens para o handler. O encaminhamento é ativado apenas pela chamada de Offer() [SWS_DM_00557]. Por meio de StopOffer(), o encaminhamento pode ser desativado novamente [SWS_DM_00558], antes que a instância seja liberada pelo destrutor virtual ~GenericRoutine() [SWS_DM_00553]. Enquanto o construtor é thread-safe, Offer(), StopOffer() e o destrutor não são thread-safe e requerem sincronização externa [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553].

generic_routine_lifecycle start instantiated Instanciado (Não oferecido) 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()

Diagrama de estados: ciclo de vida e transições de estado de uma instância GenericRoutine. Fontes: [SWS_DM_00552], [SWS_DM_00557], [SWS_DM_00558], [SWS_DM_00553]

Caminho de utilização

Para disponibilizar uma rotina genérica, uma aplicação deriva de GenericRoutine e sobrescreve os métodos virtuais necessários. O método Start (subfunção UDS 0x01) é puramente virtual (pure virtual) e deve ser obrigatoriamente implementado [SWS_DM_00554]. Os métodos Stop (subfunção 0x02) [SWS_DM_00555] e RequestResults (subfunção 0x03) [SWS_DM_00556] são métodos virtuais; interpretação: como não são puramente virtuais, eles provavelmente só precisam ser sobrescritos se a respectiva rotina suportar funcionalmente a parada ou a consulta separada de resultados. Pergunta (aberta)

O fluxo regular compreende as seguintes fases:

  • Instanciação: criação do handler derivado com referência de porta e modo de simultaneidade [SWS_DM_00552].
  • Ativação: chamada de Offer() para liberação para o DM [SWS_DM_00557].
  • Execução: em solicitações UDS recebidas, o DM chama Start, Stop ou RequestResults. A aplicação recebe routineId, requestData, metaInfo bem como um CancellationHandler e retorna um ara::core::Future<OperationOutput> [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556]. A validade de requestData é garantida até que a promise correspondente seja cumprida ou a operação seja cancelada [SWS_DM_00554].
  • Tratamento de cancelamento: a aplicação pode verificar o status de cancelamento via cancellationHandler.IsCanceled() ou registrar um callback via cancellationHandler.SetNotifier() [SWS_DM_00554]. Interpretação: em caso de cancelamento, a aplicação provavelmente deve encerrar prematuramente atividades de segundo plano em andamento e resolver a promise em tempo hábil. Pergunta (aberta)
  • Desativação: encerramento do encaminhamento via StopOffer() [SWS_DM_00558] antes da destruição do objeto.
Fluxo típico do processamento genérico de rotinasDiagnostic Manager (DM)GenericRoutine-HandlerAnwendungs-WorkerOffer()Result<void> (Erfolg)Use Case: Diagnoseanfrage RoutineControl (Start 0x01)Start(routineId, requestData, metaInfo, cancellationHandler)Disparar execução assíncronaFuture<OperationOutput>altErfolgreicher AbschlussCumprir Promise (OperationOutput)FehlerfallCumprir Promise com UDS NRC (DiagUdsNrcErrc)Use Case: Dienst deregistrierenStopOffer()

Diagrama de sequência: fluxo típico de registro, execução de rotina e desregistro. Fontes: [SWS_DM_00557], [SWS_DM_00554], [SWS_DM_00558]

Cenários de erro

Erros podem ocorrer tanto na configuração quanto durante o tempo de execução e a execução:

  • Violações de modelo e de mapeamento: se a resolução de InstanceSpecifier no modelo falhar, se ele não for identificado como PortPrototype ou se não existir um DiagnosticServiceGenericMapping correspondente, o framework reporta violações como InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation ou InstanceSpecifierAlreadyInUseViolation [SWS_DM_00552].
  • Erro de disponibilização: se Offer() for chamado enquanto o serviço já estiver sendo oferecido, a chamada falha e retorna o código de erro DiagOfferErrc::kAlreadyOffered [SWS_DM_00557].
  • Códigos de erro de diagnóstico (NRC): caso uma operação de rotina não possa ser concluída com sucesso ou a solicitação contenha parâmetros inválidos, a aplicação não cumpre a future retornada com OperationOutput, mas com um UDS Negative Response Code (NRC) adequado de DiagUdsNrcErrc conforme a ISO 14229-1 [SWS_DM_00554], [SWS_DM_00555], [SWS_DM_00556].

Este guia de classe baseia-se na especificação AUTOSAR Adaptive Platform R25-11 e foi gerado automaticamente.

Mapa de membros

Construtores e destrutor

2

Operadores

1

Tipos aninhados

1

Diagrama de classes

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

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

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

GenericRoutine função 3

Class for an GenericRoutine.

Sobrecargas 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

Destructor of class GenericRoutine .

virtual ~GenericRoutine () noexcept;

Métodos

Offer função

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

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

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 função

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 função

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 função

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

void StopOffer () noexcept;

Operadores

operator= função 2

GenericRoutine shall be a single not assignable instance.

Sobrecargas = 2

Tipos aninhados

Documentação dos métodos

função 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#5589f4d7
Content hash
5589f4d7
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

função 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#e873bf99
Content hash
e873bf99
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

função 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#857864fa
Content hash
857864fa
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 36b2772d0811 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

A função Offer da classe ara::diag::GenericRoutine permite que o Diagnostic Management (DM) encaminhe mensagens de pedido de diagnóstico recebidas para uma rotina ao manipulador registado [SWS_DM_00557]. A chamada ocorre de forma síncrona, não recebe parâmetros e retorna um ara::core::Result<void> [SWS_DM_00557]. Uma vez que o método está declarado com a especificação noexcept, é considerado seguro contra exceções (exception safe) [SWS_DM_00557].

Tratamento de erros

Se a disponibilização falhar, o método retorna um resultado negativo. Se a rotina já tiver sido oferecida anteriormente para a instância em questão, o método retorna o código de erro específico DiagOfferErrc::kAlreadyOffered [SWS_DM_00557]. Para este caso de erro está definida uma semântica de rollback, de modo que o estado permanece inalterado [SWS_DM_00557]. O identificador de erro kAlreadyOffered está, além disso, ancorado nos domínios de erro internos para chamadas de diagnóstico [SWS_DM_00514].

Simultaneidade e restrições

A interface está expressamente especificada como não segura para threads (not thread-safe) [SWS_DM_00557]. Se múltiplas threads de uma aplicação acederem ao mesmo manipulador, a chamada deve ser sincronizada. Interpretação: a chamada deverá ocorrer tipicamente durante a inicialização, dado que nenhum pedido pode ser recebido antes da execução de Offer. Pergunta Q-0c42f415bcb0de20 (aberta)

Interação

A disponibilização de funcionalidades através de Offer é um padrão central no cluster de diagnóstico do AUTOSAR Adaptive; é utilizado de forma análoga também para interfaces de rotina específicas de tipo [SWS_DM_00594], serviços genéricos de UDS [SWS_DM_00619], bem como Data Identifiers [SWS_DM_00638]. Apesar da identidade de nome com ara::com, trata-se de uma implementação específica do Diagnostic Management SWS Diagnostics §7.3.4.1.2 «Monitors».

Esta nota de utilização foi selecionada por uma IA e baseia-se exclusivamente na especificação AUTOSAR R25-11.

Guia do implementador em breve (complexidade 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#f508447e
Content hash
f508447e
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: f4080ca4c8cd Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O método RequestResults da classe ara::diag::GenericRoutine é chamado pela instância do servidor de diagnóstico para processar genericamente requisições RoutineControl do UDS do serviço 0x31 com a subfunção requestRoutineResults (0x03) para o identificador de rotina de diagnóstico parametrizado ([SWS_DM_00575], [SWS_DM_00556]).

Na chamada, são passados o identificador de rotina routineId, os metadados específicos da requisição metaInfo, bem como os dados de entrada requestData ([SWS_DM_00556]). A validade do span requestData é estritamente limitada até que o Promise correspondente seja cumprido ou a execução seja cancelada ([SWS_DM_00556]). Um cancellationHandler passado permite consultar o status de cancelamento via IsCanceled bem como registrar uma função de notificação via SetNotifier ([SWS_DM_00556]).

O resultado é retornado de forma assíncrona como ara::core::Future<OperationOutput> ([SWS_DM_00556]). Interpretação: A disponibilização dos dados de saída deve ocorrer tipicamente de forma assíncrona por meio de um ara::core::Promise no lado da aplicação. Em caso de sucesso, o Future disponibiliza um OperationOutput, enquanto em caso de erro, um NRC do UDS adequado de acordo com a ISO 14229-1 é transmitido via DiagUdsNrcErrc ([SWS_DM_00556]). A função é declarada como noexcept e é considerada segura contra exceções ([SWS_DM_00556]). Pergunta Q-f50c8509d7515e3f (aberta)

Em relação à concorrência, a segurança para threads é condicional (conditional): se o método deve ser implementado de forma thread-safe é controlado de maneira vinculativa por meio do ConcurrencyType passado ao construtor ([SWS_DM_00556]).

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade 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#bd4319f4
Content hash
bd4319f4
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 9e819a027940 Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O método Start da classe ara::diag::GenericRoutine é chamado assim que uma solicitação de diagnóstico para RoutineControl com a subfunção Start (0x01) for recebida para a routineId especificada [SWS_DM_00554]. Em contraste com a interface de rotina tipada de acordo com [SWS_DM_00591], esta interface genérica recebe os dados brutos da mensagem de solicitação como um span de bytes.

Para a implementação, aplicam-se os seguintes requisitos e propriedades de interface:

  • Contexto de chamada e parâmetros: Além de routineId e dos metadados (metaInfo), é passado o parâmetro requestData. O tempo de vida dos dados de solicitação permanece válido até que a promise seja cumprida ou o processamento seja cancelado pelo cancellationHandler [SWS_DM_00554].
  • Tratamento de cancelamento: A rotina pode consultar o status de cancelamento atual por meio de cancellationHandler.IsCanceled() ou registrar, via cancellationHandler.SetNotifier(), uma função notificador que é chamada no cancelamento da conversação [SWS_DM_00554].
  • Semântica assíncrona: O processamento ocorre de forma não bloqueante via ara::core::Future<OperationOutput>. Em caso de execução bem-sucedida, OperationOutput disponibiliza os dados úteis para a resposta positiva [SWS_DM_00554].
  • Tratamento de erros: Se a execução falhar, o future deve ser concluído com um Negative Response Code (NRC) apropriado conforme a ISO 14229-1 utilizando DiagUdsNrcErrc [SWS_DM_00554].
  • Simultaneidade: A função é declarada como segura quanto a exceções (noexcept). Se a disponibilização deve ser feita de forma thread-safe, decide o ConcurrencyType passado ao construtor [SWS_DM_00554].

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade 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#cdda71f3
Content hash
cdda71f3
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: d8c6cb55284b Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

O método Stop é chamado numa solicitação UDS RoutineControl com a subfunção Stop (0x02) para a respetiva rotina de diagnóstico genérica [SWS_DM_00555]. Em comparação com interfaces de rotina tipificadas [SWS_DM_00592], ele recebe o identificador de rotina routineId bem como os dados de solicitação como span de dados brutos requestData [SWS_DM_00555].

Durante a utilização, devem ser observadas as seguintes regras de parâmetros e de fluxo [SWS_DM_00555]:

  • Tempo de vida do span de dados de entrada: A área de memória de requestData permanece válida até que a respetiva Promise seja satisfeita ou a execução seja cancelada através do cancellationHandler [SWS_DM_00555].
  • Tratamento de cancelamento: A aplicação pode verificar através de cancellationHandler.IsCanceled() se a conversação de diagnóstico atual foi cancelada, ou registar através de cancellationHandler.SetNotifier uma função de notificação que é acionada no cancelamento [SWS_DM_00555].
  • Assincronismo e retorno: A função opera de forma assíncrona e retorna um ara::core::Future<OperationOutput> que, em caso de sucesso, contém os dados de saída para a resposta UDS positiva [SWS_DM_00555].

O tratamento de erros ocorre através de valores de retorno de diagnóstico negativos: se a interrupção da rotina falhar, o future deve ser concluído com um código de erro UDS NRC apropriado, em conformidade com a ISO 14229-1, através de DiagUdsNrcErrc [SWS_DM_00555].

Em relação à concorrência, o método é especificado como noexcept e seguro contra exceções. Se a implementação concreta deve ser projetada para ser segura para threads depende do ConcurrencyType passado no construtor durante a instanciação [SWS_DM_00555].

Esta nota de uso baseia-se exclusivamente nas especificações da versão R25-11 do Adaptive AUTOSAR.

Guia do implementador em breve (complexidade 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#fe0a400c
Content hash
fe0a400c
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

função 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.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 73588f5f0b57 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

usar

O método ara::diag::GenericRoutine::StopOffer desativa o encaminhamento de pedidos de diagnóstico recebidos do Diagnostic Management (DM) para a instância de rotina correspondente [SWS_DM_00558]. A função possui a assinatura void StopOffer() noexcept;, não recebe parâmetros e não fornece qualquer valor de retorno [SWS_DM_00558]. A chamada é processada de forma síncrona e sinaliza ao DM que a rotina deixará de aceitar pedidos a partir desse momento.

Tratamento de erros

A operação está especificada como exception safe e declarada com noexcept [SWS_DM_00558]. Não ocorrem códigos de erro nem exceções C++ durante a execução. Mensagens específicas para instâncias de memória de desenvolvimento ou de erros (DET/DEM) não estão previstas para esta interface no módulo de diagnóstico.

Simultaneidade e restrições

Relativamente ao comportamento de threading, o método é indicado como not thread-safe [SWS_DM_00558]. Chamadas concorrentes na mesma instância de ara::diag::GenericRoutine devem, portanto, ser sincronizadas do lado da aplicação. Interpretação: uma chamada deverá ocorrer sobretudo quando uma rotina for temporariamente desativada ou a aplicação for terminada de forma controlada após ter ocorrido previamente uma chamada de disponibilização. Pergunta Q-e110ce01110699e3 (aberta)

Interação

A nomenclatura segue concetualmente a oferta de serviços de ara::com, mas representa uma implementação autónoma dentro de ara::diag e não deve ser confundida com ofertas de comunicação (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). O mesmo padrão de disponibilização para a desativação do encaminhamento de pedidos é também utilizado em todo o módulo por outras classes de diagnóstico, como ara::diag::GenericUDSService [SWS_DM_00620], ara::diag::GenericDataIdentifier [SWS_DM_00639], interfaces de rotina [SWS_DM_00595], bem como ara::diag::Monitor [SWS_DM_01089].

Este texto foi criado por uma IA e baseia-se exclusivamente nos documentos de especificação do AUTOSAR R25-11.

Guia do implementador em breve (complexidade 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#f9b4cd4d
Content hash
f9b4cd4d
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

função 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#7d7e7e68
Content hash
7d7e7e68
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

função 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#e17b2c31
Content hash
e17b2c31
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

função ~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#5179dedd
Content hash
5179dedd
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