módulo ara::diag — Diagnostics
Guia do móduloGERADO POR IA
Disponibiliza serviços de diagnóstico padronizados, protocolos UDS e SOVD, bem como gerenciamento central da memória de falhas.
Disponibiliza serviços de diagnóstico padronizados, protocolos UDS e SOVD, bem como gerenciamento central da memória de falhas.
Na AUTOSAR Adaptive Platform, o cluster funcional Diagnostic Management fornece a infraestrutura central para o diagnóstico veicular clássico UDS e moderno SOVD (AUTOSAR_AP_EXP_SWArchitecture p. 150). Como daemon da plataforma, ele termina camadas de transporte como DoIP, controla manipuladores de protocolo e encaminha requisições de diagnóstico para Adaptive Applications por meio de interfaces de callback fortemente tipadas ([SWS_DM_00311]). Ao mesmo tempo, o módulo assume o monitoramento de falhas, a temporização e o debounce por contadores, além do gerenciamento da memória de falhas. As aplicações liberam funções de serviço por meio de um modelo declarativo de offer, mantendo a lógica da aplicação e o processamento de protocolo claramente separados entre si.
O cluster funcional Diagnostic Management (ara::diag) fornece na AUTOSAR Adaptive Platform a infraestrutura central baseada em daemon para a execução da comunicação de diagnóstico veicular (AUTOSAR_AP_EXP_SWArchitecture p. 150). Ele desacopla manipuladores de protocolo específicos de transporte (como DoIP ou CAN-TP) do núcleo de diagnóstico propriamente dito (UdsTransportProtocolMgr), permitindo assim uma terminação e um encaminhamento uniformes das requisições de diagnóstico (AUTOSAR_AP_EXP_SWArchitecture p. 164).
Diagrama de contexto: Integração do daemon do Diagnostic Management entre manipuladores de transporte, Adaptive Applications e testadores externos. Fontes: AUTOSAR_AP_EXP_SWArchitecture p. 150, AUTOSAR_AP_EXP_SWArchitecture p. 164, AUTOSAR_AP_EXP_SWArchitecture p. 168
Para a execução de serviços, o módulo implementa um modelo declarativo de disponibilização: o daemon de diagnóstico realiza as port interfaces, enquanto as Adaptive Applications registram callbacks de serviço para DataIdentifier, rotinas ou transferências baseadas em blocos e controlam sua disponibilidade via Offer() ou StopOffer() ([SWS_DM_00557], AUTOSAR_AP_EXP_SWArchitecture p. 156). Mensagens recebidas são processadas à prova de falhas por meio de mecanismos de indicação e entrega em duas etapas (IndicateMessage e HandleMessage) ([SWS_DM_00309], [SWS_DM_00311]).
Diagrama de sequência: Fluxo de controle de ponta a ponta de uma requisição UDS, desde a camada de transporte, passando pelo gerenciador de diagnóstico, até a aplicação utilizadora. Fontes: [SWS_DM_00309], [SWS_DM_00311], [SWS_DM_00327], AUTOSAR_SWS_Diagnostics p. 130
Além das funções clássicas de UDS, o cluster gerencia monitores de diagnóstico, realiza debounces configurados e persiste falhas qualificadas na memória primária de falhas (DTCInformation) ([SWS_DM_00664], SWS_Diagnostics p. 225). Padrões estendidos como ISO 13400-2 (DoIP) e ASAM SOVD (Service-Oriented Vehicle Diagnostics) são integrados de forma transparente à plataforma por meio de interfaces especializadas para linhas de ativação, autenticações e payloads JSON hierárquicos ([SWS_DM_00834], [SWS_DM_02370], AUTOSAR_AP_EXP_SWArchitecture p. 170).
Papel arquitetural e limites de sistema do Diagnostic Management
Na AUTOSAR Adaptive Platform (Release R25-11), o cluster funcional Diagnostic Management (ara::diag) constitui o ponto central de controle para o diagnóstico veicular interno e externo (AUTOSAR_AP_EXP_SWArchitecture p. 150). Do ponto de vista arquitetural, o módulo é projetado como um serviço de segundo plano baseado em daemon («aapFunctionalCluster» Diagnostic Management daemon-based). Ele termina protocolos de diagnóstico físicos e lógicos, gerencia o contexto global de diagnóstico e disponibiliza a infraestrutura de middleware por meio da qual Adaptive Applications individuais podem fornecer dados e rotinas relacionados ao diagnóstico (AUTOSAR_AP_EXP_SWArchitecture p. 156).
O panorama de interfaces divide-se primariamente em duas categorias: port interfaces modeladas, configuradas via manifesto AUTOSAR e vinculadas aos processos da aplicação, e interfaces de runtime em C++ nativo (AUTOSAR_AP_EXP_SWArchitecture p. 150). Entre as interfaces nativas destaca-se, em particular, a classe Conversation, por meio da qual as aplicações podem consultar estados de sessão atuais ([SWS_DM_00696]), determinar níveis de segurança ([SWS_DM_00698]) ou inspecionar conversas de diagnóstico ativas ([SWS_DM_00783]). Interpretação: A separação estrita entre o daemon central de diagnóstico e os processos utilizadores provavelmente foi escolhida para garantir tempos de resposta determinísticos em relação a testadores externos, mesmo durante reinicializações de processos de aplicações individuais. Pergunta Q-2e2ea8eb9d415fed (aberta)
Diagrama de contexto: Integração do daemon do Diagnostic Management entre manipuladores de transporte, Adaptive Applications e testadores externos. Fontes: AUTOSAR_AP_EXP_SWArchitecture p. 150, AUTOSAR_AP_EXP_SWArchitecture p. 164, AUTOSAR_AP_EXP_SWArchitecture p. 168
Conexão da camada de transporte e controle do ciclo de vida dos manipuladores de protocolo
Para operar independentemente de tecnologias de rede específicas (como Ethernet/DoIP ou CAN/ISO-TP), o Diagnostic Management desacopla o núcleo do protocolo por meio de interfaces de transporte padronizadas (AUTOSAR_AP_EXP_SWArchitecture p. 164). O núcleo genérico implementa a interface UdsTransportProtocolMgr, enquanto adaptadores específicos de transporte são conectados como UdsTransportProtocolHandler (AUTOSAR_AP_EXP_SWArchitecture p. 165). Cada manipulador é identificado por um identificador exclusivo, que pode ser consultado via GetHandlerID() ([SWS_DM_00325]).
O controle do ciclo de vida de um manipulador de transporte divide-se em fases operacionais determinísticas (AUTOSAR_SWS_Diagnostics p. 128): durante a inicialização, o Diagnostic Management inicializa o manipulador via Initialize() ([SWS_DM_00319]) e, em seguida, ativa o processamento de mensagens por meio de Start() ([SWS_DM_00322]). No encerramento controlado, o gerenciador solicita ao manipulador via Stop() o fechamento de conexões abertas ([SWS_DM_00323]), após o que o manipulador confirma a conclusão via HandlerStopped() ([SWS_DM_00314]).
Para sessões de diagnóstico de longa duração, a AUTOSAR também especifica um mecanismo de recuperação através dos ciclos de vida dos processos (AUTOSAR_SWS_Diagnostics p. 134). Se um canal previamente persistido puder ser restabelecido após uma reinicialização do gerenciador de diagnóstico, o manipulador de transporte reportará isso via NotifyReestablishment() ([SWS_DM_00326]). O gerenciador sincroniza o estado internamente e confirma essa ação chamando ChannelReestablished() ([SWS_DM_00313]).
Diagrama de sequência: Controle do ciclo de vida de um manipulador de transporte UDS pelo gerenciador genérico de diagnóstico. Fontes: [SWS_DM_00314], [SWS_DM_00319], [SWS_DM_00322], [SWS_DM_00323], AUTOSAR_SWS_Diagnostics p. 128
Execução de serviços UDS e tratamento de requisições específico da aplicação
Mensagens UDS recebidas são processadas passo a passo após a validação do protocolo (AUTOSAR_SWS_Diagnostics p. 130). Inicialmente, o manipulador de transporte anuncia uma mensagem iniciada junto ao gerenciador via IndicateMessage() para alocar recursos e buffers ([SWS_DM_00309]). A mensagem é encapsulada como UdsMessage, a qual disponibiliza endereço de origem ([SWS_DM_00297]), endereço de destino ([SWS_DM_00298]) e tipo de endereçamento ([SWS_DM_00299]). Após a recepção completa, o manipulador transfere o objeto de dados via HandleMessage() para o Diagnostic Management ([SWS_DM_00311]), sendo que metainformações específicas do canal são complementadas por meio de AddMetaInfo() ([SWS_DM_00302]).
No Release R25-11, a interação entre o daemon da plataforma e a aplicação segue um modelo invertido de disponibilização de serviços (AUTOSAR_AP_EXP_SWArchitecture p. 156): o daemon da plataforma realiza as portas de serviço, enquanto as Adaptive Applications implementam métodos de callback e ativam explicitamente sua prontidão para encaminhamento via Offer() ([SWS_DM_00557]) ou a suspendem via StopOffer() ([SWS_DM_00558]). Isso se aplica da mesma forma a rotinas genéricas (GenericRoutine [SWS_DM_00552]), rotinas tipadas (RoutineInterface [SWS_DM_00589] com Start [SWS_DM_00591]), identificadores de dados (GenericDataIdentifier [SWS_DM_00634] com Read [SWS_DM_00636] e Write [SWS_DM_00637]), bem como a serviços UDS genéricos (GenericUDSService [SWS_DM_00616] com HandleMessage [SWS_DM_00618]).
Transações de diagnóstico de maior duração (como transferências de bloco via UploadService [SWS_DM_00797], DownloadService [SWS_DM_00787] ou FileTransferService [SWS_DM_01325] de acordo com AUTOSAR_AP_EXP_SWArchitecture p. 163) são processadas de forma assíncrona via ara::core::Future. Para evitar bloqueios de recursos, os manipuladores específicos da aplicação recebem uma instância de CancellationHandler (AUTOSAR_AP_EXP_SWArchitecture p. 152). Por meio de IsCanceled(), a aplicação pode verificar se houve um cancelamento ([SWS_DM_00614]) ou registrar uma função de notificação via SetNotifier() ([SWS_DM_00615]). Para reinicializações coordenadas, é disponibilizada a interface EcuResetRequest ([SWS_DM_01010]), que delega requisições de reset ao State Management (AUTOSAR_AP_EXP_SWArchitecture p. 162).
Diagrama de sequência: Fluxo de controle de ponta a ponta de uma requisição UDS, desde a camada de transporte, passando pelo gerenciador de diagnóstico, até a aplicação utilizadora. Fontes: [SWS_DM_00309], [SWS_DM_00311], [SWS_DM_00327], AUTOSAR_SWS_Diagnostics p. 130
Monitoramento de eventos, debounce e gerenciamento da memória de falhas
Para a detecção e qualificação de falhas de sistema, o Diagnostic Management implementa um modelo hierárquico composto por monitores e eventos de diagnóstico (SWS_Diagnostics p. 225). Uma aplicação instancia um objeto Monitor ([SWS_DM_00548]) e reporta resultados de testes continuamente via ReportMonitorAction() ([SWS_DM_00543]). O módulo suporta algoritmos de debounce tanto baseados em contadores quanto baseados em tempo ([SWS_DM_00549], [SWS_DM_00550]). Por meio da interface Event, as aplicações podem determinar o byte de status UDS atual ([SWS_DM_00649]), verificar o status de debounce ([SWS_DM_00654]) ou registrar callbacks para alterações de status ([SWS_DM_00650]).
Para manter reduzido o footprint de portas em sistemas complexos, a plataforma fornece interfaces agregadas (AUTOSAR_AP_EXP_SWArchitecture p. 153): por meio de MultipleMonitor ([SWS_DM_01695]), MultipleEvent ([SWS_DM_01705]) e MultipleCondition ([SWS_DM_01727]), múltiplos canais de monitoramento podem ser endereçados por meio de uma port interface compartilhada. O gerenciamento de liberação para monitores é realizado por meio de objetos Condition ([SWS_DM_00712]), enquanto OperationCycle ([SWS_DM_00752]) e Indicator ([SWS_DM_00742], SWS_Diagnostics p. 633) controlam ciclos de operação e sinalizam solicitações de lâmpada de advertência.
Os eventos agregados convergem para o gerenciamento da memória de falhas, exposto via DTCInformation ([SWS_DM_00664], AUTOSAR_AP_EXP_SWArchitecture p. 144). Esta interface permite a leitura de registros armazenados ([SWS_DM_00669]), a limpeza seletiva ou global de DTCs ([SWS_DM_00671]) e a ativação da gravação de DTCs ([SWS_DM_00674]). Se ocorrer um estouro de capacidade da memória primária, a aplicação será notificada via SetEventMemoryOverflowNotifier() ([SWS_DM_00918], [SWS_DM_00919]).
Diagrama de estados/atividades: Fluxo desde a ação do monitor, passando pelo debounce, até a qualificação do DTC na memória de falhas. Fontes: [SWS_DM_00543], [SWS_DM_00649], [SWS_DM_00664], SWS_Diagnostics p. 225
Protocolos de diagnóstico estendidos: Integração de DoIP e serviços SOVD
Para redes veiculares baseadas em Ethernet, o módulo integra funções dedicadas de DoIP (Diagnostic communication over Internet Protocol conforme a ISO 13400-2) (AUTOSAR_AP_EXP_SWArchitecture p. 166, AUTOSAR_AP_EXP_SWArchitecture p. 167). Extensões da plataforma reportam o estado de linhas de ativação física via DoIPActivationLine::UpdateActivationLineState() ([SWS_DM_00834], AUTOSAR_AP_TPS_ManifestSpecification p. 338). Com base nisso, mensagens de anúncio do veículo (Vehicle Announcement Messages) podem ser disparadas via DoIPTriggerVehicleAnnouncement ([SWS_DM_00821], [SWS_DM_00822], AUTOSAR_AP_SWS_Diagnostics p. 108). A identificação de grupo e de entidade é consultada dinamicamente via DoIPGroupIdentification ([SWS_DM_00722]) e DoIPEntityIdentification ([SWS_DM_01364], [SWS_DM_01366]).
Diagrama de sequência: interação entre aplicação, linha de ativação e disparo de anúncios de veículo DoIP. Fontes: [SWS_DM_00822], [SWS_DM_00834], AUTOSAR_AP_SWS_Diagnostics p. 108
Além dos serviços UDS clássicos, o release R25-11 estabelece interfaces nativas para SOVD (Service-Oriented Vehicle Diagnostics, ASAM SOVD / ISO 13170) (AUTOSAR_AP_EXP_SWArchitecture p. 168). Dados de diagnóstico estruturados são modelados por meio de DiagnosticSovdContentElementData ([SWS_DM_02370], AUTOSAR_AP_EXP_SWArchitecture p. 170). Para a manipulação de payloads complexos análogos a JSON, estão disponíveis classes type-safe semelhantes à STL, como DiagnosticSovdArrayContentElementDataView ([SWS_DM_02245], AUTOSAR_AP_EXP_SWArchitecture p. 172) e DiagnosticSovdRecordContentElementDataView ([SWS_DM_02289], AUTOSAR_AP_EXP_SWArchitecture p. 174).
Para transações SOVD avançadas e proteções, o módulo define papéis padronizados: grandes volumes de dados (como traces ou crash dumps) são transferidos via SovdBulkData ([SWS_DM_01847], [SWS_DM_01854], AUTOSAR_AP_TPS_ManifestSpecification p. 321). O controle de acesso é realizado por meio de verificações de token e proximidade via SovdAuthorization ([SWS_DM_01489]) e SovdProximityChallenge ([SWS_DM_01480], [SWS_DM_01493]), enquanto as verificações de serviço são autorizadas por meio de SovdServiceValidation ([SWS_DM_01823], [SWS_DM_01827]).
Comportamento em caso de erro
O gerenciamento de erros do módulo diag baseia-se no padrão AUTOSAR ara::core::Result<T, ErrorCode> e exclui totalmente estados de erro silenciosos. Os erros são divididos, de acordo com suas causas funcionais, em cinco domínios de erro especializados (ErrorDomain), os quais definem tanto códigos de erro quanto classes de exceção correspondentes:
- Erros gerais de diagnóstico: A
DiagErrorDomain([SWS_DM_00520], [SWS_DM_00524]) e a respectivaDiagException([SWS_DM_00516]) sinalizam erros fundamentais de plataforma ou de configuração, tais como argumentos inválidos ou instâncias não inicializadas. - UDS Negative Response Codes (NRC): Rejeições de protocolo UDS específicas de acordo com a ISO 14229 são mapeadas por meio da
DiagUdsNrcErrorDomain([SWS_DM_00532], [SWS_DM_00536]) e daDiagUdsNrcException([SWS_DM_00528]). - Erros de disponibilização de serviço: Caso a ativação ou desativação de interfaces de porta falhe, atua a
DiagOfferErrorDomain([SWS_DM_00992], [SWS_DM_01003]) com aDiagOfferException([SWS_DM_00986]). - Erros de notificação de eventos e monitores: Erros durante a notificação de status de monitores são indicados pela
DiagReportingErrorDomain([SWS_DM_00999], [SWS_DM_01004]) eDiagReportingException([SWS_DM_00988]). - Erros de protocolo SOVD: Erros em endpoints REST, conteúdos JSON ou no controle de acesso são reportados por meio da
DiagSovdErrorDomain([SWS_DM_01812], [SWS_DM_01816]) e daDiagSovdException([SWS_DM_01808]).
No nível da camada de transporte, interrupções de transmissão, estouros de buffer ou quedas de conexão são reportados ao Diagnostic Management por meio do callback NotifyMessageFailure() ([SWS_DM_00310]). Isso permite que o módulo libere imediatamente os recursos alocados e, se aplicável, providencie mensagens de resposta negativa para o testador.
Diagrama de classes: arquitetura de domínios de erro e mapeamento dos códigos de erro e exceção padronizados no Diagnostic Management. Fontes: [SWS_DM_00520], [SWS_DM_00532], [SWS_DM_00992], [SWS_DM_00999], [SWS_DM_01812]
Evidências mais detalhadas
A base normativa do módulo diag apoia-se em três documentos de especificação centrais da AUTOSAR Adaptive Platform:
- Arquitetura de interfaces e componentes: As interfaces de sistema, o modelo de daemon, bem como a separação entre as camadas de transporte e de aplicação estão estabelecidos em
AUTOSAR_AP_EXP_SWArchitecture(AUTOSAR_AP_EXP_SWArchitecture p. 150, AUTOSAR_AP_EXP_SWArchitecture p. 164, AUTOSAR_AP_EXP_SWArchitecture p. 168). - Especificação do Diagnostic Management: As assinaturas de API detalhadas, os fluxos de sequência para tratamento de requisições, os ciclos de vida dos handlers de transporte e as regras de debouncing são definidos por
AUTOSAR_SWS_Diagnostics(AUTOSAR_SWS_Diagnostics p. 128, AUTOSAR_SWS_Diagnostics p. 130, SWS_Diagnostics p. 225). - Definições de manifesto e metamodelo: A vinculação declarativa de interfaces de porta, lógicas de validação e mapeamentos de serviço a componentes de software é regulamentada por
AUTOSAR_AP_TPS_ManifestSpecification(AUTOSAR_AP_TPS_ManifestSpecification p. 311, AUTOSAR_AP_TPS_ManifestSpecification p. 321, AUTOSAR_AP_TPS_ManifestSpecification p. 341).
Este guia de módulo foi gerado com base nas especificações do AUTOSAR Adaptive para o release R25-11. Todos os requisitos normativos provêm dos documentos de SWS e arquitetura referenciados.
function: 755 variable: 102 class: 79 type alias: 45 struct: 39 enumeration: 35
<ExtendedDataRecord-Namespace>
<ExtendedDataRecordElementInterface><RoutineInterface>UdsMessageUdsTransportProtocolHandlerUdsTransportProtocolMgrUdsTransportProtocolPeriodicHandlerByteSpanChannelIDUdsMessageConstPtrUdsMessagePtrUdsTransportProtocolHandlerIDAuthenticationCancellationHandlerClientAuthenticationClientAuthenticationHandleCommunicationControlConditionConversationCounterBasedDataIdentifierConcurrencyTypeDataTransferReadByPullHandlerDataTransferReadByPushHandlerDataTransferReadSessionDataTransferReadSharedDataHandlerDataTransferWriteHandlerDataTransferWriteSessionDiagErrorDomainDiagExceptionDiagnosticServiceDynamicAccessListDiagnosticSovdArrayContentElementDataConstIteratorDiagnosticSovdArrayContentElementDataConstViewDiagnosticSovdArrayContentElementDataIteratorDiagnosticSovdArrayContentElementDataViewDiagnosticSovdContentDataDiagnosticSovdContentElementDataDiagnosticSovdContentElementDataWithKeyDiagnosticSovdRecordContentElementDataConstIteratorDiagnosticSovdRecordContentElementDataConstViewDiagnosticSovdRecordContentElementDataIteratorDiagnosticSovdRecordContentElementDataViewDiagOfferErrorDomainDiagOfferExceptionDiagReportingErrorDomainDiagReportingExceptionDiagSovdErrorDomainDiagSovdExceptionDiagUdsNrcErrorDomainDiagUdsNrcExceptionDoIPActivationLineDoIPEntityIdentificationDoIPGroupIdentificationDoIPPowerModeDoIPTriggerVehicleAnnouncementDownloadServiceDTCInformationDynamicAccessListDiagServiceBuilderEcuResetRequestEventEventStatusByteExternalAuthenticationFileTransferServiceGenericDataIdentifierGenericDiagnosticSovdContentGenericDiagnosticSovdOperationGenericRoutineGenericUDSServiceHttpRedirectIndicatorMetaInfoMonitorMultipleConditionMultipleEventMultipleMonitorOperationCycleReleaseHandlerSecurityAccessServiceValidationSovdAuthorizationSovdBulkDataSovdConfigurationSovdContentConcurrencyTypeSovdOperationExecutionSovdProximityChallengeSovdProximityChallengeTypeSovdServiceValidationSovdSwUpdateTimeBasedTransmitCertificateUploadServiceGetDiagDomainGetDiagOfferDomainGetDiagReportingDomainGetDiagSovdErrorDomainGetDiagUdsNrcDomainMakeErrorCodeActivityStatusTypeConcurrencyTypeConditionTypeConfirmationStatusTypeControlDtcStatusTypeDataTransferExitTypeDebouncingStateDiagErrcDiagnosticSovdContentElementDataTypeDiagnosticSovdPrimitiveContentValueTypeDiagOfferErrcDiagReportingErrcDiagSovdErrcDiagUdsNrcErrcDTCFormatTypeEventStatusBitIndicatorStatusTypeInitMonitorReasonKeyCompareResultTypeMonitorActionOperationExecutionCapabilityOperationExecutionStatusPowerModeTypeProximityChallengeResultTypeSovdRequestMethodSovdUpdatePhaseSovdUpdateStatusTerminateOperationExecutionReasonUdsDtcStatusBitTypeConditionHandleTypeEventHandleTypeEventStatusByteNotifierInitMonitorNotifierMonitorHandleTypeProximityChallengeValidationResultTypeResetRequestTypeSecurityLevelTypeSessionControlTypekCustomResetkDefaultSessionkExtendedDiagnosticSessionkHardResetkKeyOffOnResetkLockedkProgrammingSessionkSafetySystemDiagnosticSessionkSoftResetClasses
<DataElementInterface><DataIdentifierInterface><ExtendedDataRecordElementInterface><RoutineInterface>AuthenticationCancellationHandlerClientAuthenticationClientAuthenticationHandleCommunicationControlConditionConversationCounterBasedDataIdentifierConcurrencyTypeDataTransferReadByPullHandlerDataTransferReadByPushHandlerDataTransferReadSessionDataTransferReadSharedDataHandlerDataTransferWriteHandlerDataTransferWriteSessionDiagErrorDomainDiagExceptionDiagnosticServiceDynamicAccessListDiagnosticSovdArrayContentElementDataConstIteratorDiagnosticSovdArrayContentElementDataConstViewDiagnosticSovdArrayContentElementDataIteratorDiagnosticSovdArrayContentElementDataViewDiagnosticSovdContentDataDiagnosticSovdContentElementDataDiagnosticSovdContentElementDataWithKeyDiagnosticSovdRecordContentElementDataConstIteratorDiagnosticSovdRecordContentElementDataConstViewDiagnosticSovdRecordContentElementDataIteratorDiagnosticSovdRecordContentElementDataViewDiagOfferErrorDomainDiagOfferExceptionDiagReportingErrorDomainDiagReportingExceptionDiagSovdErrorDomainDiagSovdExceptionDiagUdsNrcErrorDomainDiagUdsNrcExceptionDoIPActivationLineDoIPEntityIdentificationDoIPGroupIdentificationDoIPPowerModeDoIPTriggerVehicleAnnouncementDownloadServiceDTCInformationDynamicAccessListDiagServiceBuilderEcuResetRequestEventEventStatusByteExternalAuthenticationFileTransferServiceGenericDataIdentifierGenericDiagnosticSovdContentGenericDiagnosticSovdOperationGenericRoutineGenericUDSServiceHttpRedirectIndicatorMetaInfoMonitorMultipleConditionMultipleEventMultipleMonitorOperationCycleReleaseHandlerSecurityAccessServiceValidationSovdAuthorizationSovdBulkDataSovdConfigurationSovdContentConcurrencyTypeSovdOperationExecutionSovdProximityChallengeSovdProximityChallengeTypeSovdServiceValidationSovdSwUpdateTimeBasedTransmitCertificateUdsMessageUdsTransportProtocolHandlerUdsTransportProtocolMgrUdsTransportProtocolPeriodicHandlerUploadServiceFunções
GetDiagDomainGetDiagOfferDomainGetDiagReportingDomainGetDiagSovdErrorDomainGetDiagUdsNrcDomainMakeErrorCodeTipos
ByteSpanChannelIDConditionHandleTypeEventHandleTypeEventStatusByteNotifierInitMonitorNotifierMonitorHandleTypeProximityChallengeValidationResultTypeResetRequestTypeSecurityLevelTypeSessionControlTypeUdsMessageConstPtrUdsMessagePtrUdsTransportProtocolHandlerIDEnumerações
ActivityStatusTypeConcurrencyTypeConditionTypeConfirmationStatusTypeControlDtcStatusTypeDataTransferExitTypeDebouncingStateDiagErrcDiagnosticSovdContentElementDataTypeDiagnosticSovdPrimitiveContentValueTypeDiagOfferErrcDiagReportingErrcDiagSovdErrcDiagUdsNrcErrcDTCFormatTypeEventStatusBitIndicatorStatusTypeInitMonitorReasonKeyCompareResultTypeMonitorActionOperationExecutionCapabilityOperationExecutionStatusPowerModeTypeProximityChallengeResultTypeSovdRequestMethodSovdUpdatePhaseSovdUpdateStatusTerminateOperationExecutionReasonUdsDtcStatusBitTypeConstantes
kCustomResetkDefaultSessionkExtendedDiagnosticSessionkHardResetkKeyOffOnResetkLockedkProgrammingSessionkSafetySystemDiagnosticSessionkSoftResetMapa de temas
ara::diag
131Não há dados de elementos para esta versão
<DataElement-Namespace>
DiagnosticDataElementInterface class
<DataIdentifier-Namespace>
DiagnosticDataIdentifierInterface class
<ExtendedDataRecord-Namespace>
DiagnosticExtendedDataRecordInterface class
<RoutineInterface-Namespace>
DiagnosticRoutineInterface class
apext::diag::uds_transport
class represents an UDS message exchanged between DM generic core (UdsTransport ProtocolMgr) and a specific implementation of UdsTransportPr
Abstract Class, which a specific UDS Transport Protocol (plugin) shall subclass.
The UdsTransportProtocolMgr class manages the interaction between the Diagnostic Server instance(s) and various UDS Transport Protocols (e.g
UdsTransportProtocolPeriodicHandler class to support 0x2A service from ISO.
This is the type of ByteSpan.
using ByteSpan = ara::core::Span<ara::core::Byte>;This is the identification of channel on which to transmit.
using ChannelID = std::uint32_t;This is the unique_ptr for constant UdsMessages containing a custom deleter as provided by the generic/core DM part towards the UdsTransportLayer-Plugin.
using UdsMessageConstPtr = std::unique_ptr<const UdsMessage, std::function<void(const UdsMessage*)>>;This is the unique_ptr for UdsMessages containing a custom deleter as provided by the generic/ core DM part towards the UdsTransportLayer-Plugin.
using UdsMessagePtr = std::unique_ptr<UdsMessage, std::function<void(UdsMessage*)>>;UdsTransportProtocolHandler are flexible "plugins", which need an identification.
using UdsTransportProtocolHandlerID = std::uint8_t;ara::diag
Class to implement the Service Authentication interfaces to application.
CancellationHandler contains a shared state if the processing should be cancelled.
Interface for the application to inform the Diagnostic Server instance about the authentication states and the user roles that are currently
Definition of the ClientAuthenticationHandle which is returned to the application when an AuthenticationState is set by the application.
0x28 CommunicationControl interface
DiagnosticConditionInterface.
Conversation interface.
Represents the parameters for counter-based debouncing.
Specifies the Concurrency type of a DataIdentifier related port.
Handles data transfers initiated by RequestReadFile/-Directory with data pulled by AraDiag from the implementation.
Handles data transfers initiated by RequestReadFile/-Directory with data pushed by the implementation.
Encapsulates all data transfer reading variants.
Handles data transfers initiated by AddFile, ResumeFile or ReplaceFile ModeOfOperation handling per requested RequestWriteFile.
Encapsulates all data transfer writing variants.
Error domain for diagnostic errors.
herda de ara::core::ErrorDomain
Exception type thrown by Diag classes.
herda de ara::core::Exception
Definition of the DiagnosticServiceDynamicAccessList class, which is used by the application to build a DynamicAccessList.
Const iterator for a DiagnosticSovdArrayContentElementData.
Const view on a DiagnosticSovdContentElementData with Array type.
Iterator for a DiagnosticSovdArrayContentElementData.
View on a DiagnosticSovdContentElementData with Array type.
The DiagnosticSovdContentData declaration.
Diagnostic SOVD Abstract Content Data.
A DiagnosticSovdContentElementData with associated key.
Const iterator for a DiagnosticSovdRecordContentElementData.
Const view on a DiagnosticSovdContentElementData with Record type.
Iterator for a DiagnosticSovdRecordContentElementData.
View on a DiagnosticSovdContentElementData with Record type.
Error domain for diagnostic offer errors.
herda de ara::core::ErrorDomain
Exception type thrown by Diag classes.
herda de ara::core::Exception
Error domain for diagnostic reporting errors.
herda de ara::core::ErrorDomain
Exception type thrown by Diag classes.
herda de ara::core::Exception
Error domain for errors originating from SOVD.
herda de ara::core::ErrorDomain
Exception type for SOVD thrown by Diag classes.
herda de ara::core::Exception
Error domain for errors originating from several diagnostic classes.
herda de ara::core::ErrorDomain
Exception type thrown by Diag classes.
herda de ara::core::Exception
DiagnosticDoIPActivationLineInterface.
DoIPEntityIdentification class to obtain the EID if required.
DoIPGroupIdentificationInterface.
DiagnosticDoIPPowerModeInterface.
DiagnosticDoIPTriggerVehicleAnnouncement.
Download service interface.
Class to implement operations on DTC informations per configured DiagnosticMemory Destination.
Definition of the DynamicAccessListDiagServiceBuilder class, which is used by the application to build a DynamicAccessList.
Service EcuReset Request interface.
Class to implement operations on diagnostic Events.
Current event status byte, bit-encoded.
Definition of the ExternalAuthentication class, which is used by the application to receive an instance of the ClientAuthentication Class re
File Transfer service interface.
Generic DataIdentifier interface.
Generic Diagnostic SOVD Content interface.
Generic Diagnostic SOVD Operation interface .
Generic Routine interface.
Generic UDS interface.
Definition of HTTP-Redirect
DiagnosticIndicatorInterface provides functionality for handling indicators.
Metainfo interface.
Class to implement operations on diagnostic Monitor interface.
Class for multiple condition operations.
Class to implement operations on diagnostic Events with the multiple event interfaces.
Class to implement monitor operations on the multiple monitor interfaces.
DiagnosticOperationCycleInterface provides functionality for handling of operation cycles.
ReleaseHandler contains a shared state if the processing should be cancelled.
DiagnosticSecurityAccessInterface.
DiagnosticServiceValidationInterface.
Class to implement the SOVD Authorization interfaces in the application.
Generic SOVD Bulk Data interface.
Generic SOVD Configuration interface.
Specifies the Concurrency type of a SOVD Content related port.
Interface to handle the SOVD Operation Execution .
Class to implement the SOVD proximity_challenge interfaces in the application.
Holds the data returned by the SovdProximityChallenge::GetChallenge()
Class to implement manufacturer-/supplier-specific checks for SOVD in the application.
Class to implement the SovdSwUpdate interface.
Represents the parameters for time-based debouncing.
Class to implement the subfunction TransmitCertificate (29 04) of UDS service Authentication as interface to application
Upload service interface.
Obtain the reference to the single global DiagErrorDomain instance.
constexpr const ara::core::ErrorDomain & GetDiagDomain () noexcept;Obtain the reference to the single global DiagErrorDomain instance.
constexpr const ara::core::ErrorDomain & GetDiagOfferDomain () noexcept;Obtain the reference to the single global DiagReportingErrorDomain instance.
constexpr const ara::core::ErrorDomain & GetDiagReportingDomain () noexcept;Obtain the reference to the single global DiagSovdErrorDomain instance.
constexpr const ara::core::ErrorDomain & GetDiagSovdErrorDomain () noexcept;Obtain the reference to the single global DiagUdsNrcErrorDomain instance.
constexpr const ara::core::ErrorDomain & GetDiagUdsNrcDomain () noexcept;Create a new ErrorCode for DiagErrorDomain with the given support data type.
Sobrecargas MakeErrorCode 5
constexpr ara::core::ErrorCode MakeErrorCode (DiagErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; SWS_DM_00525constexpr ara::core::ErrorCode MakeErrorCode (DiagUdsNrcErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; SWS_DM_00537constexpr ara::core::ErrorCode MakeErrorCode (DiagOfferErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; SWS_DM_01005constexpr ara::core::ErrorCode MakeErrorCode (DiagReportingErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; SWS_DM_01006constexpr ara::core::ErrorCode MakeErrorCode (DiagSovdErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; SWS_DM_01817Type for current activity status.
enum class ActivityStatusType : std::uint8_t {...};Specifies the Concurrency types.
enum class ConcurrencyType : std::uint8_t {...};Type for Condition status.
enum class ConditionType : std::uint8_t {...};Represents the status of the service processing.
enum class ConfirmationStatusType : std::uint8_t {...};Type for ControlDTCStatus status as requested by UDS service 0x85 ControlDTCSetting.
enum class ControlDtcStatusType : std::uint8_t {...};Determines transfer exit signal type.
enum class DataTransferExitType : ara::core::Byte {...};Debounce status of event.
enum class DebouncingState : std::uint8_t {...};Specifies the types of internal errors that can occur upon calling Offer or ReportMonitorAction.
enum class DiagErrc : ara::core::ErrorDomain::CodeType {...};The type of the SOVD content data.
enum class DiagnosticSovdContentElementDataType : std::uint8_t {...};The primitive content element value types.
enum class DiagnosticSovdPrimitiveContentValueType : std::uint8_t {...};The DiagOfferErrc enumeration defines the error codes for the DiagOfferErrorDomain.
enum class DiagOfferErrc : ara::core::ErrorDomain::CodeType {...};The DiagReportingErrc enumeration defines the error codes for the DiagReportingErrorDomain.
enum class DiagReportingErrc : ara::core::ErrorDomain::CodeType {...};Specifies the types of errors that can occur in SOVD services.
enum class DiagSovdErrc : ara::core::ErrorDomain::CodeType {...};Specifies the types of internal errors that can occur upon calling Offer or ReportMonitorAction. The error codes described are defined in ISO 14229-1:2020 [1], Table A.1 "Negative Response Codes". In AUTOSAR, the three negative response code ranges, 0x00, 0x01-0x7F and 0x80-0xFF are respected, however, the value 0xFF is used to internally indicate, that there is no further processing and no response handling foreseen.
enum class DiagUdsNrcErrc : ara::core::ErrorDomain::CodeType {...};Represents the type of the DTC format according to ISO 14229-1 [30].
enum class DTCFormatType : std::uint8_t {...};Single event status bits.
enum class EventStatusBit : std::uint8_t {...};Represents the state of an indicator.
enum class IndicatorStatusType : std::uint8_t {...};Represents the status information reported to AAs why the monitor may be re-initalized.
enum class InitMonitorReason : std::uint32_t {...};Represents the status of the key compare.
enum class KeyCompareResultType : std::uint8_t {...};Represents the status information reported by AAs being relevant for error monitoring.
enum class MonitorAction : std::uint32_t {...};The standard operation execution capabilities .
enum class OperationExecutionCapability : std::uint8_t {...};The operation execution status .
enum class OperationExecutionStatus : std::uint8_t {...};PowerMode as defined in ISO 13400-2 [2].
enum class PowerModeType : std::uint8_t {...};This is the type of ProximityChallengeResultType.
enum class ProximityChallengeResultType : std::uint8_t {...};HTTP method used in the SOVD request.
enum class SovdRequestMethod : std::uint8_t {...};Phase type for a SOVD update.
enum class SovdUpdatePhase : std::uint8_t {...};Status type for a SOVD update .
enum class SovdUpdateStatus : std::uint8_t {...};The Terminate Operation reason .
enum class TerminateOperationExecutionReason : std::uint8_t {...};UDS DTC status bits according to ISO 14229-1.
enum class UdsDtcStatusBitType : std::uint8_t {...};Type to identify a condition.
using ConditionHandleType = std::uint8_t;Type to identify an event.
using EventHandleType = std::uint32_t;Register a notifier function which is called if a diagnostic event is changed.
using EventStatusByteNotifier = std::function<void(EventStatusByte)>;Notifier function which is called if the monitor needs to be re-initialized.
using InitMonitorNotifier = std::function<void(InitMonitorReason)>;Type to identify an monitor .
using MonitorHandleType = std::uint32_t;This is the type of ProximityChallengeValidationResultType.
using ProximityChallengeValidationResultType = ProximityChallenge ResultType;The type of the requested reset.
using ResetRequestType = std::uint8_t;Type for the active security level. .
using SecurityLevelType = std::uint8_t;Type for the active diagnostic session. .
using SessionControlType = std::uint8_t;kCustomReset
constexpr ResetRequestType kCustomReset = 3;Default session according to IS0 14229-1.
constexpr SessionControlType kDefaultSession = 0x01;Extended diagnostic session according to IS0 14229-1.
constexpr SessionControlType kExtendedDiagnosticSession = 0x03;HardReset.
constexpr ResetRequestType kHardReset = 1;KeyOffOnReset.
constexpr ResetRequestType kKeyOffOnReset = 2;Security level locked.
constexpr SecurityLevelType kLocked = 0x00;Programming session according to IS0 14229-1.
constexpr SessionControlType kProgrammingSession = 0x02;Safety system diagnostic session according to IS0 14229-1.
constexpr SessionControlType kSafetySystemDiagnosticSession = 0x04;SoftReset.
constexpr ResetRequestType kSoftReset = 0;Namespaces
- <DataElement-Namespace> 1 Klassen, 0 freie Funktionen
- <DataIdentifier-Namespace> 1 Klassen, 0 freie Funktionen
- <ExtendedDataRecord-Namespace> 1 Klassen, 0 freie Funktionen
- <RoutineInterface-Namespace> 1 Klassen, 0 freie Funktionen
- apext::diag::uds_transport 4 Klassen, 0 freie Funktionen
- ara::diag 78 Klassen, 10 freie Funktionen
Diagrama de classes UML do módulo
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão