DEENESPTFRRUARHIKOZHNL

classe apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler

[SWS_DM_01064] Upstream: RS_Diag_04215

class UdsTransportProtocolPeriodicHandler {...};

UdsTransportProtocolPeriodicHandler class to support 0x2A service from ISO.

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

Guia do utilizadorGERADO POR IA

Permite a transmissão periódica de mensagens de diagnóstico UDS para dar suporte ao serviço 0x2A.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: fabfa1b95261 Procedência Perguntas em aberto (3)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite a transmissão periódica de mensagens de diagnóstico UDS para dar suporte ao serviço 0x2A.

A classe apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler disponibiliza uma interface puramente virtual para o processamento do serviço UDS periódico 0x2A através de canais de diagnóstico específicos de transporte ([SWS_DM_01064]). Ela permite que o gerenciamento de diagnóstico determine limites de quantidade e de carga útil específicos de cada canal, além de realizar a transmissão ordenada de múltiplas mensagens UDS por meio de PeriodicTransmit ([SWS_DM_01067]). Se o envio de uma mensagem falhar, o procedimento é interrompido e o estado é reportado por meio de uma função de confirmação. Como todos os métodos são especificados como não seguros para threads (non-thread-safe), os acessos concorrentes devem ser sincronizados pelo chamador.

Contexto

A classe puramente virtual apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler representa a interface padronizada para suportar a leitura periódica de dados de diagnóstico de acordo com o serviço UDS 0x2A ([SWS_DM_01064], AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler»). No sistema de diagnóstico da AUTOSAR Adaptive Platform, ela desacopla o gerenciamento de diagnóstico de nível superior da implementação concreta de rede e de protocolo de transporte. Enquanto o gerenciamento de diagnóstico avalia requisições recebidas para transmissões periódicas e monta os pacotes de dados correspondentes, o handler assume a transmissão propriamente dita dessas mensagens periódicas por meio de uma conexão concreta ([SWS_DM_01067]). Como parceiros de interação atuam o gerenciamento de diagnóstico no lado do chamador e o respectivo canal de comunicação, que é identificado por meio de um ChannelID exclusivo ([SWS_DM_01065], [SWS_DM_01066]).

diag_periodic_kontext diag_server Diagnose-Server (UDS 0x2A) handler UdsTransportProtocolPeriodicHandler diag_server->handler Consulta de capacidade & ordem de envio handler->diag_server PeriodicTransmit Confirmation transport Transportschicht (ChannelID) handler->transport Periodische Nachrichten

Diagrama de contexto: incorporação do UdsTransportProtocolPeriodicHandler entre o servidor de diagnóstico e a camada de transporte. Fontes: [SWS_DM_01064], [SWS_DM_01067], AUTOSAR_AP_SWS_Diagnostics §C.3.1 «Class: UdsTransportProtocolPeriodicHandler».

Ciclo de vida

Como UdsTransportProtocolPeriodicHandler é definida como uma interface base abstrata com métodos puramente virtuais, ela não pode ser instanciada diretamente ([SWS_DM_01064]). A criação de instâncias concretas do handler ocorre, presumivelmente, por meio de componentes de driver específicos do transporte (por exemplo, para protocolos baseados em DoIP ou CAN). Pergunta Q-d0b3bf3b0c14dcf6 (aberta) O ciclo de vida da instância é tipicamente vinculado à disponibilidade da respectiva pilha de protocolos de transporte. Para uma destruição polimórfica limpa no encerramento da pilha de comunicação, a classe disponibiliza um destrutor virtual ~UdsTransportProtocolPeriodicHandler() ([SWS_DM_02089], AUTOSAR_AP_SWS_Diagnostics §C.3.1.1.1.1 «Destructor»).

Em relação à concorrência, todas as funções-membro da classe são explicitamente designadas como não seguras para threads (not thread-safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Em caso de acesso paralelo por múltiplas threads ou solicitações simultâneas através do mesmo ChannelID, os chamadores devem, portanto, sincronizar os acessos por conta própria.

Caminho de utilização

Um fluxo típico para a realização de transmissões periódicas de mensagens para o serviço 0x2A divide-se nas seguintes etapas:

Transmissão periódica via UdsTransportProtocolPeriodicHandlerDiagnose-Server (0x2A)UdsTransportProtocolPeriodicHandlerTransportschicht / KanalUse Case: Kanalparameter ermittelnGetMaxPayloadLength(channelId)maxPayloadLengthGetNumberOfPeriodicMessages(channelId)numberOfPeriodicMessagesUse Case: Periodischer SendevorgangPeriodicTransmit(channelId, messages)loopPara cada mensagem em messagesTransmitir mensagemaltOcorreu erro de transmissãoSendeprozess stoppenPeriodicTransmit Confirmation(anzahlGesendet, messages)Todas as mensagens com sucessoPeriodicTransmit Confirmation(gesamtAnzahl, messages)

Diagrama de sequência: fluxo típico da consulta de capacidade, do envio periódico e da confirmação. Fontes: [SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067].

Cenários de erro

Durante a execução de PeriodicTransmit, todas as mensagens da lista são transmitidas sequencialmente. Se a transmissão de uma única mensagem falhar, todo o processo de envio é abortado imediatamente ([SWS_DM_01067]). As mensagens subsequentes da lista não serão mais enviadas nesse caso. Para fins de diagnóstico de falhas e informação ao gerenciamento de diagnóstico, a chamada de confirmação PeriodicTransmit Confirmation é, ainda assim, acionada. Esta contém o número de mensagens transmitidas com sucesso até a interrupção, bem como, de forma inalterada, o vetor completo de mensagens UDS ([SWS_DM_01067]). Com isso, o gerenciamento de diagnóstico pode identificar com precisão qual mensagem causou o erro.

Todos os métodos de interface são especificados como noexcept e seguros contra exceções (exception safe) ([SWS_DM_01065], [SWS_DM_01066], [SWS_DM_01067], [SWS_DM_02089]). Condições de erro na transmissão não resultam em exceções C++, mas são reportadas de forma determinística por meio do mecanismo de confirmação previsto.

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

Mapa de membros

Diagrama de classes

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

G napext__diag__uds_transport__UdsTransportProtocolPeriodicHandler54 UdsTransportProtocolPeriodicHandler + ~UdsTransportProtocolPeriodicHandler() + GetMaxPayloadLength() + GetNumberOfPeriodicMessages() + PeriodicTransmit()

Vista de detalhes

Selecione uma entrada no índice.

Construtores e destrutor

Métodos

Reports the maximum payload length supported for a single periodic transmission on the channel.

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;

Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

Documentação dos métodos

função GetMaxPayloadLength [SWS_DM_01066] Upstream: RS_Diag_04215

virtual std::size_t GetMaxPayloadLength (ChannelID channelId) const noexcept=0;

Reports the maximum payload length supported for a single periodic transmission on the channel.

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

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection for which the maximum payload length is reported.

Rückgabewert

TypBeschreibung
std::size_tSupported payload length

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

Record
AUTOSAR/AP/record/SWS_DM_01066
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01066@rel:R25-11#8b2ebbca
Content hash
8b2ebbca
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01066
Status: valid/unmigrated Version: rel:R25-11#cac9e976 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_01066@rel:R25-11#cac9e976
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#1dc32cc82026-09-30
  • R20-11rel:R20-11#28bcd8642026-10-14
  • R21-11rel:R21-11#a933cb442026-10-14
  • R22-11rel:R22-11#7020a1832026-10-14
  • R23-11rel:R23-11#68f8be1a2026-10-14
  • R24-11rel:R24-11#22ba880f2026-10-14
  • R25-11rel:R25-11#cac9e9762026-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 GetNumberOfPeriodicMessages [SWS_DM_01065] Upstream: RS_Diag_04215

virtual std::size_t GetNumberOfPeriodicMessages (ChannelID channelId) const noexcept=0;

Reports the Transport Protocol implementation and connection specific number of periodic messages.

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

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over.

Rückgabewert

TypBeschreibung
std::size_tNumber of periodic messages.

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

Record
AUTOSAR/AP/record/SWS_DM_01065
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01065@rel:R25-11#f520d4e7
Content hash
f520d4e7
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01065
Status: valid/unmigrated Version: rel:R25-11#4725f9e5 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_01065@rel:R25-11#4725f9e5
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f28623fc2026-09-30
  • R20-11rel:R20-11#bdc723c72026-10-14
  • R21-11rel:R21-11#bdc723c72026-10-14
  • R22-11rel:R22-11#81d54d3a2026-10-14
  • R23-11rel:R23-11#2c2c83b92026-10-14
  • R24-11rel:R24-11#1dee77bf2026-10-14
  • R25-11rel:R25-11#4725f9e52026-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 PeriodicTransmit [SWS_DM_01067] Upstream: RS_Diag_04215

virtual void PeriodicTransmit (ChannelID channelId, ara::core::Vector< UdsMessageConstPtr > messages) noexcept=0;

Sends all the messages in the list in the given order. If one message transmission fails, the send process is stopped and the PeriodicTransmit Confirmation is invoked with the number of sent messages and the same Vector with Uds Messages.

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

O método puramente virtual PeriodicTransmit da interface apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler serve para o envio agrupado de mensagens UDS periódicas através de uma ligação de transporte existente [SWS_DM_01067]. É tipicamente chamado pelo Diagnostic Management (DM) no âmbito da transmissão periódica segundo o tipo de escalonador 1 conforme a ISO 14229-1, no qual DIDs periódicos configurados (PDIDs) são despoletados ciclicamente AUTOSAR_AP_SWS_Diagnostics §Scheduler Periodic Transmission [SWS_DM_01060].

Parâmetros e semântica

  • channelId: Identificador do canal de comunicação concreto através do qual a transmissão ocorre [SWS_DM_01067].
  • messages: Lista ordenada (ara::core::Vector<UdsMessageConstPtr>) de todas as mensagens a transmitir diretamente uma após a outra [SWS_DM_01067].

A função não devolve qualquer valor e garante segurança contra exceções declarada como noexcept [SWS_DM_01067]. As mensagens são processadas estritamente na ordem fornecida.

Tratamento de erros e confirmação

Se o envio de uma mensagem individual falhar, todo o processo de envio é abortado imediatamente [SWS_DM_01067]. Para o reporte do resultado, é chamada a função de confirmação PeriodicTransmitConfirmation de UdsTransportProtocolMgr [SWS_DM_01069]. Este callback passa a quantidade de mensagens transmitidas com sucesso bem como o mesmo vetor de mensagens original [SWS_DM_01067].

simultaneidade

O método está especificado como not thread-safe [SWS_DM_01067]. Chamadas paralelas na mesma instância têm de ser sincronizadas do lado do chamador.

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

Guia do implementador em breve (complexidade I1)

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

Parameter (in)

ParameterBeschreibung
channelIdThe concrete connection to send over
messagesOrdered list of messages to send at once

Rückgabewert

TypBeschreibung
None

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

Record
AUTOSAR/AP/record/SWS_DM_01067
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_01067@rel:R25-11#9f8ee7dd
Content hash
9f8ee7dd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_01067
Status: valid/unmigrated Version: rel:R25-11#59bd4882 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_01067@rel:R25-11#59bd4882
Point-in-Time History:
Recorded Revisions (7):
  • R25-11rel:R25-11#f35c930a2026-09-30
  • R20-11rel:R20-11#6586083c2026-10-14
  • R21-11rel:R21-11#5d391bcd2026-10-14
  • R22-11rel:R22-11#3723eafa2026-10-14
  • R23-11rel:R23-11#eb3e5ef12026-10-14
  • R24-11rel:R24-11#9533d1602026-10-14
  • R25-11rel:R25-11#59bd48822026-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 ~UdsTransportProtocolPeriodicHandler [SWS_DM_02089] Upstream: RS_Diag_04215

virtual ~UdsTransportProtocolPeriodicHandler () noexcept;

Destructor.

Header-Datei#include "apext/diag/uds_transport/protocol_periodic_handler.h"
Scopeclass apext::diag::uds_transport::UdsTransportProtocolPeriodicHandler
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_02089
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_DM_02089@rel:R25-11#e1abbbff
Content hash
e1abbbff
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Diagnostics.pdf#nameddest=SWS_DM_02089
Status: valid/unmigrated Version: rel:R25-11#d455b1a3 Versionshistorie & Revisions (1 transition, 3 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_02089@rel:R25-11#d455b1a3
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#a6cfcd7a2026-09-30
  • R24-11rel:R24-11#b5a34f3b2026-10-14
  • R25-11rel:R25-11#d455b1a32026-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