DEENESPTFRRUARHIKOZHNL

classe apext::diag::uds_transport::UdsTransportProtocolHandler

[SWS_DM_00315] Upstream: RS_Diag_04147, RS_Diag_04168

class UdsTransportProtocolHandler {...};

Abstract Class, which a specific UDS Transport Protocol (plugin) shall subclass.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopenamespace apext::diag::uds_transport

Guia do utilizadorGERADO POR IA

Serve como classe base abstrata para plug-ins de transporte UDS visando à transmissão e ao encaminhamento de mensagens de diagnóstico.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8b34a053e223 Procedência Perguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Serve como classe base abstrata para plug-ins de transporte UDS visando à transmissão e ao encaminhamento de mensagens de diagnóstico.

A classe abstrata serve a plug-ins de transporte UDS como interface base para a conexão padronizada ao gerenciamento de diagnóstico adaptativo (AUTOSAR_AP_SWS_Diagnostics §7.1.1 «Support of UDS Transport Layer»). Uma implementação derivada encaminha mensagens de diagnóstico recebidas para o gerenciador de protocolos e transmite mensagens de resposta geradas através de canais específicos da rede para o testador de diagnóstico. O ciclo de vida está sujeito a uma sequência estrita de criação, inicialização separada, inicialização assíncrona e parada ordenada ([SWS_DM_00329]). Após a instanciação, as chamadas de métodos operacionais não são seguras para threads e exigem um controle coordenado pelo núcleo de diagnóstico.

Contexto

A classe apext::diag::uds_transport::UdsTransportProtocolHandler é uma classe base abstrata dentro do módulo diag da AUTOSAR Adaptive Platform. Ela define a interface padronizada por meio da qual plug-ins de transporte UDS proprietários ou específicos de protocolo são conectados ao gerenciamento de diagnóstico (DM) adaptativo (AUTOSAR_AP_SWS_Diagnostics §7.1.1 «Support of UDS Transport Layer», [SWS_DM_00315]). Cada protocolo de transporte concreto – por exemplo, para diagnóstico sobre mídias de rede automotivas – implementa essa interface como uma subclasse derivada. Supõe-se que o DM possua e gerencie com exclusividade a respectiva instância de manipulador durante todo o seu ciclo de vida operacional. Pergunta Q-ef308265bfdf6cec (aberta) A interação entre o núcleo de diagnóstico e o plug-in ocorre por meio da referência transportprotocolManager do tipo UdsTransportProtocolMgr&, que é passada no construtor e armazenada de forma protegida ([SWS_DM_09015], [SWS_DM_09025]). Cada manipulador é identificado por um UdsTransportProtocolHandlerID numérico, que pode ser consultado via GetHandlerID() ([SWS_DM_00325]).

Ciclo de vida

O ciclo de vida de um manipulador de protocolo de transporte UDS é controlado de forma estritamente sequencial pelo DM ([SWS_DM_00329]). Após a instanciação pelo construtor UdsTransportProtocolHandler ([SWS_DM_09015]), o método Initialize() separa a inicialização real do protocolo da criação do objeto ([SWS_DM_00319]). Com exceção de uma consulta opcional via GetPeriodicHandler(), o DM não deve chamar nenhum método no manipulador antes do retorno bem-sucedido de InitializationResult::kInitializeOk ([SWS_DM_01746], [SWS_DM_09017]). Após a inicialização bem-sucedida, a chamada de Start() coloca o manipulador no estado de processamento ativo ([SWS_DM_00322]). Para minimizar o tempo de inicialização, Start() é concebido como uma operação assíncrona; supõe-se que o DM coordene internamente a inicialização paralela de múltiplos manipuladores. Pergunta Q-66e5a53d55e6d812 (aberta) Se o DM transitar para o estado ApplicationState.kTerminating durante o encerramento, ele instrui o manipulador a finalizar via Stop() ([SWS_DM_00323], [SWS_DM_00333]). O DM aguarda a conclusão, a qual o manipulador confirma chamando UdsTransportProtocolMgr::HandlerStopped() ([SWS_DM_00340]). Após o retorno de Stop(), qualquer chamada de método do plug-in para o gerenciador, exceto HandlerStopped(), é proibida ([SWS_DM_01741]). A liberação dos recursos ocorre, por fim, por meio do destrutor virtual ([SWS_DM_09016]). Enquanto o construtor é seguro para threads, os métodos de interface operacionais são declarados como não seguros para threads.

lebenszyklus Erzeugt Erzeugt Initialisiert Initialisiert Erzeugt->Initialisiert Initialize() == kInitializeOk InitialisierungFehlgeschlagen InitialisierungFehlgeschlagen Erzeugt->InitialisierungFehlgeschlagen Initialize() == kInitializeFailed Gestartet Gestartet Initialisiert->Gestartet Start() Stoppend Stoppend Gestartet->Stoppend Stop() Gestoppt Gestoppt Stoppend->Gestoppt HandlerStopped()

Diagrama de estados: fases do ciclo de vida e transições de estado de um manipulador de transporte UDS. Fontes: [SWS_DM_00319], [SWS_DM_00322], [SWS_DM_00323], [SWS_DM_00329], [SWS_DM_01745], [SWS_DM_01746]

Caminho de utilização

Na operação de diagnóstico regular, o manipulador processa mensagens de entrada e transmite respostas. Assim que na interface de rede estiverem disponíveis, no mínimo, endereço de origem, endereço de destino, tipo de endereço (físico ou funcional), comprimento total da mensagem e, no caso de dados úteis de múltiplos bytes, os dois primeiros bytes (payloadInfo), a implementação notifica a solicitação ao gerenciador por meio de UdsTransportProtocolMgr::IndicateMessage() ([SWS_DM_00342], AUTOSAR_AP_SWS_Diagnostics §7.1.1.3 «UDS message transmission on a UDS TransportLayer»). Cada solicitação é atribuída a um canal exclusivo (AUTOSAR_AP_SWS_Diagnostics §7.1.1.4 «Channel Notifications»). Para responder, o DM passa a resposta de diagnóstico para o mesmo manipulador e canal por meio de Transmit(message, channelId) ([SWS_DM_00327], [SWS_DM_00348]). Após a transmissão física, o manipulador retorna o objeto de mensagem recebido ao gerenciador via UdsTransportProtocolMgr::TransmitConfirmation() ([SWS_DM_00327], [SWS_DM_00351]). Um caminho de uso especializado diz respeito a resets de ECU (serviço UDS 0x11) com resposta positiva após a reinicialização: aqui, o DM solicita antes do reset, via NotifyReestablishment(channelId), que o manipulador salve as informações de conexão de forma não volátil; após a reinicialização e novo Start(), o manipulador notifica a restauração do mesmo canal via ChannelReestablished() ([SWS_DM_00326], [SWS_DM_01744]).

Indicação de mensagem UDS e transmissão de respostaDiagnosetesterUdsTransportProtocolHandlerUdsTransportProtocolMgrDiagnostic ManagementUDS-Anfrage empfangenIndicateMessage(globalChannelId, ...)Diagnoseanfrage weiterleitenDiagnoseanfrage verarbeitenTransmit(message, channelId)UDS-Antwort an Netzwerk sendenTransmitConfirmation(message, result)

Diagrama de sequência: fluxo de indicação de mensagem UDS e transmissão de resposta. Fontes: [SWS_DM_00327], [SWS_DM_00342], [SWS_DM_00348], [SWS_DM_00351]

Cenários de erro

Se a inicialização da camada de transporte falhar e Initialize() retornar o status InitializationResult::kInitializeFailed, o DM interrompe imediatamente o processo de inicialização desse protocolo e não chama nenhum outro método nessa instância ([SWS_DM_01745], [SWS_DM_09017]). Se transmissões periódicas não forem suportadas no protocolo de transporte, a chamada de GetPeriodicHandler() retorna um ara::core::Result com o código de erro kConfigurationMismatch ([SWS_DM_01068]). Se uma restauração de canal solicitada para um reset de ECU não puder ser assegurada, NotifyReestablishment() falha e sinaliza isso por meio do valor de retorno false ([SWS_DM_00326]). Caso, por fim, o processo de envio de uma resposta de diagnóstico na camada de rede falhe, o manipulador deve informar isso na confirmação ao gerenciador, definindo o argumento result em TransmitConfirmation() como kTransmitFailed ([SWS_DM_00351]).

Este guia foi gerado automaticamente com base na especificação AUTOSAR R25-11.

Mapa de membros

Diagrama de classes

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

G napext__diag__uds_transport__UdsTransportProtocolHandler1 UdsTransportProtocolHandler + transportprotocolManager + ~UdsTransportProtocolHandler() + UdsTransportProtocolHandler() + GetHandlerID() + GetPeriodicHandler() + Initialize() + NotifyReestablishment() + Start() + Stop() + Transmit()

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

Constructor of UdsTransportProtocolHandler.

explicit UdsTransportProtocolHandler (const UdsTransportProtocol HandlerID handlerId, UdsTransportProtocolMgr &transportProtocolMgr) noexcept;

Destructor of UdsTransportProtocolHandler.

virtual ~UdsTransportProtocolHandler () noexcept=default;

Métodos

GetHandlerID função

Return the UdsTransportProtocolHandlerID, which was given to the implementation during construction (ctor call).

virtual UdsTransportProtocolHandlerID GetHandlerID () const noexcept;

Returns the corresponding periodic Transport Protocol handler.

virtual ara::core::Result< UdsTransportProtocolPeriodicHandler & > Get PeriodicHandler () noexcept;
Initialize função

Initializes UDS Transport Protocol handler. This methods needs to be called before a call of Start(). It is meant to separate the actual initialization of the UDS Transport Protocol handler from the constructor.

virtual InitializationResult Initialize () noexcept=0;

Tells the UdsTransportProtocolHandler, to notify the DM core via UdsTransportProtocol Mgr::ChannelReestablished() if the given channel has been re-established after next Uds TransportProtocolHandler::Start(). The main purpose of this method is to allow the DM to provide an ECU-Reset (0x11 service), with configuration option "positive response AFTER reset". In this scenario, the request for 0x11 will be received on a certain channel (GlobalChannel Identifier), then the ECU-Reset takes place and after ECU-Restart, all UdsProtocol Handlers/-plugins get restarted via call to UdsTransportProtocolHandler::Start().

virtual bool NotifyReestablishment (ChannelID channelId) noexcept=0;
Start função

Start processing the UDS Transport Protocol. Within the implementation there might be some stack specific implementation. The method is asynchronous to allow the DM to start multiple UdsTransportProtocolHandler in parallel to reduce startup time.

virtual void Start () noexcept=0;
Stop função

Method to indicate that this UdsTransportProtocolHandler should terminate. If UdsTransportProtocolHandler has stopped, it shall call UdsTransportProtocolMgr:: HandlerStopped(UdsTransportProtocolHandlerID).

virtual void Stop () noexcept=0;
Transmit função

Transmit a UDS message via the underlying UDS Transport Protocol channel.

virtual void Transmit (UdsMessageConstPtr message, ChannelID channel Id) noexcept=0;

Enumerações

Result of Initialize handler.

enum class InitializationResult : std::uint8_t {...};

Constantes

The UdsTransportProtocolMgr used/provided by the DM.

UdsTransportProtocolMgr& transportprotocolManager;

Documentação dos métodos

função GetHandlerID [SWS_DM_00325] Upstream: RS_Diag_04147, RS_Diag_04168

virtual UdsTransportProtocolHandlerID GetHandlerID () const noexcept;

Return the UdsTransportProtocolHandlerID, which was given to the implementation during construction (ctor call).

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
UdsTransportProtocolHandlerIDUdsTransportProtocolHandlerID.

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

Record
AUTOSAR/AP/record/SWS_DM_00325
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00325@rel:R25-11#3457b548
Content hash
3457b548
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00325
Status: valid/unmigrated Version: rel:R25-11#98596bd3 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_00325@rel:R25-11#98596bd3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#ba13d0a62026-09-30
  • R19-11rel:R19-11#47151ef62026-10-14
  • R20-11rel:R20-11#8d4acd5c2026-10-14
  • R21-11rel:R21-11#7170c6052026-10-14
  • R22-11rel:R22-11#a8caf4042026-10-14
  • R23-11rel:R23-11#5baf09172026-10-14
  • R24-11rel:R24-11#13e886b82026-10-14
  • R25-11rel:R25-11#98596bd32026-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 GetPeriodicHandler [SWS_DM_01068] Upstream: RS_Diag_04215

virtual ara::core::Result< UdsTransportProtocolPeriodicHandler & > Get PeriodicHandler () noexcept;

Returns the corresponding periodic Transport Protocol handler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
ara::core::Result< UdsTransportProtocolPeriodicHandler & >If periodic transmissions are supported on this transport protocol, a reference to UdsTransportProtocolPeriodicHandler is returned, and if not supported, an error (kConfigurationMismatch).

Fehler

FehlercodeBeschreibung
kConfigurationMismatch

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

Record
AUTOSAR/AP/record/SWS_DM_01068
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01068@rel:R25-11#e4d11ead
Content hash
e4d11ead
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01068
Status: valid/unmigrated Version: rel:R25-11#ab56dcd2 Versionshistorie & Revisions (1 transition, 7 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_01068@rel:R25-11#ab56dcd2
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#331116142026-09-30
  • R20-11rel:R20-11#846d3b552026-10-14
  • R21-11rel:R21-11#49b00e832026-10-14
  • R22-11rel:R22-11#1ddbb3d62026-10-14
  • R23-11rel:R23-11#f5d366552026-10-14
  • R24-11rel:R24-11#4fcfe9bb2026-10-14
  • R25-11rel:R25-11#ab56dcd22026-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 Initialize [SWS_DM_00319] Upstream: RS_Diag_04147, RS_Diag_04168

virtual InitializationResult Initialize () noexcept=0;

Initializes UDS Transport Protocol handler. This methods needs to be called before a call of Start(). It is meant to separate the actual initialization of the UDS Transport Protocol handler from the constructor.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 2d1a514affd8 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 puramente virtual Initialize serve para a inicialização explícita de uma instância de apext::diag::uds_transport::UdsTransportProtocolHandler e separa formalmente esse processo da construção do objeto [SWS_DM_00319]. Ele é chamado de forma síncrona e sem parâmetros pelo Diagnostic Manager (DM), não lança exceções (noexcept) e retorna um InitializationResult [SWS_DM_00319] [SWS_DM_09017].

Ciclo de vida e concorrência

A chamada está integrada ao gerenciamento do ciclo de vida da camada de transporte UDS AUTOSAR_AP_SWS_Diagnostics §7.1.1.1 «Initialization, Starting and Stopping of a UDS TransportLayer». O DM deve gerenciar as fases em uma sequência fixa: construção, chamada de Initialize, início via Start e encerramento via Stop [SWS_DM_00329]. O método é especificado como não seguro para threads (not thread-safe) [SWS_DM_00319]; por esse motivo, o DM provavelmente deve executá-lo no âmbito de uma fase de inicialização síncrona sem acessos paralelos. Pergunta Q-06180f9d8fe99092 (aberta)

Tratamento de erros e interação

O método sinaliza o resultado por meio do enumerador InitializationResult::kInitializeOk ou InitializationResult::kInitializeFailed [SWS_DM_09017]. O comportamento posterior do DM depende diretamente do valor de retorno:

  • Em caso de retorno bem-sucedido com kInitializeOk, o DM tem permissão para chamar métodos subsequentes do handler; antes desse valor de retorno bem-sucedido, com exceção de GetPeriodicHandler, nenhuma outra chamada de método é permitida [SWS_DM_01746].
  • Se o handler retornar kInitializeFailed, o DM aborta completamente o processo de inicialização desse protocolo de transporte e não chama mais nenhum outro método na instância afetada [SWS_DM_01745].

Este texto foi gerado por uma IA com base no AUTOSAR R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Rückgabewert

TypBeschreibung
InitializationResultkInitializeOk, in case, the initialization was successful, else kInitializeFailed is returned.

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

Record
AUTOSAR/AP/record/SWS_DM_00319
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00319@rel:R25-11#b1c2a1df
Content hash
b1c2a1df
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00319
Status: valid/unmigrated Version: rel:R25-11#a9abbec3 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_00319@rel:R25-11#a9abbec3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6d238b482026-09-30
  • R19-11rel:R19-11#24dcf7ab2026-10-14
  • R20-11rel:R20-11#4d518db32026-10-14
  • R21-11rel:R21-11#4d518db32026-10-14
  • R22-11rel:R22-11#2a8e1b2b2026-10-14
  • R23-11rel:R23-11#79c84e752026-10-14
  • R24-11rel:R24-11#a9655bf92026-10-14
  • R25-11rel:R25-11#a9abbec32026-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 NotifyReestablishment [SWS_DM_00326] Upstream: RS_Diag_04147, RS_Diag_04168

virtual bool NotifyReestablishment (ChannelID channelId) noexcept=0;

Tells the UdsTransportProtocolHandler, to notify the DM core via UdsTransportProtocol Mgr::ChannelReestablished() if the given channel has been re-established after next Uds TransportProtocolHandler::Start(). The main purpose of this method is to allow the DM to provide an ECU-Reset (0x11 service), with configuration option "positive response AFTER reset". In this scenario, the request for 0x11 will be received on a certain channel (GlobalChannel Identifier), then the ECU-Reset takes place and after ECU-Restart, all UdsProtocol Handlers/-plugins get restarted via call to UdsTransportProtocolHandler::Start().

Now there are two expectations, when this method has been called before and returned "TRUE": If the same remote client connects to the UdsProtocolHandler, it shall get a channel identification with the same identifying as the last time. It consecutively calls UdsTransportProtocolMgr::ChannelReestablished(Global ChannelIdentifier).

The detection/decision, whether the "same" client reconnects as before is an UdsProtocol Handler implementation specific decision.

The general expectation is:

If the channel is set up from exactly the same remote network-endpoint, it typically gets the same ChannelID. To support this functionality, the implementation at least has to store non-volatile, that this notification has to be done. Further it might be needed to store some additional connection specific info non-volatile to make sure, that the same ChannelID can be reassigned. This is the case if the mapping of protocol specific channel info -> channelID isn’t a

stable bijective mapping!

Small example:

The underlying network protocol, which UdsProtocolHandler implements is based on TCP. At the point in time, where the 0x11 Service Identifier request is received on channel identified by the DM calls UdsTransportProtocolHandler::NotifyReestablishment() on this ChannelID.

Now the implementation of UdsProtocolHandler stores non-volatile in the context of this call:

• NetworkEndpoint (IP-address and port number) of the channel. • NetworkEndpoint (IP-address and port number) of the local port (because in this example, the UdsTransportProtocolHandler listens on/supports different ports). • ChannelID it has currently assigned. After restart this ChannelID is only reused for a channel with exactly the same Network Endpoint addresses as stored non-volatile.

If this ChannelID then gets reassigned, then UdsTransportProtocolMgr::Channel Reestablished() has to be called.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 677bdfc28d3d 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 NotifyReestablishment é chamado sincronicamente pelo Diagnostic Manager (DM) quando, no âmbito de um reinício da unidade de controle (serviço UDS 0x11), uma resposta positiva só deve ser enviada após a conclusão do reinício ([SWS_DM_00326], [SWS_DM_00360]). Através do parâmetro channelId, é passado o canal de transporte a ser monitorado ([SWS_DM_00326]).

Com a chamada, a implementação do protocolo de transporte é instruída a persistir a solicitação de monitoramento ([SWS_DM_00359]). Após a reinicialização do sistema e o novo arranque dos manipuladores, o manipulador de protocolo reporta a nova disponibilidade do canal de forma assíncrona ao DM por meio de [SWS_DM_00313] ([SWS_DM_00358]). O valor de retorno booleano sinaliza com true que a solicitação de notificação foi aceita e pode ser atendida; caso contrário, é retornado false ([SWS_DM_00326]).

No que diz respeito à concorrência e ao tratamento de erros, aplica-se o seguinte:

Esta nota de uso foi criada por uma IA com base na especificação.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
channelIdThe channelID, whose re-establishment shall be notified to Uds TransportProtocolMgr

Rückgabewert

TypBeschreibung
boolTRUE, if notification request is accepted and can be fulfilled, else FALSE
Hinweise: The UdsTransportProtocolHandler will call UdsTransportProtocolMgr::Channel Reestablished() after UdsTransportProtocolHandler::Start() is called and as soon as it detects that the remote client/tester is reachable again.

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

Record
AUTOSAR/AP/record/SWS_DM_00326
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00326@rel:R25-11#c8e15320
Content hash
c8e15320
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00326
Status: valid/unmigrated Version: rel:R25-11#71ce018e 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_00326@rel:R25-11#71ce018e
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#eaebfef42026-09-30
  • R19-11rel:R19-11#c295123d2026-10-14
  • R20-11rel:R20-11#3a65f3fb2026-10-14
  • R21-11rel:R21-11#318d3d1b2026-10-14
  • R22-11rel:R22-11#ce8e0b802026-10-14
  • R23-11rel:R23-11#30993c3a2026-10-14
  • R24-11rel:R24-11#a15ad2ab2026-10-14
  • R25-11rel:R25-11#71ce018e2026-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_00322] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Start () noexcept=0;

Start processing the UDS Transport Protocol. Within the implementation there might be some stack specific implementation. The method is asynchronous to allow the DM to start multiple UdsTransportProtocolHandler in parallel to reduce startup time.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: b5781ddbed6c 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 Start da interface apext::diag::uds_transport::UdsTransportProtocolHandler inicia o processamento de protocolo de um plugin de transporte UDS no Diagnostic Management (DM) de acordo com [SWS_DM_00322]. Ele não recebe parâmetros e não retorna nenhum valor. A execução é concebida de forma assíncrona para que o DM possa iniciar várias instâncias em paralelo e, assim, reduzir o tempo de inicialização de todo o sistema ([SWS_DM_00322]). Como a assinatura declara void, o processamento assíncrono deverá ser tratado de forma específica da pilha através de mecanismos internos de segundo plano. Pergunta Q-d1023a05a1f3e2ab (aberta)

Em relação ao ciclo de vida (SWS Diagnostics §7.1.1.1 «Initialization, Starting and Stopping of a UDS TransportLayer», [SWS_DM_00329]), aplicam-se regras estritas de sequência:

  • Pré-condições: Antes da chamada, a inicialização através de Initialize ([SWS_DM_00319]) deve obrigatoriamente ter sido concluída com o resultado kInitializeOk ([SWS_DM_01746]). Se, pelo contrário, a inicialização fornecer kInitializeFailed, o DM aborta o processo e não deve chamar Start ([SWS_DM_01745]).
  • Pós-condições: Apenas após a chamada bem-sucedida de Start é que o DM pode acionar funções posteriores como Transmit ou Stop no manipulador ([SWS_DM_01743]). Além disso, o DM processa notificações via ChannelReestablished ([SWS_DM_00313]) exclusivamente se Start tiver sido executado anteriormente ([SWS_DM_01744]), o que é essencial, entre outros, para cenários de reinicialização de ECU com reconexão ([SWS_DM_00326]).

O método é declarado como noexcept e, portanto, é seguro contra exceções, mas é explicitamente especificado como não seguro para threads (not thread-safe) ([SWS_DM_00322]). Os chamadores devem, portanto, assegurar que as chamadas de instância ocorram de forma sincronizada.

Esta nota de uso foi gerada automaticamente com base nos dados de especificação.

Guia do implementador em breve (complexidade I2)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
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_00322
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00322@rel:R25-11#5c46bc4f
Content hash
5c46bc4f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00322
Status: valid/unmigrated Version: rel:R25-11#0b2689e0 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_00322@rel:R25-11#0b2689e0
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#13806c572026-09-30
  • R19-11rel:R19-11#e7bc57b82026-10-14
  • R20-11rel:R20-11#967d60892026-10-14
  • R21-11rel:R21-11#967d60892026-10-14
  • R22-11rel:R22-11#5752c1402026-10-14
  • R23-11rel:R23-11#9e58e6f32026-10-14
  • R24-11rel:R24-11#dd7836172026-10-14
  • R25-11rel:R25-11#0b2689e02026-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_00323] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Stop () noexcept=0;

Method to indicate that this UdsTransportProtocolHandler should terminate. If UdsTransportProtocolHandler has stopped, it shall call UdsTransportProtocolMgr:: HandlerStopped(UdsTransportProtocolHandlerID).

After return from Stop(), the handler-plugin shall NOT call to UdsTransportProtocolMgr with any other method but UdsTransportProtocolMgr::HandlerStopped().

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

O método Stop da interface apext::diag::uds_transport::UdsTransportProtocolHandler sinaliza a uma instância de protocolo de transporte UDS que ela deve terminar [SWS_DM_00323]. A chamada é acionada pelo Diagnostic Management (DM) assim que este transita para o estado ApplicationState.kTerminating [SWS_DM_00333]. A função é sem parâmetros, não possui valor de retorno, é declarada como noexcept e especificada como segura contra exceções (exception safe) [SWS_DM_00323].

Para o contexto de chamada e a concorrência aplicam-se as seguintes condições:

A interação com o DM ocorre de forma assíncrona: após o manipulador ter desfeito suas conexões de rede e liberado recursos, ele deve notificar o DM via apext::diag::uds_transport::UdsTransportProtocolMgr::HandlerStopped, passando seu handlerId [SWS_DM_00314]. O DM aguarda obrigatoriamente esse callback de confirmação após a chamada de Stop antes de encerrar definitivamente o processo [SWS_DM_00340].

Este texto foi gerado automaticamente com base na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
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_00323
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00323@rel:R25-11#bf1f6208
Content hash
bf1f6208
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00323
Status: valid/unmigrated Version: rel:R25-11#ddd9ac23 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_00323@rel:R25-11#ddd9ac23
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#59af1a9d2026-09-30
  • R19-11rel:R19-11#53424cef2026-10-14
  • R20-11rel:R20-11#fe2b5e9c2026-10-14
  • R21-11rel:R21-11#7d886f392026-10-14
  • R22-11rel:R22-11#c94b081a2026-10-14
  • R23-11rel:R23-11#a61d25202026-10-14
  • R24-11rel:R24-11#838592342026-10-14
  • R25-11rel:R25-11#ddd9ac232026-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 Transmit [SWS_DM_00327] Upstream: RS_Diag_04147, RS_Diag_04168

virtual void Transmit (UdsMessageConstPtr message, ChannelID channel Id) noexcept=0;

Transmit a UDS message via the underlying UDS Transport Protocol channel.

GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 5022cdfe42a5 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 Transmit é chamado para enviar uma mensagem diagnóstica UDS através de um canal específico do protocolo de transporte para a rede ([SWS_DM_00327], SWS Diagnostics §7.1.1.3 «UDS message transmission on a UDS TransportLayer»). Ele mapeia o serviço T_Data.req de acordo com a ISO 14229-2 ([SWS_DM_00327]). O chamador passa a mensagem a ser enviada como UdsMessageConstPtr no estilo de posse de um unique_ptr, bem como o channelId, que deve corresponder ao canal da solicitação recebida anteriormente ([SWS_DM_00327], [SWS_DM_00348], SWS Diagnostics §7.1.1.4 «Channel Notifications»).

Em relação à ordem e ao ciclo de vida, o Diagnostic Manager só pode chamar Transmit depois que a inicialização do manipulador com kInitializeOk tiver sido concluída ([SWS_DM_01746]) e o método Start tiver sido chamado ([SWS_DM_01743]). Uma vez que a operação é especificada como not thread-safe e exception safe ([SWS_DM_00327]), a coordenação de ordens de envio paralelas deverá, segundo a interpretação, ocorrer do lado do chamador no Diagnostic Manager. Pergunta Q-6edd917928b60e55 (aberta)

A função não retorna nenhum valor de forma síncrona. O manipulador de transporte é obrigado a devolver o ponteiro da mensagem de forma assíncrona através de apext::diag::uds_transport::UdsTransportProtocolMgr::TransmitConfirmation ao Diagnostic Manager após a transmissão ([SWS_DM_00327], [SWS_DM_00312]). Em caso de envio bem-sucedido ao nível da rede, o resultado kTransmitOk é reportado, caso contrário kTransmitFailed ([SWS_DM_00351]).

Esta nota de uso baseia-se na especificação AUTOSAR Adaptive R25-11.

Guia do implementador em breve (complexidade I1)

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitnot thread-safe

Parameter (in)

ParameterBeschreibung
messageThe message to be transmitted as a UdsMessage::Ptr (unique_ptr style). UdsTransportProtocolHandler has to give back this Uds Message::Ptr via UdsTransportProtocolMgr::Transmit Confirmation() to signal, that it is done with this message.
channelIdIdentification of channel on which to transmit.

Rückgabewert

TypBeschreibung
None
Hinweise: This transmit API covers T_Data.req of ISO 14229-2[25] Figure 2.

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

Record
AUTOSAR/AP/record/SWS_DM_00327
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_00327@rel:R25-11#36de0bf9
Content hash
36de0bf9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_00327
Status: valid/unmigrated Version: rel:R25-11#476973a2 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_00327@rel:R25-11#476973a2
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#b90d03092026-09-30
  • R19-11rel:R19-11#000cf4a42026-10-14
  • R20-11rel:R20-11#34d3b7782026-10-14
  • R21-11rel:R21-11#34d3b7782026-10-14
  • R22-11rel:R22-11#24d7a0a92026-10-14
  • R23-11rel:R23-11#a439d8b92026-10-14
  • R24-11rel:R24-11#b3938b682026-10-14
  • R25-11rel:R25-11#476973a22026-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 UdsTransportProtocolHandler [SWS_DM_09015] Upstream: RS_Diag_04147, RS_Diag_04168

explicit UdsTransportProtocolHandler (const UdsTransportProtocol HandlerID handlerId, UdsTransportProtocolMgr &transportProtocolMgr) noexcept;

Constructor of UdsTransportProtocolHandler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Parameter (in)

ParameterBeschreibung
handlerIdThe handler ID used by DM to identify this handler. This is just a number/identification given by the DM core, when instantiating a UdsTransportProtocolHandler instance, to be able to distinguish it from other handler-plugins or built-in UdsTransportProtocolHandler implementation(s).
transportProtocolMgrReference to UdsTransportProtocolMgr owned by this DM, with which UdsTransportProtocolHandler instance shall interact.

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

Record
AUTOSAR/AP/record/SWS_DM_09015
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09015@rel:R25-11#c7c029d5
Content hash
c7c029d5
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09015
Status: valid/unmigrated Version: rel:R25-11#a9ed45a3 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_09015@rel:R25-11#a9ed45a3
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#caee19702026-09-30
  • R19-11rel:R19-11#986eae482026-10-14
  • R20-11rel:R20-11#b8cc07892026-10-14
  • R21-11rel:R21-11#809c79d52026-10-14
  • R22-11rel:R22-11#a76b2d802026-10-14
  • R23-11rel:R23-11#f807b8cb2026-10-14
  • R24-11rel:R24-11#949b6e802026-10-14
  • R25-11rel:R25-11#a9ed45a32026-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 ~UdsTransportProtocolHandler [SWS_DM_09016] Upstream: RS_Diag_04147, RS_Diag_04168

virtual ~UdsTransportProtocolHandler () noexcept=default;

Destructor of UdsTransportProtocolHandler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
Exception-Sicherheitexception safe

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

Record
AUTOSAR/AP/record/SWS_DM_09016
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09016@rel:R25-11#428ead98
Content hash
428ead98
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09016
Status: valid/unmigrated Version: rel:R25-11#84d4080f 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_09016@rel:R25-11#84d4080f
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#698b1dff2026-09-30
  • R19-11rel:R19-11#0e5d954f2026-10-14
  • R20-11rel:R20-11#a89192a82026-10-14
  • R21-11rel:R21-11#a89192a82026-10-14
  • R22-11rel:R22-11#e44075962026-10-14
  • R23-11rel:R23-11#6adb5bb12026-10-14
  • R24-11rel:R24-11#5417259f2026-10-14
  • R25-11rel:R25-11#84d4080f2026-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

Documentação das enumerações

enumeração InitializationResult [SWS_DM_09017] Upstream: RS_Diag_04147, RS_Diag_04168

enum class InitializationResult :                std::uint8_t {...};

Result of Initialize handler.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Forwarding-Header#include "apext/diag/diag_fwd.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
SymbolInitializationResult
Basistypstd::uint8_t

Werte

EnumeratorBeschreibung
kInitializeOk=0 Initialization ok.
kInitializeFailed=1 Initialization failed.

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

Record
AUTOSAR/AP/record/SWS_DM_09017
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09017@rel:R25-11#e7a6ea87
Content hash
e7a6ea87
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09017
Status: valid/unmigrated Version: rel:R25-11#95d25f6f 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_09017@rel:R25-11#95d25f6f
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#6e3b57b42026-09-30
  • R19-11rel:R19-11#1a1547832026-10-14
  • R20-11rel:R20-11#b70ecaf32026-10-14
  • R21-11rel:R21-11#b70ecaf32026-10-14
  • R22-11rel:R22-11#b70ecaf32026-10-14
  • R23-11rel:R23-11#fa76aad12026-10-14
  • R24-11rel:R24-11#86bf32092026-10-14
  • R25-11rel:R25-11#95d25f6f2026-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

Documentação das constantes / variáveis

variável transportprotocolManager [SWS_DM_09025] Upstream: RS_Diag_04147, RS_Diag_04168

UdsTransportProtocolMgr& transportprotocolManager;

The UdsTransportProtocolMgr used/provided by the DM.

Header-Datei#include "apext/diag/uds_transport/protocol_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolHandler
SymboltransportprotocolManager
TypUdsTransportProtocolMgr &
Sichtbarkeitprotected

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

Record
AUTOSAR/AP/record/SWS_DM_09025
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_09025@rel:R25-11#7dbaa73d
Content hash
7dbaa73d
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_09025
Status: valid/unmigrated Version: rel:R25-11#8f6915d3 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_09025@rel:R25-11#8f6915d3
Point-in-Time History:
Recorded Revisions (4):
  • R25-11rel:R25-11#d765c6b02026-09-30
  • R23-11rel:R23-11#a4f7fad02026-10-14
  • R24-11rel:R24-11#3b6191932026-10-14
  • R25-11rel:R25-11#8f6915d32026-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