DEENESPTFRRUARHIKOZHNL

Diagnostic Event Manager (DEM)

ModulDEM (Diagnostic Event Manager)
BSW-Modul-ID54
Standard-Header#include "Dem.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticEventManager.pdf
ClusterDiagnostic Services

Guia do móduloGERADO POR IA

Coleta resultados de diagnóstico dos monitores, qualifica-os e gerencia a memória de erros juntamente com os dados de contexto para testadores.
GERADO POR IA não revisado Modelo: claude-opus-5-5 · Esforço: high · Temperatura: não controlável · Prompt: 28cc2ed3ddd0 Procedência Perguntas em aberto (1)
Âncora causal: R20-11 Válido a partir de R20-11 Sintetizado para esta versão de especificação.
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Coleta resultados de diagnóstico dos monitores, qualifica-os e gerencia a memória de erros juntamente com os dados de contexto para testadores.

Existe exatamente um Diagnostic Event Manager por ECU [SWS_Dem_00126]. Ele recebe resultados de testes de monitores de diagnóstico, realiza o debounce deles e mantém a partir disso bits de status UDS, bem como entradas na memória de eventos com Freeze Frames e Extended Data. O DCM e o J1939Dcm filtram, leem e apagam esses dados através de APIs baseadas em cliente. Na maioria dos casos, seguem o padrão «selecionar, depois solicitar» [SWS_Dem_01253]. A condição de contorno mais importante é o ciclo de vida: antes de Dem_Init, as mensagens são apenas armazenadas em buffer; o módulo só se torna totalmente funcional depois disso.

Existe exatamente um Diagnostic Event Manager por ECU [SWS_Dem_00126]. Ele recebe resultados de monitores de diagnóstico em SW-Cs e módulos BSW e os qualifica. Ele disponibiliza os conteúdos da memória de erros para o DCM e o J1939Dcm. Ele está integrado entre o EcuM, o agendamento de Dem_MainFunction, o NvM, o FiM e o DET SWS DEM p. 247.

kontext SW-C-Monitore SW-C-Monitore Dem Dem SW-C-Monitore->Dem Dem_SetEventStatus (RTE) Dem->SW-C-Monitore InitMonitorForEvent, Status-Callbacks NvM NvM Dem->NvM NvM_ReadBlock / NvM_WriteBlock FiM FiM Dem->FiM FiM_DemInit / FiM_DemTriggerOnMonitorStatus Det Det Dem->Det Det_ReportError BSW-Monitore BSW-Monitore BSW-Monitore->Dem Dem_SetEventStatus EcuM EcuM EcuM->Dem Dem_PreInit / Dem_Init / Dem_Shutdown SchM SchM SchM->Dem Dem_MainFunction Dcm Dcm Dcm->Dem Seleção, filtro, leitura, exclusão (ClientId) J1939Dcm J1939Dcm J1939Dcm->Dem Dem_J1939Dcm-APIs FiM->Dem Dem_GetMonitorStatus

Diagrama de contexto: monitores fornecem resultados, clientes de diagnóstico e FiM utilizam o DEM. Fontes: SWS DEM p. 247

O ciclo de vida separa um modo de pré-inicialização da operação plena [SWS_Dem_00169]. Resultados reportados após Dem_PreInit são armazenados em buffer e ainda não disparam callbacks de status do monitor ([SWS_Dem_00167], [SWS_Dem_01289]). Com Dem_Init, o DEM torna-se totalmente funcional [SWS_Dem_00340]. Dem_Shutdown conclui operações pendentes e passa dados alterados para o NvM ([SWS_Dem_00102], [SWS_Dem_00341]).

Monitores reportam resultados qualificados ou preliminares com Dem_SetEventStatus [SWS_Dem_00926]. O DEM realiza o debounce por evento com base em contador, com base em tempo ou internamente no monitor [SWS_Dem_00413]. A partir disso, ele forma o Fault Detection Counter de -128 a +127 [SWS_Dem_00415]. O debounce e o status do monitor operam de forma síncrona, e o byte de status UDS opera de forma assíncrona ([SWS_Dem_01279], [SWS_Dem_01285]). Enable Conditions e uma configuração de DTC desativada bloqueiam o processamento SWS DEM p. 83.

Processamento de um relatório do monitorMonitorDemFiMSchMDem_SetEventStatus(EventId, EventStatus)altEnable Conditions atendidas e configuração de DTC liberadaDebounce baseado em contador (síncrono)Monitorstatus aktualisieren (synchron)FiM_DemTriggerOnMonitorStatus(EventId)(falls konfiguriert)caso contrárioVerarbeitung blockiertStd_ReturnTypeUse Case: Asynchrone FolgeverarbeitungDem_MainFunction()UDS-Statusbyte berechnen,Atualizar memória de eventos e dadosEventUdsStatusChanged-Callback(falls konfiguriert)

Diagrama de sequência: um report passa por debounce síncrono, o processamento UDS segue na MainFunction. Fontes: SWS DEM Fig. 9.12 p. 372, [SWS_Dem_01285]

O DEM cria entradas com contadores, Freeze Frames e Extended Data conforme o trigger configurado ([SWS_Dem_00783], [SWS_Dem_00039], [SWS_Dem_00809]). Se a memória estiver cheia, a estratégia de deslocamento decide ([SWS_Dem_00400], [SWS_Dem_00402]). O DCM acessa de acordo com o padrão «selecionar, depois solicitar». Dem_SelectDTC determina o destino para leitura, consulta de status e exclusão [SWS_Dem_01253]. Dem_SetDTCFilter define os critérios para listas de DTCs [SWS_Dem_00057].

O DEM reporta erros como erros de desenvolvimento do DET, por exemplo DEM_E_UNINIT ou DEM_E_WRONG_CONDITION [SWS_Dem_00173]. Em tempo de execução, fornece valores de retorno como DEM_WRONG_DTC ou DEM_BUSY ([SWS_Dem_01261], [SWS_Dem_01306]). Ele inicializa dados que o NvM não consegue ler [SWS_Dem_00578].

Papel e limite do sistema: serviço central de memória de erros da ECU

O Diagnostic Event Manager recebe resultados de monitores de diagnóstico e os qualifica em eventos. Ele armazena esses eventos com dados de contexto na memória de eventos. Existe exatamente um módulo DEM por ECU [SWS_Dem_00126]. Cada evento de diagnóstico é representado por um EventId exclusivo e um EventName ([SWS_Dem_00153], [SWS_Dem_00154]). Dem_EventIdType baseia-se em uint16, o valor 0 é inválido [SWS_Dem_00925] SWS DEM p. 339.

A Figure 8.1 mostra as interfaces para o ambiente SWS DEM p. 247:

  • O EcuM chama Init e Shutdown.
  • O agendamento chama Dem_MainFunction.
  • O NvM persiste dados [SWS_Dem_00164].
  • O FiM é informado sobre alterações de status [SWS_Dem_00029].
  • O DET recebe erros de desenvolvimento.
Monitores de SW-Cs reportam através de portas RTE como DiagnosticMonitor [SWS_Dem_00598]. O DCM e o J1939Dcm acessam, como clientes, uma DemEventMemorySet configurada através de uma ClientId ([SWS_Dem_01247], [SWS_Dem_01251]).
kontext SW-C-Monitore SW-C-Monitore Dem Dem SW-C-Monitore->Dem Dem_SetEventStatus (RTE) Dem->SW-C-Monitore InitMonitorForEvent, Status-Callbacks NvM NvM Dem->NvM NvM_ReadBlock / NvM_WriteBlock FiM FiM Dem->FiM FiM_DemInit / FiM_DemTriggerOnMonitorStatus Det Det Dem->Det Det_ReportError BSW-Monitore BSW-Monitore BSW-Monitore->Dem Dem_SetEventStatus EcuM EcuM EcuM->Dem Dem_PreInit / Dem_Init / Dem_Shutdown SchM SchM SchM->Dem Dem_MainFunction Dcm Dcm Dcm->Dem Seleção, filtro, leitura, exclusão (ClientId) J1939Dcm J1939Dcm J1939Dcm->Dem Dem_J1939Dcm-APIs FiM->Dem Dem_GetMonitorStatus

Diagrama de contexto: o DEM é o consumidor de dados dos monitores e a fonte de dados para clientes de diagnóstico e FiM. Fontes: SWS DEM p. 247, [SWS_Dem_00256]

Ciclo de vida: pré-inicialização, operação e shutdown

O DEM distingue entre um modo de pré-inicialização e um modo totalmente inicializado [SWS_Dem_00169]. Dem_PreInit inicializa os estados necessários para o processamento de eventos [SWS_Dem_00180], incluindo o debounce interno [SWS_Dem_01213]. Os eventos reportados depois disso vão para um buffer [SWS_Dem_00167] e ainda não disparam callbacks de status do monitor [SWS_Dem_01289] SWS DEM Fig. 7.42 p. 169.

Dem_Init aceita o ponteiro post-build para Dem_ConfigType ([SWS_Dem_00181], [SWS_Dem_00924]). A função inicializa ou reinicializa o módulo SWS DEM p. 260. Depois disso, o DEM fica totalmente funcional [SWS_Dem_00340]. O status do monitor é formado a partir de resultados previamente reportados ou do estado do NvM [SWS_Dem_01326]. Somente então segue FiM_DemInit [SWS_Dem_01325]. Um reinício de ciclo acionado antes de Dem_Init é recuperado [SWS_Dem_01318].

Em operação, Dem_MainFunction processa todas as funções não orientadas a eventos [SWS_Dem_00125]. Dem_Shutdown conclui operações pendentes [SWS_Dem_00102]. Dados não voláteis alterados vão para o NvM o mais tardar nesse momento [SWS_Dem_00341]. Interpretação: como Dem_Init, segundo [SWS_Dem_00181], também reinicializa, um reinício após Dem_Shutdown provavelmente ocorreria através de uma nova chamada a Dem_Init. Pergunta (aberta)

lebenszyklus start Start uninit Não inicializado start->uninit pre Pré-inicializado (as mensagens são armazenadas em buffer) uninit->pre Dem_PreInit voll Voll initialisiert (Dem_MainFunction verarbeitet) pre->voll Dem_Init(ConfigPtr) voll->voll Dem_Init (Reinitialisierung) aus Heruntergefahren voll->aus Dem_Shutdown aus->voll Dem_Init (vermutlich Neustart)

Diagrama de estados: modos do DEM desde a pré-inicialização até o shutdown. O reinício após o shutdown é uma suposição. Fontes: [SWS_Dem_00169], [SWS_Dem_00181], [SWS_Dem_00182]

Armazenamento em buffer entre Dem_PreInit e Dem_InitEcuMMonitor (SW-C/BSW)DemFiMSchMUse Case: VorinitialisierungDem_PreInit()Estados internos eEntprellung initialisierenDem_SetEventStatus(EventId, EventStatus)Meldung puffern,nenhum callback de status do monitorUse Case: InitialisierungDem_Init(ConfigPtr)Formar o status do monitor a partir de mensagensou do estado da NvMFiM_DemInit()Retorno: Dem totalmente operacionalUse Case: BetriebloopzyklischDem_MainFunction()Processamento não acionado por eventos

Diagrama de sequência: entre Dem_PreInit e Dem_Init, as mensagens são armazenadas em buffer sem callbacks. Fontes: SWS DEM Fig. 7.15 p. 85, [SWS_Dem_01189]

Do report do monitor ao resultado qualificado

Os monitores reportam resultados de testes com Dem_SetEventStatus assim que um novo resultado estiver disponível ([SWS_Dem_00330], SWS DEM p. 81). Dem_EventStatusType distingue três tipos de mensagens [SWS_Dem_00926]:

  • resultados qualificados (DEM_EVENT_STATUS_PASSED/_FAILED),
  • resultados preliminares para o debounce interno (_PREPASSED/_PREFAILED),
  • DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED.

O debounce é configurável por evento [SWS_Dem_00413]:

O DEM mapeia linearmente os valores de contadores ou temporizadores para o Fault Detection Counter de -128 a +127 ([SWS_Dem_00415], [SWS_Dem_00427]). O debounce baseado em contador e o status do monitor são executados de forma síncrona no contexto da chamada ([SWS_Dem_01279], [SWS_Dem_01280]). Em contrapartida, o DEM calcula o byte de status UDS de forma assíncrona [SWS_Dem_01285] SWS DEM p. 83.
Processamento de um relatório do monitorMonitorDemFiMSchMDem_SetEventStatus(EventId, EventStatus)altEnable Conditions atendidas e configuração de DTC liberadaDebounce baseado em contador (síncrono)Monitorstatus aktualisieren (synchron)FiM_DemTriggerOnMonitorStatus(EventId)(falls konfiguriert)caso contrárioVerarbeitung blockiertStd_ReturnTypeUse Case: Asynchrone FolgeverarbeitungDem_MainFunction()UDS-Statusbyte berechnen,Atualizar memória de eventos e dadosEventUdsStatusChanged-Callback(falls konfiguriert)

Diagrama de sequência: um report passa por debounce síncrono, o processamento posterior do UDS ocorre de forma assíncrona. Fontes: SWS DEM Fig. 9.12 p. 372, [SWS_Dem_01285]

O DEM define os bits de status UDS 0 a 7 de acordo com regras de transição próprias ([SWS_Dem_00386], [SWS_Dem_00395]). Dem_ResetEventStatus redefine o bit 0 de forma assíncrona e inicializa o debounce sem reportar um resultado Passed [SWS_Dem_00187] SWS DEM p. 79. Se o evento já tiver sido testado no ciclo atual, a chamada retorna E_NOT_OK [SWS_Dem_00638]. Dem_ResetEventDebounceStatus congela o debounce ou o redefine ([SWS_Dem_00684], [SWS_Dem_00685]).

testfailed start Start f TestFailed = FALSE start->f Initialzustand t TestFailed = TRUE f->t Dem_SetEventStatus(FAILED) ou debounced qualificado t->f Dem_SetEventStatus(PASSED) t->f Dem_ResetEventStatus t->f ClearDTC

Diagrama de estados: transições do bit 0 de status UDS (TestFailed). Fontes: SWS DEM Fig. 7.15 p. 70, [SWS_Dem_00386]

Condições de habilitação, ciclos de operação e disponibilidade

Enable Conditions e uma configuração de DTC desativada bloqueiam o processamento de mensagens de status SWS DEM p. 83. As regras para isso constam em [SWS_Dem_00449] e [SWS_Dem_00079]. DemDebounceBehavior define se o debounce é redefinido [SWS_Dem_00654] ou congelado [SWS_Dem_00655] durante o processo. As Storage Conditions, por outro lado, apenas impedem o armazenamento na memória ([SWS_Dem_00455], [SWS_Dem_00556]).

Dem_RestartOperationCycle opera de forma assíncrona. Os monitores afetados são reinicializados através de InitMonitorForEvent [SWS_Dem_00679] SWS DEM p. 274. Reinicializações não são armazenadas em buffer [SWS_Dem_01316]. Outros disparadores para InitMonitorForEvent são:

Em caso de disparadores simultâneos, o callback é chamado apenas uma vez, com o motivo de maior prioridade [SWS_Dem_01046] SWS DEM p. 47.

O DEM trata eventos indisponíveis marcados com Dem_SetEventAvailable como se não estivessem configurados [SWS_Dem_01108] SWS DEM p. 66. Em VARIANT-POST-BUILD, essa API está ausente [SWS_Dem_01106]. Um DTC suprimido, por outro lado, fica invisível apenas para o testador; o processamento do evento continua [SWS_Dem_01102].

Memória de eventos: armazenamento, dados de contexto e deslocamento

O DEM gerencia a memória de eventos primária [SWS_Dem_00010] e, opcionalmente, memórias definidas pelo usuário com o mesmo comportamento [SWS_Dem_01063]. Uma entrada agrupa contadores, Freeze Frames e Extended Data SWS DEM Fig. 7.13 p. 77. DemEventMemoryEntryStorageTrigger determina quando uma entrada é criada:

Por meio de aging, os dados relacionados ao evento são removidos [SWS_Dem_01075].

Os freeze frames são específicos de eventos e consistem em DIDs configurados ([SWS_Dem_00039], [SWS_Dem_00040]). No caso de dados voláteis, o monitor os coleta previamente com Dem_PrestoreFreezeFrame. O DEM utiliza esses dados durante o armazenamento [SWS_Dem_00464] SWS DEM Fig. 7.37 p. 128. Os extended data records são coletados mediante triggers configurados [SWS_Dem_00809]. Eles podem conter valores internos como occurrence counter [SWS_Dem_00471].

Se não houver uma entrada livre, o DEM verifica a possibilidade de substituição [SWS_Dem_00400]. DEM_DISPLACEMENT_NONE a exclui [SWS_Dem_00402]. Sem candidatos, o armazenamento é descartado [SWS_Dem_00407]. Caso contrário, a entrada é removida e os bits de status são ajustados ([SWS_Dem_00408], [SWS_Dem_00409]). O DEM sinaliza um overflow para cada memória [SWS_Dem_00397].

verdraengung s Nova entrada de memória necessária frei Freier Eintrag vorhanden? s->frei anlegen Eintrag anlegen frei->anlegen sim strat DemEventDisplacementStrategy = DEM_DISPLACEMENT_NONE? frei->strat não such Procurar entradas de prioridade mais baixa strat->such não verw Speicheranforderung verwerfen strat->verw sim prio Prioridade do evento reportado suficiente (cf. Figure 7.28)? such->prio passiv Dar preferência a entradas passivas entre os resultados encontrados prio->passiv sim prio->verw nein / kein Kandidat verdr Substituir a entrada encontrada mais antiga, ajustar bits de estado passiv->verdr verdr->anlegen

Diagrama de atividades: sequência simplificada de critérios de substituição, sem a etapa de filtragem OBD. Fontes: SWS DEM Fig. 7.28 p. 98, [SWS_Dem_00406]

Acesso por DCM, J1939Dcm e serviços OBD

Muitas APIs seguem o padrão «selecionar, depois solicitar». Dem_SelectDTC define DTC, formato e origin como destino. Sobre isso atuam, por exemplo, Dem_ClearDTC, Dem_GetStatusOfDTC e Dem_SelectFreezeFrameData [SWS_Dem_01253] SWS DEM p. 215. Para listas de DTCs, Dem_SetDTCFilter define os critérios [SWS_Dem_00057]. Dem_GetNextFilteredDTC itera subsequentemente sobre os resultados [SWS_Dem_00216]. Os bytes de status fornecidos são mascarados com a availability mask [SWS_Dem_00657].

O DCM lê freeze frames com Dem_GetNextFreezeFrameData, após ter selecionado DTC e registro [SWS_Dem_01268] SWS DEM Fig. 9.7 p. 369. Nessa ocasião, o DEM fornece o layout de registro pronto SWS DEM Fig. 7.48 p. 195. Extended data são lidos de forma análoga [SWS_Dem_01272].

Para a exclusão, o DCM verifica primeiro a seleção e, em seguida, chama Dem_ClearDTC ([SWS_Dem_91020], [SWS_Dem_00665]). Antes da exclusão, o DEM consulta DemClearEventAllowed [SWS_Dem_00515] SWS DEM Fig. 9.3 p. 367. As APIs J1939 estão disponíveis quando DemGeneralJ1939 está configurado [SWS_Dem_00845]. Em caso de suporte a OBD, o DEM fornece adicionalmente:

O PID $31/$4D/$4E é calculado apenas pela ECU mestre [SWS_Dem_00703] SWS DEM p. 170.
Exclusão de um DTC (UDS 0x14)TesterDcmDemMonitor-SW-CClearDiagnosticInformation(DTC)Dem_SelectDTC(ClientId, DTC, DTCFormat, DTCOrigin)loopsolange DEM_PENDINGDem_GetDTCSelectionResultForClearDTC(ClientId)loopsolange DEM_PENDINGDem_ClearDTC(ClientId)<Module>_DemClearEventAllowed(Allowed)AllowedoptAllowed == TRUEResetar status, dados relacionados ao evento ePrestored Freeze FramesInitMonitorForEvent(DEM_INIT_MONITOR_CLEAR)DEM_PENDING / ErgebnisResposta positiva ou negativa

Diagrama de sequência: exclusão por meio de seleção, consulta de liberação e reinicialização dos monitores. Fontes: SWS DEM Fig. 9.2 p. 366, [SWS_Dem_00680]

Comportamento em caso de erro

O DEM reporta erros de desenvolvimento ao DET, por exemplo, DEM_E_UNINIT, DEM_E_PARAM_POINTER ou DEM_E_WRONG_CONDITION [SWS_Dem_00173] SWS DEM p. 238. Chamadas antes da inicialização geram DEM_E_UNINIT; exceções são, entre outras, Dem_SetEventStatus e Dem_ResetEventStatus [SWS_Dem_00124]. O mesmo se aplica após o shutdown [SWS_Dem_00368].

Em tempo de execução, as APIs fornecem os seguintes valores de retorno:

Sob quais condições um processo de exclusão é considerado com falha é definido por [SWS_Dem_01202].

Dados que o NvM não consegue ler são inicializados pelo DEM [SWS_Dem_00578]. Ele ignora erros de gravação [SWS_Dem_00579]. Dados de prestore cujo layout não seja mais compatível após uma reprogramação são ignorados [SWS_Dem_01323].

Evidências mais detalhadas

Guia gerado por IA com base nos requirements (R20-11) e passagens de documentos contidos no payload. Apenas os requirements citados são normativos; algumas passagens de documentos provêm de outros releases.

Diagnostic Event Manager (DEM)

The DEM is responsible for processing and storing diagnostic events, fault memories, DTC statuses, and associated freeze frame data.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

função Dem_GetVersionInfo [SWS_Dem_00177] 📄 PDF

void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);

Returns the version information of this module. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemVersionInfoApi)} == true)

função Dem_PreInit [SWS_Dem_00179] 📄 PDF

void Dem_PreInit (void);

Initializes the internal states necessary to process events reported by BSW-modules.

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

A função Dem_PreInit serve, durante o arranque do sistema, para a pré-inicialização dos estados internos do módulo DEM que são necessários para o processamento precoce de notificações de eventos provenientes de módulos BSW ([SWS_Dem_00179], [SWS_Dem_00180]). A chamada ocorre de forma síncrona, é não reentrante e não possui parâmetros de passagem nem valor de retorno ([SWS_Dem_00179]).

Com a chamada de Dem_PreInit, são inicializados os mecanismos internos de debounce, incluindo contadores e temporizadores ([SWS_Dem_01213]). Se estiver configurado um debounce interno do DEM, o módulo reinicializa o respetivo algoritmo de debounce ([SWS_Dem_00438]).

Após a conclusão bem-sucedida de Dem_PreInit e antes da chamada de Dem_Init, interfaces e comportamentos selecionados são libertados:

  • Estado do evento e debounce: São suportadas chamadas de Dem_SetEventStatus para o debounce com os estados DEM_EVENT_STATUS_PREPASSED e DEM_EVENT_STATUS_PREFAILED ([SWS_Dem_01212]). Contudo, quaisquer eventos reportados antes de Dem_Init não desencadeiam callbacks para a alteração de estado do monitor ([SWS_Dem_01289]).
  • Controlar estado de debounce: A função Dem_ResetEventDebounceStatus para repor ou congelar contadores de debounce fica disponível para os módulos BSW após a conclusão de Dem_PreInit ([SWS_Dem_00180], [SWS_Dem_00683]).
  • Limiares de confirmação e ciclos de operação: O DEM suporta, após Dem_PreInit, chamadas de Dem_SetEventConfirmationThresholdCounter ([SWS_Dem_01242]). Uma chamada de Dem_RestartOperationCycle também só é permitida a partir desse momento; se um ciclo de operação for reiniciado antes de Dem_Init, o processamento efetivo do reinício só ocorre após Dem_Init ([SWS_Dem_01318]).

Este texto foi gerado por uma IA com base na especificação.

Guia do implementador em breve (complexidade I2)

função Dem_Init [SWS_Dem_00181] 📄 PDF

void Dem_Init (const Dem_ConfigType* ConfigPtr);

Initializes or reinitializes this module.

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

A função síncrona e não reentrante Dem_Init inicializa ou reinicializa completamente o módulo Diagnostic Event Manager (DEM) conforme [SWS_Dem_00181]. Após a conclusão desta chamada, o DEM está totalmente operacional ([SWS_Dem_00340]). Por meio do parâmetro de entrada ConfigPtr, é passado em VARIANT-POST-BUILD um ponteiro para o conjunto de dados de configuração post-build ([SWS_Dem_00181]).

No âmbito do fluxo de inicialização, Dem_Init executa etapas essenciais de restauração e sincronização:

  • Inicialização de estados e monitores: os estados de monitores e componentes são inicializados ([SWS_Dem_01324]). Enquanto chamadas de Dem_GetMonitorStatus antes da conclusão da inicialização fornecem E_NOT_OK ([SWS_Dem_01326]), Dem_GetMonitorStatus e Dem_GetComponentFailed retornam E_OK após esse momento ([SWS_Dem_01324]).
  • Memória não volátil (NVM): se configurado (DemDebounceCounterStorage == True), o DEM restaura o contador interno de debouncing o mais tardar em Dem_Init ([SWS_Dem_00675]). Da mesma forma, dados de freeze frame pré-configurados são carregados da NVM antes do retorno da função ([SWS_Dem_01322]), para o que o DEM recorre a APIs de NvM como NvM_ReadBlock ([SWS_Dem_00164]). Por meio da chamada de Dem_Init, o bloqueio da memória de eventos após um Dem_Shutdown prévio também é cancelado ([SWS_Dem_00102]).
  • Interação e bufferização: se DemTriggerFiMReports estiver definido como True, Dem_Init chama exclusivamente neste momento FiM_DemInit para inicializar as permissões no Function Inhibition Manager ([SWS_Dem_01189]). Eventos que foram bufferizados antes de Dem_Init ([SWS_Dem_00167], [SWS_Dem_01079]) não disparam callbacks de mudança de estado de monitor antes de Dem_Init ([SWS_Dem_01289]). Um reinício de ciclo solicitado antes de Dem_Init via Dem_RestartOperationCycle só é processado após Dem_Init ([SWS_Dem_01318]).

Em relação ao tratamento de erros: se Dem_Shutdown tiver sido chamado, o DEM confirma, com a detecção de desenvolvimento ativa, chamadas para a maioria das APIs com o erro DEM_E_UNINIT até que Dem_Init seja executado novamente ([SWS_Dem_00368]).

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

Guia do implementador em breve (complexidade I2)

função Dem_Shutdown [SWS_Dem_00182] 📄 PDF

void Dem_Shutdown (void);

Shuts down this module.

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

A função síncrona e não reentrante Dem_Shutdown serve para o desligamento ordenado do módulo Diagnostic Event Manager ([SWS_Dem_00182]). Ela não possui parâmetros de entrada nem de retorno ([SWS_Dem_00182]). O contexto de chamada reside presumivelmente no âmbito da sequência central de desligamento da unidade de comando. Pergunta Q-a0e6a5700c49d786 (aberta)

Ao ser chamada, Dem_Shutdown conclui todas as operações ainda pendentes do módulo DEM para preparar os estados internos e dados para a transmissão para a NVRAM ([SWS_Dem_00102]). Para dados não voláteis alterados, o DEM inicia a gravação na NVRAM antes ou durante Dem_Shutdown ([SWS_Dem_00341]). Na medida do necessário, o módulo utiliza as interfaces NvM_WriteBlock e NvM_ReadBlock do NVRAM Manager para salvar e restaurar dados entre Dem_Init e Dem_Shutdown ([SWS_Dem_00164]). Se o DEM tiver sido configurado de modo que os dados de Freeze Frame salvos previamente sejam armazenados de forma não volátil, esse salvamento ocorre uma única vez e, no mais tardar, durante Dem_Shutdown ([SWS_Dem_01321]).

Com a execução do shutdown, a memória de eventos é bloqueada e não pode mais ser modificada até uma nova chamada de Dem_Init ([SWS_Dem_00102]). Além disso, aplicam-se as seguintes condições de erro com a detecção de erros de desenvolvimento (Development Error Detection) ativada:

  • Se uma API do DEM for chamada após Dem_Shutdown – exceto Dem_SetEventStatus, Dem_ResetEventDebounceStatus, Dem_GetVersionInfo e Dem_MainFunction –, o módulo define o código de erro DEM_E_UNINIT até o próximo Dem_Init ([SWS_Dem_00368]).
  • Se Dem_SetEventStatus ou Dem_ResetEventDebounceStatus forem chamados após Dem_Shutdown para eventos nos quais DemDebounceCounterStorage está definido como True, o DEM reporta o código de erro DEM_E_WRONG_CONDITION ([SWS_Dem_00676]).

Este texto foi gerado por uma IA e serve como orientação. Vinculativas são as determinações da respectiva especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função Dem_ClearDTC [SWS_Dem_00665] 📄 PDF

Std_ReturnType Dem_ClearDTC (uint8 ClientId);

Clears single DTCs, as well as groups of DTCs.

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

A função assíncrona Dem_ClearDTC serve para a exclusão de códigos de falha de diagnóstico (DTCs) individuais ou de grupos inteiros de DTCs no Diagnostic Event Manager [SWS_Dem_00665]. Antes da chamada, a seleção de destino composta por DTC, formato e local de memória deve ter sido definida por meio de Dem_SelectDTC para o respectivo ClientId [SWS_Dem_01253]. A função é reentrante para diferentes valores de ClientId, mas não é reentrante para o mesmo cliente [SWS_Dem_00665].

O processo de exclusão é confirmado com E_OK assim que for concluído com sucesso [SWS_Dem_00665]. Enquanto a limpeza estiver em andamento, a API retorna DEM_PENDING, momento em que o chamador deve chamar a função novamente em um momento posterior [SWS_Dem_00665]. Se outra operação dependente de Dem_SelectDTC estiver ativa em paralelo para o mesmo cliente, DEM_BUSY é reportado [SWS_Dem_00665]. O DEM processa múltiplas solicitações paralelas de clientes internamente [SWS_Dem_00661], em que chamadas concorrentes durante um processo de exclusão em andamento podem receber DEM_PENDING [SWS_Dem_00664] ou DEM_CLEAR_BUSY [SWS_Dem_00665].

A API confirma chamadas errôneas com valores de retorno específicos:

  • E_NOT_OK: Nenhum DTC foi selecionado previamente [SWS_Dem_00665].
  • DEM_WRONG_DTC: O DTC não existe [SWS_Dem_00665], está suprimido [SWS_Dem_01100] ou a configuração DemClearDTCLimitation força DEM_ONLY_CLEAR_ALL_DTCS [SWS_Dem_00670].
  • DEM_WRONG_DTCORIGIN: O local de memória selecionado não existe [SWS_Dem_00665].
  • DEM_CLEAR_FAILED ou DEM_CLEAR_MEMORY_ERROR: A exclusão falhou ou ocorreu um erro durante a exclusão na memória não volátil [SWS_Dem_00665].

No âmbito da exclusão, em DTCs combinados, todos os eventos vinculados são limpos [SWS_Dem_00440] e a inicialização de seus monitores é disparada via InitMonitorForEvent com DEM_INIT_MONITOR_CLEAR [SWS_Dem_00680]. Com DemTriggerMonitorInitBeforeClearOk definido, o retorno de E_OK ocorre somente após esse acionamento [SWS_Dem_00573]. Se todos os DTCs de uma memória de eventos forem excluídos, o DEM redefine seu indicador de estouro [SWS_Dem_00399]; além disso, no serviço OBD $04, dados DTR não atribuídos são redefinidos [SWS_Dem_00764] e eventos não vinculados à memória são limpos [SWS_Dem_01249].

Este texto foi gerado por uma IA e serve para orientação técnica.

Guia do implementador em breve (complexidade I2)

função Dem_ClearPrestoredFreezeFrame [SWS_Dem_00193] 📄 PDF

Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);

Clears a prestored freeze frame of a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

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

Utilização e contexto de chamada

A função síncrona Dem_ClearPrestoredFreezeFrame exclui um freeze frame previamente armazenado de forma intermediária referente a um evento de diagnóstico específico ([SWS_Dem_00193]). A chamada ocorre exclusivamente via RTE; uma declaração no arquivo de cabeçalho Dem.h não é fornecida ([SWS_Dem_00193]). A API só é implementada no sistema se pelo menos um evento foi configurado para o pré-armazenamento (parâmetro de configuração DemFFPrestorageSupported) ([SWS_Dem_00193], [SWS_Dem_00334]). A função retorna E_OK em caso de exclusão bem-sucedida e E_NOT_OK se a operação falhar ([SWS_Dem_00193]).

Simultaneidade e restrições

A interface é reentrante para diferentes IDs de evento (EventId), mas não pode ser executada de forma concorrente para o mesmo EventId ([SWS_Dem_00193]). Uma chamada com eventos configurados como eventos escravos (DemMultiEventTriggeringSlaveEventRef) ou como eventos substitutos (DemStorageConditionReplacementEventRef) não é suportada; o comportamento do DEM é indefinido neste caso ([SWS_Dem_01339]). Se um evento estiver definido como não disponível, ele é tratado como um evento não configurado ([SWS_Dem_01108]); interpretação: a chamada deve ser rejeitada com E_NOT_OK neste caso. Pergunta Q-d8ebaf6883138fdf (aberta)

Interação em Multi-Event-Triggering

Desde que DemMultiEventTriggering esteja configurado e a função seja chamada para um evento mestre (DemMultiEventTriggeringMasterEventRef), o DEM dispara a chamada de exclusão com parâmetros idênticos automaticamente para todos os eventos escravos associados (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).

Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR Classic Release R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_GetDTCSelectionResult [SWS_Dem_91023] 📄 PDF

Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);

Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.

função Dem_GetDTCSelectionResultForClearDTC [SWS_Dem_91020] 📄 PDF

Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);

Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs, respecting the settings if the Dem shall clear only all DTCs.

função Dem_GetDebouncingOfEvent [SWS_Dem_00730] 📄 PDF

Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);

Gets the debouncing status of an event. This function shall not be used for EventId with native debouncing within their functions. It is rather for EventIds using debouncing within the Dem.

função Dem_GetDTCSuppression [SWS_Dem_91025] 📄 PDF

Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);

Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)

função Dem_GetFaultDetectionCounter [SWS_Dem_00203] 📄 PDF

Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);

Gets the fault detection counter of an event. This API can only be used through the RTE, and therefore no declaration is exported via Dem.h.

função Dem_GetIndicatorStatus [SWS_Dem_00205] 📄 PDF

Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);

Gets the indicator status derived from the UDS status. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEventMemory Set/DemIndicator)} != NULL)

função Dem_ResetEventDebounceStatus [SWS_Dem_00683] 📄 PDF

Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);

Control the internal debounce counter/timer by BSW modules and SW-Cs. The event qualification will not be affected by these debounce state changes. This API is available for BSW modules as soon as Dem_PreInit has been completed (refer to SWS_Dem_00438 and SWS_Dem_00167).

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

A função síncrona Dem_ResetEventDebounceStatus serve para que módulos BSW e componentes de software (SW-Cs) congelem ou redefinam de forma direcionada o contador ou temporizador interno de debounce de um evento de diagnóstico, sem influenciar a qualificação do evento [SWS_Dem_00683].

Utilização e parâmetros

Através do parâmetro DebounceResetStatus é controlada a ação desejada: o valor DEM_DEBOUNCE_STATUS_FREEZE congela o temporizador interno de debounce [SWS_Dem_00685], enquanto DEM_DEBOUNCE_STATUS_RESET redefine o contador de detecção de falhas correspondente (Fault Detection Counter) [SWS_Dem_00684] [SWS_Dem_00927]. A função retorna E_OK em caso de execução bem-sucedida e E_NOT_OK exclusivamente em caso de erro de desenvolvimento [SWS_Dem_00683].

Tratamento de erros e ciclo de vida

A API já está disponível para módulos BSW após a conclusão de Dem_PreInit e, portanto, está isenta da verificação geral de inicialização antes da inicialização completa [SWS_Dem_00124] [SWS_Dem_00683]. Com a detecção de desenvolvimento ativada, aplicam-se as seguintes condições:

  • Se a função for chamada antes da pré-inicialização, o DEM relata o erro DEM_E_UNINIT [SWS_Dem_00364].
  • Se a chamada ocorrer para eventos com contador de debounce persistente (DemDebounceCounterStorage em True) antes de Dem_Init ou após Dem_Shutdown, DEM_E_WRONG_CONDITION é definido [SWS_Dem_00676].
  • Se um evento estiver marcado como não disponível, ele é tratado como um evento não configurado [SWS_Dem_01108].

Simultaneidade e restrições

Dem_ResetEventDebounceStatus é reentrante para diferentes valores de EventId, mas não reentrante para o mesmo evento [SWS_Dem_00683]. Com DemMultiEventTriggering configurado, uma chamada com um evento mestre aciona chamadas idênticas para todos os eventos escravos associados [SWS_Dem_01250]. Chamadas diretas para eventos escravos puramente internos ou eventos referenciados via DemStorageConditionReplacementEventRef não são suportadas e levam a comportamento indefinido [SWS_Dem_01339].

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

Guia do implementador em breve (complexidade I2)

função Dem_ResetEventStatus [SWS_Dem_00185] 📄 PDF

Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);

Resets the event failed status. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

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

A função Dem_ResetEventStatus destina-se a redefinir o status de erro de um evento de diagnóstico e está disponível exclusivamente através da RTE [SWS_Dem_00185]. A chamada é realizada com o EventId e possui semântica assíncrona: Em caso de aceitação bem-sucedida da solicitação, a função retorna E_OK [SWS_Dem_00185]. O módulo DEM redefine então, de forma desfasada no tempo, o bit de status 0 (TestFailed) para 0 e, com a respectiva configuração, redefine o algoritmo interno de debouncing para os seus valores iniciais [SWS_Dem_00187].

A solicitação falha com o valor de retorno E_NOT_OK se o evento já tiver sido testado no ciclo de operação atual (o bit de status UDS 6 é 0) [SWS_Dem_00185], [SWS_Dem_00638], ou se o evento estiver configurado ou definido como não disponível [SWS_Dem_01108]. Uma chamada antes da inicialização completa do DEM não resulta na notificação do erro DEM_E_UNINIT [SWS_Dem_00124], mesmo com a detecção de erros de desenvolvimento (DemDevErrorDetect) ativada.

No que diz respeito à concorrência, Dem_ResetEventStatus é reentrante para diferentes valores de EventId, mas não é reentrante para o mesmo EventId [SWS_Dem_00185]. Se DemMultiEventTriggering estiver configurado e a função for chamada com um evento mestre, o DEM dispara automaticamente a mesma chamada para todos os eventos escravos vinculados [SWS_Dem_01250]. Chamadas diretas com um EventId configurado como evento escravo ou como DemStorageConditionReplacementEventRef não são suportadas e levam a um comportamento indefinido [SWS_Dem_01339].

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

Guia do implementador em breve (complexidade I2)

função Dem_RestartOperationCycle [SWS_Dem_00194] 📄 PDF

Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);

Sets an operation cycle state. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. The interface has an asynchronous behavior to avoid exceeding of typical timing requirements on APIs if a large number of events has to be processed and during the re-initializations of the related monitors. The asynchronous acknowledgements are the related InitMonitorForEvent callbacks.

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

A função Dem_RestartOperationCycle serve para reiniciar um ciclo de operação ([SWS_Dem_00194]). A chamada é efetuada exclusivamente através da RTE, razão pela qual nenhuma declaração é exportada através de Dem.h ([SWS_Dem_00194]).

Semântica e parâmetros

Através do parâmetro de entrada OperationCycleId é identificado o ciclo de operação a reiniciar (por exemplo, Power Cycle ou Driving Cycle) ([SWS_Dem_00194]). A função opera de forma reentrante bem como assíncrona ([SWS_Dem_00194]):

  • E_OK: A definição do ciclo de operação foi aceite e continua a ser processada de forma assíncrona ([SWS_Dem_00194]).
  • E_NOT_OK: O pedido para definir o ciclo foi rejeitado ([SWS_Dem_00194]).

Interação e sequência assíncrona

O comportamento assíncrono evita violações de requisitos temporais típicos quando é necessário processar um grande número de eventos e reinicializar monitores ([SWS_Dem_00194]). Como respostas assíncronas atuam os respetivos callbacks InitMonitorForEvent ([SWS_Dem_00194]). No decurso do reinício, o DEM reinicializa os monitores de diagnóstico de todos os eventos afetados chamando o seu callback InitMonitorForEvent com o parâmetro InitMonitorReason definido como DEM_INIT_MONITOR_RESTART ([SWS_Dem_00679]).

Se um ciclo de operação for reiniciado através de Dem_RestartOperationCycle, todos os ciclos de operação dependentes do mesmo também devem ser reiniciados, desde que estejam qualificados ([SWS_Dem_01224]).

Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é determinante.

Guia do implementador em breve (complexidade I2)

função Dem_PrestoreFreezeFrame [SWS_Dem_00188] 📄 PDF

Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);

Captures the freeze frame data for a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

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

A função serve para a captura e o armazenamento intermediário síncronos de dados de freeze frame para um evento de diagnóstico específico [SWS_Dem_00188]. A interface é disponibilizada exclusivamente através da RTE e não é exportada via Dem.h [SWS_Dem_00188]. Ela existe no módulo apenas se o pré-armazenamento estiver configurado para pelo menos um evento (DemFFPrestorageSupported) [SWS_Dem_00334].

Valores de retorno e tratamento de erros:

  • E_OK: O freeze frame foi armazenado de forma intermediária com sucesso [SWS_Dem_00188].
  • E_NOT_OK: O armazenamento intermediário falha [SWS_Dem_00188], particularmente se nenhum buffer estiver mais livre (limitado por DemMaxNumberPrestoredFF) [SWS_Dem_00808] ou se o evento especificado estiver definido como não disponível [SWS_Dem_01108].

Concorrência e condições de chamada: A função é reentrante para diferentes IDs de evento, porém não para o mesmo EventId [SWS_Dem_00188].

Interação no disparo de múltiplos eventos (Multi-Event-Triggering): Se a função for chamada com um evento mestre configurado (DemMultiEventTriggeringMasterEventRef), o DEM dispara automaticamente chamadas idênticas para todos os eventos escravos associados (DemMultiEventTriggeringSlaveEventRef) [SWS_Dem_01250]. Chamadas diretas com um ID de evento escravo ou com um evento substituto para condições de armazenamento (DemStorageConditionReplacementEventRef) não são suportadas e levam a comportamento indefinido [SWS_Dem_01339].

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

Guia do implementador em breve (complexidade I1)

função Dem_SelectDTC [SWS_Dem_91016] 📄 PDF

Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);

Selects a DTC or DTC group as target for further operations.

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

A função síncrona Dem_SelectDTC seleciona um DTC ou um grupo de DTCs no formato definido (DTCFormat) e memória de eventos (DTCOrigin) para um determinado ClientId como destino para operações subsequentes [SWS_Dem_91016]. Ela inicia o processo interno de seleção do DEM na memória de eventos atribuída a este ClientId [SWS_Dem_01254].

Em relação à concorrência e ao contexto de chamada, a função é reentrante para ClientIds distintos, mas não reentrante para o mesmo ClientId [SWS_Dem_91016]. São definidos como valores de retorno [SWS_Dem_91016]:

  • E_OK: O DTC ou grupo foi selecionado com sucesso [SWS_Dem_91016].
  • DEM_BUSY: Uma outra chamada de Dem_SelectDTC ou uma operação deste cliente dependente dela já se encontra em execução [SWS_Dem_91016].

O resultado da seleção é refletido nos valores de retorno das chamadas de API subsequentes [SWS_Dem_01254]. O DEM utiliza o DTC ou grupo de DTCs selecionado como destino para chamadas de função subsequentes do mesmo cliente, tais como, entre outras, Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord bem como Dem_SetDTCSuppression [SWS_Dem_01253]. Além disso, Dem_SelectFreezeFrameData e Dem_SelectExtendedDataRecord baseiam-se neste DTC selecionado [SWS_Dem_01268], [SWS_Dem_01272].

Se uma das APIs dependentes for chamada sem que antes tenha havido uma seleção válida, ou se o DTC passado for inválido no formato especificado, o DEM retorna DEM_WRONG_DTC [SWS_Dem_01261]. Caso a área de memória solicitada (DTCOrigin) não exista ou seja inválida, chamadas subsequentes reportam DEM_WRONG_DTCORIGIN [SWS_Dem_01258], [SWS_Dem_01262]. Por meio de Dem_GetDTCSelectionResult, é possível verificar explicitamente se a seleção com E_OK foi bem-sucedida e se o DTC está disponível para processamento posterior [SWS_Dem_01256], [SWS_Dem_01257].

Esta nota de utilização foi gerada por uma IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I2)

função Dem_SetDTCSuppression [SWS_Dem_01047] 📄 PDF

Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);

Set the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppression Support)} == DEM_DTC_SUPPRESSION)

função Dem_SetEnableCondition [SWS_Dem_00201] 📄 PDF

Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);

Sets an enable condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEnable Condition)} != NULL)

função Dem_SetEventStatus [SWS_Dem_00183] 📄 PDF

Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);

Called by SW-Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEventReportingType} == STANDARD_REPORTING)

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

A função Dem_SetEventStatus serve a SW-Cs e módulos BSW para a transmissão de resultados de testes de monitores ao DEM [SWS_Dem_00183], [SWS_Dem_00330]. Ela está disponível quando STANDARD_REPORTING está configurado para o evento [SWS_Dem_00183]. Como valores de status, são transmitidos resultados qualificados (DEM_EVENT_STATUS_PASSED, DEM_EVENT_STATUS_FAILED), pré-qualificações para o debouncing interno do DEM (DEM_EVENT_STATUS_PREPASSED, DEM_EVENT_STATUS_PREFAILED) ou o alcance do limiar de debouncing DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED [SWS_Dem_00926].

Em relação à concorrência, a API é reentrante para diferentes valores de EventId, mas executada como não reentrante para o mesmo EventId [SWS_Dem_00183]. Antes da pré-inicialização via Dem_PreInit, uma chamada com detecção de desenvolvimento ativa resulta no erro DEM_E_UNINIT [SWS_Dem_00364]. Após Dem_PreInit, mas ainda antes de Dem_Init, a chamada é, por outro lado, permitida [SWS_Dem_00124], [SWS_Dem_00180]; eventos qualificadores são armazenados em buffer em uma fila cujo tamanho é determinado por DemBswErrorBufferSize, enquanto limiares de FDC não são bufferizados [SWS_Dem_00167], [SWS_Dem_00207]. Mesmo após Dem_Shutdown, a função não gera erro DEM_E_UNINIT [SWS_Dem_00368].

O valor de retorno é E_OK em caso de aceitação bem-sucedida ou E_NOT_OK em caso de erros ou se o evento estiver definido como não disponível [SWS_Dem_00183], [SWS_Dem_01108]. Os módulos BSW podem ignorar o valor de retorno [SWS_Dem_00183]. Os relatórios são aceitos assim que as condições de habilitação (enable conditions) atribuídas forem atendidas [SWS_Dem_00450]; se a configuração de DTC estiver desativada, o DEM ignora o relatório para o status UDS [SWS_Dem_00626].

No contexto de chamada, ações síncronas podem ser disparadas:

  • Notificação do FiM em caso de alteração de status via FiM_DemTriggerOnEventStatus, desde que DemTriggerFiMReports esteja ativo [SWS_Dem_00029].
  • Aquisição síncrona de dados de freeze frame e extended data records quando a opção DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING estiver configurada [SWS_Dem_00805], [SWS_Dem_01082].
  • Chamadas em cascata para slave events configurados com a configuração DemMultiEventTriggering ativa [SWS_Dem_01250].

Esta nota foi gerada automaticamente com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I2)

função Dem_SetEventStatusWithMonitorData [SWS_Dem_91037] 📄 PDF

Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);

This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING_WITH_MONITOR_DATA)

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

A função Dem_SetEventStatusWithMonitorData destina-se a reportar um resultado de teste de monitor (EventStatus) para um evento de diagnóstico específico (EventId), juntamente com dados adicionais específicos do monitor (monitorData0 e monitorData1), ao DEM [SWS_Dem_91037]. Ela possui a mesma funcionalidade de Dem_SetEventStatus, mas passa parâmetros adicionais para armazenamento em dados relacionados a eventos [SWS_Dem_01333].

Na interação com operações de leitura aplica-se: se uma operação Read-Data estiver configurada para fornecer monitorData0, o DEM adiciona o monitorData0 passado de Dem_SetEventStatusWithMonitorData ao parâmetro monitorData0 desta operação Read-Data [SWS_Dem_01330].

Para o uso e concorrência aplicam-se as seguintes condições:

  • Disponibilidade: A API está disponível via Dem.h apenas se DemEventReportingType estiver configurado como STANDARD_REPORTING_WITH_MONITOR_DATA [SWS_Dem_91037].
  • Execução e reentrância: A execução é síncrona/assíncrona. A função é reentrante para EventId distintos, mas não reentrante para o mesmo EventId [SWS_Dem_91037].
  • Valores de retorno: Ela retorna E_OK em caso de definição bem-sucedida do status de evento e E_NOT_OK se a definição ou o processamento tiver falhado ou não tiver podido ser aceito [SWS_Dem_91037].

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

Guia do implementador em breve (complexidade I1)

função Dem_SetStorageCondition [SWS_Dem_00556] 📄 PDF

Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);

Sets a storage condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemStorage Condition)} != NULL)

função Dem_SetWIRStatus [SWS_Dem_00839] 📄 PDF

Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);

Sets the WIR status bit via failsafe SW-Cs. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

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

Utilização e contexto de chamada

A função assíncrona Dem_SetWIRStatus serve para que componentes de software com tolerância a falhas (failsafe SW-Cs) solicitem especificamente o bit de status Warning-Indicator-Requested (bit WIR) de um evento de diagnóstico [SWS_Dem_00839], [SWS_Dem_01303]. Como a chamada ocorre exclusivamente através da RTE, não existe nenhuma declaração no arquivo de cabeçalho Dem.h [SWS_Dem_00839].

Comportamento funcional e interação

A definição e a reinicialização do bit dependem do parâmetro de passagem WIRStatus, bem como do status dos indicadores configurados:

  • Se WIRStatus = TRUE for passado, o DEM define o bit WIR do respectivo evento para 1 [SWS_Dem_00833].
  • Com WIRStatus = FALSE, o bit WIR só é reinicializado para 0 se nenhum indicador DEM referenciado estiver definido [SWS_Dem_00834].
  • Um bit WIR definido via Dem_SetWIRStatus também impede que o DEM reinicialize automaticamente o bit de status UDS 7 (WarningIndicatorRequested) para 0 ao atingir ciclos de debouncing ou de cura [SWS_Dem_00503], [SWS_Dem_01233].

Simultaneidade e tratamento de erros

A API é reentrante para eventos diferentes, mas não é reentrante para o mesmo EventId [SWS_Dem_00839]. Em caso de aceitação bem-sucedida, a função retorna E_OK [SWS_Dem_00839]. O valor de retorno E_NOT_OK sinaliza que a solicitação foi rejeitada e deve ser repetida; esse é o caso, em particular, quando a configuração de DTC está desabilitada (disabled ControlDTCSetting) ou o evento está marcado como não disponível [SWS_Dem_00836], [SWS_Dem_01108], [SWS_Dem_00839].

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

Guia do implementador em breve (complexidade I2)

função Dem_SetEventFailedWithSyncFreezeFrame [SWS_Dem_91041] 📄 PDF

void Dem_SetEventFailedWithSyncFreezeFrame (Dem_EventIdType EventId);

If called the Dem sets the event to failed and this failed event requires that a snapshot record is captured, the Dem synchronously retrieves the data within the call of this API. Tags: atp.Status=draft

função Dem_GetStatusOfDTC [SWS_Dem_00212] 📄 PDF

Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);

Gets the status of a DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments). The DTCs of OBD Events Suppression shall be reported as Dem_WRONG_DTC.

função Dem_GetSeverityOfDTC [SWS_Dem_00232] 📄 PDF

Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);

Gets the severity of the requested DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments).

função Dem_SetDTCFilter [SWS_Dem_00208] 📄 PDF

Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);

Sets the DTC Filter. The server shall perform a bit-wise logical AND-ing operation between the parameter DTCStatusMask and the current UDS status in the server. In addition to the DTCStatus AvailabilityMask, the server shall return all DTCs for which the result of the AND-ing operation is non-zero [i.e. (statusOfDTC & DTCStatusMask) != 0]. The server shall process only the DTC Status bits that it is supporting. OBD Events Suppression shall be ignored for this computation. If no DTCs within the server match the masking criteria specified in the clients request, no DTC or status information shall be provided following the DTCStatusAvailabilityMask byte in the positive response message (((statusOfDTC & DTCStatusMask) != 0) && ((severity & DTCSeverityMask) != 0)) == TRUE

função Dem_GetNextFilteredDTC [SWS_Dem_00215] 📄 PDF

Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);

Gets the next filtered DTC matching the filter criteria. For UDS services, the interface has an asynchronous behavior, because a large number of DTCs has to be processed.

função Dem_GetNextFilteredDTCAndFDC [SWS_Dem_00227] 📄 PDF

Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);

Gets the next filtered DTC and its associated Fault Detection Counter (FDC) matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed and the FDC might be received asynchronously from a SW-C, too.

função Dem_GetNextFilteredDTCAndSeverity [SWS_Dem_00281] 📄 PDF

Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);

Gets the next filtered DTC and its associated Severity matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed.

função Dem_GetNextFilteredRecord [SWS_Dem_00224] 📄 PDF

Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);

Gets the next freeze frame record number and its associated DTC stored in the event memory. The interface has an asynchronous behavior, because NvRAM access might be required.

função Dem_DisableDTCRecordUpdate [SWS_Dem_00233] 📄 PDF

Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);

Disables the event memory update of a specific DTC (only one at one time).

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

Uso e fluxo

A função assíncrona Dem_DisableDTCRecordUpdate ([SWS_Dem_00233]) desativa a atualização da memória de eventos para um DTC previamente definido por meio de Dem_SelectDTC ([SWS_Dem_01253]). O objetivo desta chamada é proteger os dados relacionados ao evento da falha selecionada no respectivo DTCOrigin contra sobreescrita ou exclusão, a fim de garantir acessos subsequentes de leitura consistentes a Freeze Frame data e Extended Data Records ([SWS_Dem_00270]). A instância do módulo chamador é identificada por meio do parâmetro ClientId ([SWS_Dem_00233]).

Valores de retorno e tratamento de erros

A função sinaliza o status de processamento por meio de valores de retorno específicos ([SWS_Dem_00233]):

  • E_OK: a atualização da memória de eventos foi desativada com sucesso.
  • DEM_PENDING: a desativação é executada de forma assíncrona; o chamador deve chamar a função novamente em um momento posterior.
  • DEM_BUSY: já existe outra operação dependente de Dem_SelectDTC em processamento para este cliente.
  • E_NOT_OK: nenhum DTC foi previamente selecionado.
  • DEM_WRONG_DTC: o DTC selecionado não existe no formato escolhido ou foi selecionado indevidamente um grupo de DTCs.
  • DEM_WRONG_DTCORIGIN: a origem especificada (DTCOrigin) não existe.

Simultaneidade e restrições

Dem_DisableDTCRecordUpdate é reentrante para chamadas com ClientId diferente, porém não é reentrante para o mesmo ClientId ([SWS_Dem_00233]). A atualização só pode ser bloqueada para exatamente um DTC de cada vez ([SWS_Dem_00233]). Após a leitura dos dados de diagnóstico, a atualização do registro de dados deve ser liberada novamente via Dem_EnableDTCRecordUpdate ([SWS_Dem_00234], [SWS_Dem_00270]).

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

Guia do implementador em breve (complexidade I1)

função Dem_EnableDTCRecordUpdate [SWS_Dem_00234] 📄 PDF

Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);

Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before. Note: As the call to Dem_EnableDTCRecordUpdate is the last action in the sequence of disabling/enabling a DTC, the caller is not interested in the return value. Therefore E_OK should be returned even if the DTC is enabled asynchronously.

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

A função assíncrona Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]) serve para liberar a atualização da memória de eventos para um DTC previamente bloqueado. De acordo com [SWS_Dem_00271], a função libera novamente o DTC atualmente protegido por Dem_DisableDTCRecordUpdate, de modo que seus dados possam ser atualizados novamente no DEM.

Como parâmetro de passagem, a função espera o ClientId, que identifica univocamente a instância do módulo chamador ([SWS_Dem_00234]). Como a chamada de Dem_EnableDTCRecordUpdate representa a ação final na sequência de desativação e ativação de um DTC, o chamador não está interessado no valor de retorno propriamente dito; portanto, de acordo com [SWS_Dem_00234], E_OK deve ser retornado mesmo em uma liberação assíncrona.

Em relação ao tratamento de erros e valores de retorno, estão definidos os seguintes status ([SWS_Dem_00234]):

  • E_OK: A atualização do registro de dados do DTC foi liberada com sucesso.
  • E_NOT_OK: Nenhum DTC está selecionado.

No que diz respeito à concorrência e restrições, Dem_EnableDTCRecordUpdate é reentrante para chamadas com diferentes Client-IDs, mas não reentrante para o mesmo ClientId ([SWS_Dem_00234]).

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_GetSizeOfExtendedDataRecordSelection [SWS_Dem_00240] 📄 PDF

Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);

Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.

função Dem_GetSizeOfFreezeFrameSelection [SWS_Dem_00238] 📄 PDF

Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);

Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.

função Dem_GetNextExtendedDataRecord [SWS_Dem_00239] 📄 PDF

Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.

função Dem_GetNextFreezeFrameData [SWS_Dem_00236] 📄 PDF

Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.

função Dem_SelectExtendedDataRecord [SWS_Dem_91017] 📄 PDF

Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);

Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.

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

A função assíncrona Dem_SelectExtendedDataRecord inicializa o filtro para a leitura de dados de diagnóstico estendidos de um DTC previamente determinado com Dem_SelectDTC [SWS_Dem_91017] [SWS_Dem_01253]. Ela inicia o processo de seleção interno na memória de eventos atribuída ao cliente [SWS_Dem_01273] e define o registro de destino para consultas subsequentes através de Dem_GetSizeOfExtendedDataRecordSelection e Dem_GetNextExtendedDataRecord [SWS_Dem_01272].

Em relação à parametrização e ao fluxo, aplicam-se as seguintes definições:

  • Parâmetros: Além de números de registros específicos, ExtendedDataNumber aceita os valores 0xFE (tamanho total de todos os registros OBD), bem como 0xFF (tamanho total de todos os registros) [SWS_Dem_91017]. Para evitar inconsistências de dados durante a leitura, o registro pode ser protegido previamente com Dem_DisableDTCRecordUpdate [SWS_Dem_00270].
  • Valores de retorno e erros: Em caso de seleção bem-sucedida, é retornado E_OK [SWS_Dem_91017]. Isso se aplica mesmo quando é solicitado um número de registro válido para o qual nenhuma entrada está armazenada; nesse caso, a leitura posterior fornece o tamanho de buffer 0 [SWS_Dem_00631]. Se através de Dem_SelectDTC não foi selecionado um código de falha individual, mas sim um grupo de DTCs, ou se o DTC não existir, a chamada falha com DEM_WRONG_DTC [SWS_Dem_91017] [SWS_Dem_01349]. Se o local de memória não existir, é reportado DEM_WRONG_DTCORIGIN [SWS_Dem_91017].
  • Concorrência: Se a seleção ainda estiver em processamento, DEM_PENDING sinaliza uma necessidade de nova chamada [SWS_Dem_91017]. O status DEM_BUSY indica que outra operação dependente de DTC ainda está ativa para esta ClientId [SWS_Dem_91017]. A função é reentrante para diferentes valores de ClientId, mas não é reentrante para a mesma instância [SWS_Dem_91017].

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

Guia do implementador em breve (complexidade I2)

função Dem_SelectFreezeFrameData [SWS_Dem_91015] 📄 PDF

Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);

Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.

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

Utilização e semântica

A função assíncrona Dem_SelectFreezeFrameData define o filtro para a leitura posterior de dados de freeze frame através de Dem_GetSizeOfFreezeFrameSelection e Dem_GetNextFreezeFrameData [SWS_Dem_91015], [SWS_Dem_01268]. A instância do módulo chamador é identificada através do parâmetro ClientId, enquanto RecordNumber especifica o número do registro de snapshot conforme a ISO 14229-1; aqui, 0xFF representa todos os registros de snapshot do DTC e 0x00 representa o snapshot WWH-OBD específico do DTC [SWS_Dem_91015]. A chamada inicia a seleção interna na memória de eventos atribuída [SWS_Dem_01269].

Valores de retorno e tratamento de erros

Se o processo de seleção foi iniciado com sucesso, a função retorna E_OK [SWS_Dem_91015]. Se a seleção ainda estiver em processamento, DEM_PENDING sinaliza que o chamador deve chamar a função novamente em um momento posterior [SWS_Dem_91015]. Se outra operação dependente já estiver ativa para o cliente, a API retorna DEM_BUSY [SWS_Dem_91015], [SWS_Dem_01253]. Se o DTC de destino não existir no formato desejado, ou se um grupo de DTCs foi selecionado através de Dem_SelectDTC em vez de um DTC individual, DEM_WRONG_DTC é retornado [SWS_Dem_91015], [SWS_Dem_01348]. Em caso de local de memória inválido, o resultado é DEM_WRONG_DTCORIGIN [SWS_Dem_91015]. Se funções de leitura dependentes forem chamadas sem seleção prévia, o DEM reporta um erro DET [SWS_Dem_01270], [SWS_Dem_01271].

Ordem e concorrência

A função é reentrante para chamadores diferentes (ClientId), mas não é reentrante para o mesmo cliente [SWS_Dem_91015]. Um pré-requisito obrigatório é a chamada prévia de Dem_SelectDTC para definição do DTC de destino e do local de memória [SWS_Dem_01253]. Para garantir uma leitura consistente, Dem_DisableDTCRecordUpdate pode ser chamada para proteger os dados relacionados ao evento contra alterações ou exclusões [SWS_Dem_00270].

Esta nota de utilização foi gerada automaticamente por uma IA com base na especificação.

Guia do implementador em breve (complexidade I2)

função Dem_GetNumberOfFreezeFrameRecords [SWS_Dem_91191] 📄 PDF

Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);

This function returns the number of all freeze frame records currently stored in the primary event memory

função Dem_DisableDTCSetting [SWS_Dem_00242] 📄 PDF

Std_ReturnType Dem_DisableDTCSetting (uint8 ClientId);

Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

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

Utilização e semântica

A função Dem_DisableDTCSetting desativa o DTC setting para todos os eventos de diagnóstico atribuídos ao DemEventMemorySet do cliente chamador [SWS_Dem_00242], [SWS_Dem_01290]. A chamada ocorre de forma assíncrona e requer a passagem de um ClientId unívoco [SWS_Dem_00242]. Além da conclusão bem-sucedida via E_OK, o valor de retorno DEM_PENDING sinaliza que a operação ainda está em processamento; nesse caso, o chamador deve chamar a função novamente em um momento posterior [SWS_Dem_00242].

Impactos funcionais

Se Dem_DisableDTCSetting for chamada, o DEM impede o armazenamento dos eventos associados, bem como a atualização dos UDS status bytes [SWS_Dem_00079]. Se, adicionalmente, o parâmetro de configuração DemDebounceBehavior estiver definido como DEM_DEBOUNCE_RESET, a chamada causará também o reset dos respectivos contadores de detecção de falhas (Fault Detection Counters) [SWS_Dem_00677].

Simultaneidade e restrições

A função é reentrante para chamadas com diferentes IDs de cliente, porém não é reentrante para o mesmo ClientId [SWS_Dem_00242]. A desativação afeta exclusivamente eventos e UDS status bytes do DemEventMemorySet referenciado pelo ClientId; DTCs fora desta área de memória não são influenciados [SWS_Dem_01290].

Esta nota de uso baseia-se nos requisitos da especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Dem_EnableDTCSetting [SWS_Dem_00243] 📄 PDF

Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);

(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

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

A função assíncrona Dem_EnableDTCSetting ativa ou reativa o DTC setting para todos os DTCs atribuídos ao DemEventMemorySet do cliente endereçado [SWS_Dem_00243]. Na chamada, o identificador unívoco ClientId da instância do módulo chamador é passado [SWS_Dem_00243].

Estão definidos como valores de retorno [SWS_Dem_00243]:

  • E_OK: A operação foi concluída com sucesso.
  • DEM_PENDING: o procedimento é executado de forma assíncrona; o chamador deve chamar a função novamente em um momento posterior.

Em relação à concorrência, Dem_EnableDTCSetting é reentrante para diferentes valores de ClientId, mas não deve ser chamada concorrentemente para o mesmo ClientId [SWS_Dem_00243].

Na interação com o processamento de eventos, a função assegura que o DEM libere o armazenamento dos eventos associados e do UDS status byte [SWS_Dem_00080]. Se o DTC setting for reativado para os eventos, Dem_EnableDTCSetting aciona a função de callback InitMonitorForEvent dos eventos afetados com o parâmetro InitMonitorReason para DEM_INIT_MONITOR_REENABLED [SWS_Dem_00682].

Este texto foi gerado por uma IA e serve para orientação. Vinculativas são exclusivamente as especificações dos respectivos releases AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Dem_DcmGetInfoTypeValue08 [SWS_Dem_00316] 📄 PDF

Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);

Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

usar

A função síncrona Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) é chamada pelo DCM para consultar dados IUMPR (In-Use Monitor Performance Ratio) para InfoType $08 no escopo do serviço OBD $09 ([SWS_Dem_00298]). Como o processamento ocorre de forma síncrona, o DCM passa exclusivamente o valor DCM_INITIAL para o parâmetro OpStatus ([SWS_Dem_00316]). Os dados úteis, bem como a quantidade de elementos de dados de acordo com a ISO-15031-5, são gravados no buffer Iumprdata08 disponibilizado pelo DCM; o tamanho máximo gravável do buffer é especificado por meio do parâmetro inout Iumprdata08BufferSize ([SWS_Dem_00316]).

Tratamento de erros

A função retorna sempre E_OK como valor de retorno ([SWS_Dem_00316]). Códigos de erro específicos ou mensagens de erro de desenvolvimento (DET) não estão especificados para esta chamada.

Simultaneidade e configuração

A interface é não reentrante (Non Reentrant) e declarada por meio de Dem_Dcm.h ([SWS_Dem_00316]). Ela existe exclusivamente em ECUs relevantes para OBD com suporte a OBD ativo (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) ([SWS_Dem_00316]) e é disponibilizada quando DemOBDEngineType estiver configurado como DEM_IGNITION_SPARK para motores de ignição por centelha ([SWS_Dem_00357]).

Interação

Códigos de falha suprimidos (suppressed DTCs) não devem ser visíveis na consulta e devem ser tratados como se o filtro não se aplicasse ([SWS_Dem_01101]). Juntamente com Dem_DcmGetInfoTypeValue0B, a função serve para dar suporte a solicitações de dados no serviço $09 ([SWS_Dem_00298]).

Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I2)

função Dem_DcmGetInfoTypeValue0B [SWS_Dem_00317] 📄 PDF

Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);

Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

Utilização e interface de parâmetros

A função síncrona Dem_DcmGetInfoTypeValue0B (service ID 0x6c, disponível via Dem_Dcm.h) serve ao DCM para a consulta de dados IUMPR (In-Use Performance Ratio) de acordo com o InfoType $0B no âmbito do serviço OBD $09 [SWS_Dem_00317] [SWS_Dem_00298]. A interface da função deriva do protótipo DCM <Module>_GetInfotypeValueData(), razão pela qual utiliza Dcm_OpStatusType e Std_ReturnType [SWS_Dem_00317]:

  • OpStatus (in): como a função apresenta comportamento síncrono, ocorre exclusivamente o estado DCM_INITIAL na chamada [SWS_Dem_00317].
  • Iumprdata0BBufferSize (inout): define a quantidade máxima de bytes de dados que podem ser gravados no buffer [SWS_Dem_00317].
  • Iumprdata0B (out): um buffer disponibilizado pelo DCM que recebe a quantidade de elementos de dados de acordo com a ISO-15031-5 e o conteúdo do InfoType $0B [SWS_Dem_00317].

Como valor de retorno é sempre fornecido E_OK [SWS_Dem_00317].

Tratamento de erros e simultaneidade

Códigos de erro específicos ou reações a erros (como mensagens de DET) não estão definidos na especificação para esta função; a chamada retorna formalmente sempre E_OK [SWS_Dem_00317]. A API está classificada como não reentrante (Non Reentrant) [SWS_Dem_00317]. O chamador (DCM), portanto, provavelmente não deve executar este serviço de forma concorrente para múltiplas solicitações de diagnóstico em paralelo. Pergunta Q-636518c23ec3801a (aberta)

Dependência de configuração e interação

A API existe exclusivamente em ECUs relevantes para OBD para as quais o parâmetro de configuração DemOBDSupport esteja configurado diferente de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00317]. Além disso, ela é disponibilizada quando DemOBDEngineType estiver definido como DEM_IGNITION_COMPRESSION [SWS_Dem_00358]. Na interação com a supressão de DTCs, aplica-se que DTCs suprimidos são invisíveis para esta função de consulta e devem ser tratados como se o filtro não se aplicasse [SWS_Dem_01101].

Este texto foi gerado por uma IA; as diretrizes exigem verificação pelo usuário com base na especificação AUTOSAR.

Guia do implementador em breve (complexidade I2)

função Dem_DcmReadDataOfPID01 [SWS_Dem_00318] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfPID01 serve para passar o conteúdo do parâmetro OBD PID $01 calculado pelo DEM para o DCM [SWS_Dem_00318]. A interface é declarada no arquivo de cabeçalho Dem_Dcm.h e está disponível exclusivamente em unidades de comando relevantes para OBD nas quais DemOBDSupport não está definido como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00318].

Através do parâmetro de saída PID01value, o DCM passa um ponteiro para o buffer de destino no qual o DEM escreve os dados [SWS_Dem_00318]. O DCM é responsável por disponibilizar este buffer com tamanho suficiente; o dimensionamento é realizado durante a configuração com base no maior PID existente para a configuração do PIDBuffer [SWS_Dem_00318].

A função é executada como não reentrante (Non Reentrant) [SWS_Dem_00318]. Como valor de retorno é sempre fornecido E_OK, uma vez que um estado de erro com E_NOT_OK nunca ocorre de acordo com a especificação [SWS_Dem_00318].

Na interação com consultas de erros, aplica-se que códigos de falha suprimidos (suppressed DTC) não devem ser visíveis para Dem_DcmReadDataOfPID01 [SWS_Dem_01101]. O DEM deve tratar DTCs suprimidos na avaliação como se o filtro não se aplicasse [SWS_Dem_01101].

Nota: Esta documentação foi gerada automaticamente por um sistema de IA com base na especificação AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_DcmReadDataOfPID1C [SWS_Dem_00325] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);

Service to report the value of PID $1C computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

Utilização e contexto de chamada

A função Dem_DcmReadDataOfPID1C fornece um serviço síncrono do Diagnostic Event Manager, por meio do qual o Diagnostic Communication Module (DCM) consulta o conteúdo calculado do OBD PID $1C [SWS_Dem_00325].

  • Parâmetro: Através do parâmetro de saída PID1Cvalue (ponteiro para uint8), o DEM escreve os dados em um buffer do DCM. O tamanho de buffer necessário é dimensionado durante a configuração do DCM com base no maior PID, para fornecer um PIDBuffer adequado [SWS_Dem_00325].
  • Valor de retorno: O serviço retorna sempre o valor de status E_OK. Um caso de erro com E_NOT_OK nunca ocorre conforme a especificação [SWS_Dem_00325].

Conteúdo funcional e interação

De acordo com [SWS_Dem_00748], a interface retorna os requisitos de OBD segundo os quais o veículo ou o motor está certificado (por exemplo, OBD, OBDII ou JOBD). O valor a ser emitido em PID1Cvalue é definido pelo parâmetro de configuração DemOBDCompliancy [SWS_Dem_00325] [SWS_Dem_00748].

Concorrência e disponibilidade

A função está especificada como não reentrante (Non Reentrant) [SWS_Dem_00325]. Ela está declarada no arquivo de cabeçalho Dem_Dcm.h e está disponível exclusivamente em unidades de controle eletrônico com suporte a OBD ativo, nas quais DemGeneral.DemOBDSupport não esteja definido como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00325].

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

Guia do implementador em breve (complexidade I1)

função Dem_DcmReadDataOfPID21 [SWS_Dem_00319] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);

Service to report the value of PID $21 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfPID21 (service ID 0x64) serve ao Diagnostic Communication Manager (DCM) para consultar o valor atual do parâmetro OBD PID $21 calculado pelo DEM [SWS_Dem_00319], [SWS_Dem_01098]. A interface é declarada por meio do cabeçalho Dem_Dcm.h e está disponível exclusivamente em ECUs com relação a OBD, desde que o parâmetro de configuração DemOBDSupport não esteja definido como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00319].

Para a utilização e a interação operacional aplicam-se as seguintes determinações:

  • Disponibilização do buffer: o ponteiro PID21value é passado como parâmetro de saída [SWS_Dem_00319]. O chamador (DCM) deve disponibilizar esse buffer e o dimensiona durante a configuração de forma adequada ao maior PID configurado [SWS_Dem_00319]. Na chamada, o DEM grava o valor atual de PID $21 nesse buffer [SWS_Dem_01098].
  • Valor de retorno: a função retorna sempre E_OK, uma vez que um valor de erro como E_NOT_OK nunca ocorre segundo a especificação [SWS_Dem_00319].
  • Estado inicial / tratamento de erro: se Dem_DcmReadDataOfPID21 for chamada antes de os valores terem sido definidos via Dem_SetDataOfPID21, o DEM retorna o valor de substituição 0xFFFF como conteúdo de PID $21 [SWS_Dem_01099].
  • Concorrência: a função é especificada como não reentrante (Non Reentrant) [SWS_Dem_00319]. Chamadas concorrentes por múltiplos contextos são, portanto, inadmissíveis.

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_DcmReadDataOfPID30 [SWS_Dem_00320] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);

Service to report the value of PID $30 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfPID30 serve para passar o conteúdo de dados do parâmetro PID $30 calculado pelo DEM para o DCM [SWS_Dem_00320]. Ela é declarada por meio do arquivo de cabeçalho Dem_Dcm.h e está disponível exclusivamente em ECUs com relevância para OBD quando o parâmetro de configuração DemOBDSupport for diferente de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00320].

Para a utilização da interface aplicam-se as seguintes determinações:

  • Parâmetro de passagem: por meio do parâmetro de saída PID30value, o chamador disponibiliza um buffer no qual o DEM grava os dados calculados de PID $30 [SWS_Dem_00320]. O DCM é responsável por disponibilizar esse buffer em tamanho adequado; o DCM determina o dimensionamento durante a configuração com base no maior PID [SWS_Dem_00320].
  • Valor de retorno e tratamento de erro: a interface retorna sempre E_OK como Std_ReturnType [SWS_Dem_00320]. O valor de erro E_NOT_OK nunca ocorre segundo a especificação, e não estão previstos códigos de erro específicos ou rotinas separadas de tratamento de erros [SWS_Dem_00320].
  • Concorrência: a função é definida como não reentrante (Non Reentrant) [SWS_Dem_00320]. Como a especificação não prevê mecanismos internos de sincronização, o chamador provavelmente é responsável por excluir chamadas concorrentes [SWS_Dem_00320]. Pergunta Q-976bc8dc189021a1 (aberta)

Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR Classic R20-11.

função Dem_DcmReadDataOfPID31 [SWS_Dem_00321] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);

Service to report the value of PID $31 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

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

A função síncrona Dem_DcmReadDataOfPID31 serve para passar o valor do parâmetro OBD PID $31 calculado pelo DEM para o DCM [SWS_Dem_00321]. A interface é disponibilizada por meio do arquivo de cabeçalho Dem_Dcm.h e possui o service ID 0x66 [SWS_Dem_00321].

Utilização e parâmetros

A chamada ocorre de forma síncrona e é definida como não reentrante [SWS_Dem_00321]:

  • PID31value (parâmetro de saída): ponteiro para um buffer (uint8*) que recebe os dados calculados para PID $31 [SWS_Dem_00321]. A disponibilização do buffer em tamanho adequado compete ao DCM chamador; este determina o tamanho de buffer necessário durante a configuração com base no maior PID para o dimensionamento de um PIDBuffer [SWS_Dem_00321].
  • Valor de retorno: o serviço retorna sempre E_OK como Std_ReturnType; o valor de erro E_NOT_OK nunca ocorre segundo a especificação [SWS_Dem_00321].

Restrições e configuração

A API é prevista exclusivamente para ECUs relevantes para OBD [SWS_Dem_00321]. Ela só está disponível se o parâmetro de configuração DemGeneral.DemOBDSupport estiver definido com o valor DEM_OBD_MASTER_ECU [SWS_Dem_00321]. Como a função não é reentrante, chamadas paralelas pelo DCM não devem ocorrer [SWS_Dem_00321].

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nos dados de especificação do release R20-11.

função Dem_DcmReadDataOfPID41 [SWS_Dem_00322] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);

Service to report the value of PID $41 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfPID41 serve para passar o conteúdo de PID $41 calculado pelo DEM para o DCM [SWS_Dem_00322]. Ela é declarada por meio do cabeçalho Dem_Dcm.h e possui o service ID 0x67 [SWS_Dem_00322].

Utilização e parâmetros

A chamada ocorre de forma síncrona e é especificada como não reentrante (Non Reentrant) [SWS_Dem_00322]. Como parâmetro de saída, a interface espera o ponteiro PID41value (uint8*):

  • PID41value recebe os dados calculados de PID $41 [SWS_Dem_00322].
  • O buffer deve ser disponibilizado pelo DCM em tamanho adequado; para isso, o DCM determina já durante a configuração, com base no maior PID existente, o tamanho necessário para a configuração do PIDBuffer [SWS_Dem_00322].

Valores de retorno e tratamento de erros

Como valor de retorno a função retorna sempre E_OK, uma vez que um valor de erro E_NOT_OK nunca ocorre segundo a especificação [SWS_Dem_00322]. Códigos de erro específicos ou reações a erros não estão previstos para esta interface [SWS_Dem_00322].

Dependência de configuração e disponibilidade

A API é necessária exclusivamente em ECUs relevantes para OBD [SWS_Dem_00322]. Ela só está disponível quando o parâmetro de configuração DemOBDSupport em DemGeneral estiver configurado diferente de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00322].

Este texto foi gerado por uma IA e baseia-se exclusivamente na especificação R20-11.

função Dem_DcmReadDataOfPID4D [SWS_Dem_00323] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);

Service to report the value of PID $4D computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

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

Utilização e contexto de chamada

A função síncrona Dem_DcmReadDataOfPID4D serve para transmitir ao DCM o valor do parâmetro de OBD PID $4D calculado pelo DEM [SWS_Dem_00323]. O serviço é disponibilizado por meio do cabeçalho Dem_Dcm.h com o ID de serviço 0x68 [SWS_Dem_00323].

O ponteiro de saída PID4Dvalue serve como único parâmetro de passagem, o qual aponta para um buffer de destino disponibilizado pelo DCM [SWS_Dem_00323]. O DCM disponibiliza este buffer com o tamanho adequado determinando, já durante a configuração e com base no maior PID ocorrente, o tamanho necessário para o PIDBuffer [SWS_Dem_00323].

Valores de retorno e tratamento de erros

A função possui o tipo de retorno Std_ReturnType e retorna invariavelmente E_OK [SWS_Dem_00323]. Um valor de retorno E_NOT_OK está excluído conforme a especificação e nunca ocorre [SWS_Dem_00323]. Não existem tratamentos de erro especiais ou códigos de erro específicos para esta chamada.

Simultaneidade e dependência de configuração

A interface está declarada como não reentrante (Non Reentrant) e, portanto, não deve ser executada concorrentemente [SWS_Dem_00323].

Além disso, a função é necessária exclusivamente em unidades de controle eletrônico relevantes para OBD [SWS_Dem_00323]. Ela está disponível apenas quando, na configuração, o parâmetro DemOBDSupport dentro de DemGeneral estiver definido com o valor DEM_OBD_MASTER_ECU [SWS_Dem_00323].

Esta nota de uso baseia-se na especificação do Diagnostic Event Manager no AUTOSAR CP R20-11.

função Dem_DcmReadDataOfPID4E [SWS_Dem_00324] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);

Service to report the value of PID $4E computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

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

A função síncrona Dem_DcmReadDataOfPID4E serve para transmitir ao DCM o conteúdo do ID de parâmetro de OBD PID $4E calculado pelo DEM [SWS_Dem_00324]. A função possui o ID de serviço 0x69 e é declarada por meio do arquivo de cabeçalho Dem_Dcm.h [SWS_Dem_00324].

Chamada e gerenciamento de buffer

A chamada ocorre de forma síncrona e é definida como não reentrante (Non Reentrant) [SWS_Dem_00324]. Como parâmetro de saída, a função recebe o ponteiro PID4Evalue (tipo uint8*), através do qual o DEM armazena os dados calculados [SWS_Dem_00324]. Para isso, o DCM chamador deve fornecer um buffer com tamanho adequado [SWS_Dem_00324]. O DCM determina o tamanho de buffer necessário durante a configuração com base no maior PID ocorrente, a fim de dimensionar adequadamente o PIDBuffer comum [SWS_Dem_00324].

Valores de retorno e tratamento de erros

A interface retorna sempre E_OK do tipo Std_ReturnType, pois o valor de retorno E_NOT_OK nunca ocorre segundo a especificação [SWS_Dem_00324]. Não são indicados no escopo da especificação códigos de erro específicos para caso de falha nem mensagens de erro do DET ou DEM [SWS_Dem_00324].

Restrições e disponibilidade

A API é necessária exclusivamente em unidades de controle eletrônico relevantes para OBD [SWS_Dem_00324]. A sua disponibilidade está vinculada à condição de configuração DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU; em outras configurações, a função não está disponível [SWS_Dem_00324].

Este texto foi gerado por uma IA; não substitui o estudo da especificação AUTOSAR.

função Dem_DcmReadDataOfPID91 [SWS_Dem_01187] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);

Service to report the value of PID $91 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfPID91 (Service-ID 0x6a) serve para transferir ao DCM os dados do parâmetro OBD PID $91 calculados pelo DEM [SWS_Dem_01187]. A interface é declarada através do cabeçalho Dem_Dcm.h e está disponível exclusivamente em ECUs relevantes para OBD nas quais DemOBDSupport não esteja configurado como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_01187].

Como parâmetro de saída, a função requer o ponteiro PID91value, que referencia um buffer fornecido pelo DCM [SWS_Dem_01187]. O DCM é responsável por disponibilizar esse buffer em tamanho adequado; o tamanho necessário já é determinado durante a configuração com base no maior PID para alocar o buffer PIDBuffer [SWS_Dem_01187].

A função está especificada como não reentrante (Non Reentrant) e deve ser processada de forma síncrona [SWS_Dem_01187]. Uma chamada paralela a partir de diferentes contextos é, portanto, inadmissível. Não existe um valor de retorno de erro: a função retorna como Std_ReturnType sempre E_OK, pois, de acordo com a especificação, o valor de erro E_NOT_OK nunca ocorre [SWS_Dem_01187].

Esta nota de uso foi gerada automaticamente e baseia-se exclusivamente nos dados de especificação do AUTOSAR Classic R20-11.

função Dem_DcmReadDataOfOBDFreezeFrame [SWS_Dem_00327] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);

Gets data element per PID and index of the most important freeze frame being selected for the output of service $02. The function stores the data in the provided DestBuffer. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona Dem_DcmReadDataOfOBDFreezeFrame lê dados de um elemento de dados referente a um PID para o freeze frame mais importante que está selecionado para a saída do serviço de OBD $02 [SWS_Dem_00327].

Contexto de chamada e parâmetros

A chamada é realizada pelo DCM por meio do cabeçalho Dem_Dcm.h [SWS_Dem_00327]. Os seguintes parâmetros são passados para a função:

  • PID: Identificador do PID conforme a ISO 15031-5 [SWS_Dem_00327].
  • DataElementIndexOfPID: Índice consecutivo de base zero do elemento de dados dentro do PID. A ordem deriva diretamente da posição dos elementos de dados no layout do PID da configuração do DCM [SWS_Dem_00327], [SWS_Dem_00597].
  • DestBuffer: Ponteiro para o buffer no qual o elemento de dados é escrito no formato hexadecimal bruto sem informações de cabeçalho [SWS_Dem_00327].
  • BufSize: Serve como parâmetro de entrada e saída; contém, na chamada, a capacidade máxima do buffer e retorna o número de bytes de dados efetivamente escritos [SWS_Dem_00327].

Restrições e tratamento de erros

A função é não reentrante (Non Reentrant) e está disponível exclusivamente em unidades de controle eletrônico com suporte a OBD ativado (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00327]. Em caso de disponibilização bem-sucedida dos dados, é retornado E_OK, caso contrário E_NOT_OK [SWS_Dem_00327]. Um DTC suprimido não é visível para esta função de consulta [SWS_Dem_01101]; presumivelmente, a função retorna E_NOT_OK em tal caso. Pergunta Q-09c77cdccc138247 (aberta)

Este texto foi gerado por uma IA; o documento de referência oficial é a especificação indicada.

Guia do implementador em breve (complexidade I1)

função Dem_DcmGetDTCOfOBDFreezeFrame [SWS_Dem_00624] 📄 PDF

Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);

Gets DTC by freeze frame record number. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona e não reentrante Dem_DcmGetDTCOfOBDFreezeFrame lê o DTC para um número de registro de freeze frame pré-definido [SWS_Dem_00624]. Ela serve primariamente ao DCM para emissão no âmbito do serviço OBD $02 (PID $02), a fim de determinar o DTC do freeze frame selecionado mais relevante [SWS_Dem_00623].

Chamada e parâmetros

  • FrameNumber (IN): Identificador unívoco do registro de freeze frame de acordo com a ISO 15031-5. O valor 0x00 designa o freeze frame OBD completo, valores adicionais são reservados [SWS_Dem_00624].
  • DTCFormat (IN): Formato de saída desejado do valor do DTC [SWS_Dem_00624].
  • DTC (OUT): Ponteiro para o local de memória para o código de falha determinado no formato OBD [SWS_Dem_00624].

Valores de retorno e tratamento de erros

A função retorna E_OK se o DTC pôde ser determinado com sucesso. Se nenhum DTC correspondente estiver disponível, a chamada fornece E_NOT_OK; neste caso, o parâmetro de saída DTC não contém dados válidos [SWS_Dem_00624].

Condições e interação

A interface está disponível através do cabeçalho Dem_Dcm.h e existe exclusivamente em unidades de controle com suporte a OBD (configuração DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00624]. DTCs suprimidos (suppressed DTCs) são tratados pela função como se não houvesse correspondência e não são visíveis para esta consulta [SWS_Dem_01101].

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

Guia do implementador em breve (complexidade I1)

função Dem_DcmGetAvailableOBDMIDs [SWS_Dem_00766] 📄 PDF

Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);

Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request. Derived from that the tester displays the supported tests a mechanic can select from. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona e reentrante Dem_DcmGetAvailableOBDMIDs (ID de serviço 0xa3) é chamada pelo DCM para ler o valor de um OBDMID de disponibilidade solicitado no âmbito de uma solicitação de serviço OBD $06 [SWS_Dem_00766]. Através do parâmetro de entrada Obdmid (tipo uint8), o chamador passa um identificador de disponibilidade padronizado como $00, $20 ou $40. O DEM reporta os identificadores de teste suportados como informação codificada em bits através do ponteiro de saída de 32 bits Obdmidvalue [SWS_Dem_00766]. A partir desses dados, o testador de diagnóstico deduz quais testes são exibidos para seleção ao pessoal da oficina [SWS_Dem_00766].

A função é declarada através do cabeçalho Dem_Dcm.h. Ela é prevista exclusivamente para unidades de controle relevantes para OBD e só está disponível no módulo se a opção de configuração DemGeneral.DemOBDSupport estiver definida como diferente de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00766].

Em caso de transmissão livre de erros da disponibilidade de DTR, a interface retorna E_OK [SWS_Dem_00766]. Se a função for chamada antes de o DEM estar completamente inicializado ou após ele ter sido desligado, aplica-se o código de erro DEM_E_UNINIT [SWS_Dem_00173]. Da mesma forma, chamadas com ponteiro inválido (DEM_E_PARAM_POINTER) ou com valores de parâmetro incorretos (DEM_E_PARAM_DATA) levam a erros de desenvolvimento de acordo com [SWS_Dem_00173]. Em tais casos de erro, presumivelmente deve ser fornecido E_NOT_OK como valor de retorno. Pergunta Q-b42d268116fb8df7 (aberta)

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_DcmGetNumTIDsOfOBDMID [SWS_Dem_00767] 📄 PDF

Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);

Gets the number of TIDs per (functional) OBDMID. This can be used by the DCM to iteratively request for OBD/TID result data within a loop from 0....numberOfTIDs-1 API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona e reentrante Dem_DcmGetNumTIDsOfOBDMID (ID de serviço 0xa4) é declarada por meio do arquivo de cabeçalho Dem_Dcm.h [SWS_Dem_00767]. Ela serve para que o Diagnostic Communication Manager (DCM) consulte, mediante solicitação, a quantidade de identificadores de teste (TIDs) atribuídos a uma OBDMID funcional especificada [SWS_Dem_00761].

Na chamada, o DCM passa o identificador da respectiva OBDMID no parâmetro de entrada Obdmid e recebe de volta a quantidade de TIDs atribuídos através do ponteiro numberOfTIDs [SWS_Dem_00767]. Este valor de saída serve ao DCM como limite superior para um loop de contagem de 0 até numberOfTIDs - 1, no qual são consultados subsequentemente de forma sequencial, via Dem_DcmGetDTRData, os valores de resultado individuais do DTR, resultados de teste e valores-limite [SWS_Dem_00761] [SWS_Dem_00768].

A função retorna o valor de retorno E_OK caso a quantidade de TIDs tenha sido determinada com sucesso, e E_NOT_OK se a consulta falhar [SWS_Dem_00767]. Erros de desenvolvimento específicos (DET) ou causas de falha detalhadas para o caso de erro não são indicados separadamente na especificação.

A chamada é prevista exclusivamente para unidades de controle eletrônico relevantes para OBD. A interface está disponível no DEM apenas se o parâmetro de configuração DemOBDSupport não estiver configurado para DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00767].

Esta nota de uso foi gerada por uma IA e baseia-se exclusivamente nos documentos de especificação do AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_DcmGetDTRData [SWS_Dem_00768] 📄 PDF

Std_ReturnType Dem_DcmGetDTRData (uint8 Obdmid, uint8 TIDindex, uint8* TIDvalue, uint8* UaSID, uint16* Testvalue, uint16* Lowlimvalue, uint16* Upplimvalue);

Reports a DTR data along with TID-value, UaSID, test result with lower and upper limit. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona e reentrante Dem_DcmGetDTRData serve para o Diagnostic Communication Manager (DCM) consultar dados de DTR (Diagnostic Test Results), incluindo valor de TID, UaSID bem como o resultado de teste atual com limite inferior e superior [SWS_Dem_00768]. Ela está disponível exclusivamente em unidades de comando com suporte a OBD quando DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT está configurado [SWS_Dem_00768].

Utilização e interação

O DCM chama a função para obter os dados de DTR disponíveis para um determinado Obdmid e um TIDindex [SWS_Dem_00762]. A consulta ocorre tipicamente de forma iterativa através do índice TIDindex de 0 a numberOfTIDs - 1, sendo o número total determinado previamente através de Dem_DcmGetNumTIDsOfOBDMID() [SWS_Dem_00768], [SWS_Dem_00762]. Através dos parâmetros de saída TIDvalue, UaSID, Testvalue, Lowlimvalue e Upplimvalue são disponibilizados os valores para a resposta do testador [SWS_Dem_00768].

Tratamento de erros e condições de contorno

A função retorna E_OK em caso de determinação bem-sucedida dos resultados de DTR e E_NOT_OK em caso de erro [SWS_Dem_00768]. Um erro ocorre em particular se o evento de diagnóstico referenciado não estiver disponível:

  • Se um evento estiver definido como não disponível, ele é tratado como um evento não configurado e Dem_DcmGetDTRData falha [SWS_Dem_01108].
  • Se a função for chamada para um DTR cujo evento referenciado através de DemDtrEventRef estiver configurado com DemEventAvailable == FALSE, o DEM retorna obrigatoriamente E_NOT_OK [SWS_Dem_01336]. Neste caso, todos os parâmetros de saída são indefinidos [SWS_Dem_01336].

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

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmSetDTCFilter [SWS_Dem_00970] 📄 PDF

Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);

The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.

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

usar

A função síncrona Dem_J1939DcmSetDTCFilter (ID de serviço 0x90, declarada em Dem_J1939Dcm.h) define os atributos da máscara de filtro para a seleção de DTCs J1939 para um nó J1939 endereçado através de ClientId [SWS_Dem_00970], [SWS_Dem_00855]. Servem como critérios de filtro o filtro de status DTCStatusFilter (valores possíveis: DEM_J1939DTC_ACTIVE, DEM_J1939DTC_PREVIOUSLY_ACTIVE, DEM_J1939DTC_PENDING, DEM_J1939DTC_PERMANENT ou DEM_J1939DTC_CURRENTLY_ACTIVE), o grupo funcional DTCKind bem como a memória de origem DTCOrigin [SWS_Dem_00970]. Através do parâmetro de saída LampStatus, a chamada retorna o status de lâmpada combinado atual dos DTCs filtrados [SWS_Dem_00970], [SWS_Dem_00857]. Além disso, um contador interno é redefinido para o primeiro evento correspondente [SWS_Dem_00855]. Interpretação: O chamador da interface deve ser o módulo J1939Dcm para a preparação de operações de leitura de diagnóstico. Pergunta Q-5f25345851de686f (aberta)

Tratamento de erros e valores de retorno

Como valor de retorno, a função fornece E_OK em caso de configuração bem-sucedida do filtro ou E_NOT_OK caso o filtro não tenha podido ser definido [SWS_Dem_00970]. DTCs suprimidos não são abrangidos pela filtragem e são tratados como se o critério de filtro não se aplicasse; eles permanecem invisíveis para consultas [SWS_Dem_01101].

Simultaneidade e restrições

A função é reentrante para diferentes valores de ClientId, mas não reentrante para a mesma ClientId [SWS_Dem_00970]. Chamadas de filtragem concorrentes para a mesma memória de eventos J1939 devem, portanto, ser evitadas.

Interação

A definição do filtro forma a base para o processamento subsequente:

  • Determinação do número de caminhos de falha correspondentes através de Dem_J1939DcmGetNumberOfFilteredDTC [SWS_Dem_00855], [SWS_Dem_00874], [SWS_Dem_00972],
  • leitura iterativa dos eventos correspondentes através de Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00855], [SWS_Dem_00875] bem como
  • disponibilização do número de DTCs ativos ou anteriormente ativos para mensagens de prontidão (DM05) através de Dem_J1939DcmReadDiagnosticReadiness1 [SWS_Dem_00909].

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

Guia do implementador em breve (complexidade I2)

função Dem_J1939DcmGetNumberOfFilteredDTC [SWS_Dem_00972] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);

Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.

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

A função [SWS_Dem_00972] determina assincronamente o número de DTCs J1939 que correspondem aos critérios de filtragem previamente definidos com Dem_J1939DcmSetDTCFilter na memória de eventos primária do ClientId passado ([SWS_Dem_00874]). Uma chamada prévia de Dem_J1939DcmSetDTCFilter é necessária, pois ela define os atributos da máscara de filtro e reinicializa o contador interno para o primeiro evento ([SWS_Dem_00855]).

O resultado da contagem é fornecido através do parâmetro de saída NumberOfFilteredDTC. Para o fluxo e os valores de retorno aplicam-se as seguintes regras:

  • Sucesso: Assim que o número total de DTCs correspondentes for completamente determinado, a função retorna E_OK ([SWS_Dem_00874]).
  • Interrupção: Caso o processo de busca precise ser interrompido devido a restrições internas, a função retorna DEM_PENDING. Nesse caso, o parâmetro de saída ainda não precisa ser válido; uma chamada subsequente retoma a determinação a partir do elemento interrompido ([SWS_Dem_00874]).
  • Códigos de erro: A especificação prevê adicionalmente os valores de status DEM_NO_SUCH_ELEMENT bem como DEM_BUFFER_TOO_SMALL ([SWS_Dem_00972]).

Em termos de visibilidade, [SWS_Dem_01101] determina que falhas suprimidas (suppressed DTCs) devem ser tratadas como se o critério de filtragem não fosse atendido. A função é definida como não reentrante ([SWS_Dem_00972]), razão pela qual chamadas simultâneas devem ser evitadas.

Esta nota de uso foi criada por uma IA e resume os principais aspectos da especificação AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00973] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered J1939 DTC.

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

A função assíncrona e não reentrante Dem_J1939DcmGetNextFilteredDTC (ID de serviço 0x92) lê o próximo DTC J1939 filtrado da memória de eventos J1939 endereçada via ClientId [SWS_Dem_00973]. Ela é declarada através do cabeçalho Dem_J1939Dcm.h [SWS_Dem_00973].

Se a função encontrar um evento correspondente ao critério de filtro, ela retorna E_OK e fornece, por meio dos parâmetros de saída, o respectivo J1939DTC, bem como o correspondente OccurenceCounter [SWS_Dem_00877], [SWS_Dem_00973]. Se o contador de ocorrências estiver acima de 126 (0x7E), o valor retornado é limitado fixamente a 126 (0x7E) [SWS_Dem_00877].

Caso o processo de busca precise ser interrompido devido a limitações internas ou detalhes de implementação, a função retorna DEM_PENDING [SWS_Dem_00877], [SWS_Dem_00973]. Nesse caso, os parâmetros de saída não contêm dados válidos; a próxima chamada retoma a busca diretamente após o elemento interrompido [SWS_Dem_00877]. Se não houver outro elemento correspondente, o valor de retorno é DEM_NO_SUCH_ELEMENT; se o buffer for muito pequeno, DEM_BUFFER_TOO_SMALL é reportado [SWS_Dem_00973].

Eventos de diagnóstico suprimidos (suppressed DTCs) não são visíveis para a função de consulta; eles são tratados por Dem_J1939DcmGetNextFilteredDTC como se o critério de filtro não fosse correspondido [SWS_Dem_01101].

Este texto foi gerado automaticamente por uma IA e não substitui a especificação oficial do AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmFirstDTCwithLampStatus [SWS_Dem_00974] 📄 PDF

void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);

The function sets the filter to the first applicable DTC for the DM31 response for a specific node.

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

usar

A interface síncrona Dem_J1939DcmFirstDTCwithLampStatus inicializa a filtragem para o primeiro Diagnostic Trouble Code (DTC) correspondente para a resposta DM31 de um nó específico [SWS_Dem_00974]. O único parâmetro de entrada utilizado é ClientId do tipo uint8, com o qual a respectiva memória de eventos J1939 é endereçada [SWS_Dem_00974]. A função não possui parâmetros de entrada nem de saída e não fornece valor de retorno (void) [SWS_Dem_00974]. Ela é declarada através do arquivo de cabeçalho Dem_J1939Dcm.h com a ID de serviço 0x93 [SWS_Dem_00974]. Interpretação: a função provavelmente deve ser chamada primariamente pelo módulo J1939Dcm para inicializar a filtragem antes da transmissão das mensagens de status da lâmpada DM31. Pergunta Q-064513be4f06584b (aberta)

Lógica de filtro e interação

Cada chamada da função redefine o contador interno para o primeiro evento ao qual está atribuído um J1939DTC para o ClientId especificado [SWS_Dem_00880]. Em relação ao status dos eventos de diagnóstico, a especificação prescreve que um DTC suprimido (suppressed DTC) deve permanecer invisível para funções de consulta do DCM [SWS_Dem_01101]. Consequentemente, Dem_J1939DcmFirstDTCwithLampStatus trata DTCs suprimidos como se o critério de filtro não fosse atendido [SWS_Dem_01101].

Simultaneidade e restrições

Em relação ao comportamento de concorrência, a interface é reentrante para chamadas com diferentes valores de ClientId, mas não reentrante para o mesmo valor de ClientId [SWS_Dem_00974]. Portanto, consultas paralelas através de IDs de cliente idênticos para a mesma memória de eventos J1939 são inadmissíveis.

Este texto foi gerado automaticamente por um assistente de curadoria de IA.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmGetNextDTCwithLampStatus [SWS_Dem_00975] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered J1939 DTC for DM31 including current LampStatus.

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

Utilização e contexto de chamada

A função Dem_J1939DcmGetNextDTCwithLampStatus é executada de forma síncrona e é não reentrante ([SWS_Dem_00975]). No âmbito da comunicação de diagnóstico J1939 (DM31), ela serve para consultar iterativamente o próximo DTC J1939 filtrado juntamente com o status da lâmpada correspondente e o contador de eventos (OccurenceCounter) a partir da memória de eventos endereçada através de ClientId ([SWS_Dem_00975]). A iteração pressupõe que a memória de eventos foi previamente preparada por Dem_J1939DcmFirstDTCwithLampStatus ([SWS_Dem_00881]).

Sequência e valores de retorno

Cada chamada pesquisa a memória pelo próximo evento com DTC J1939 atribuído ([SWS_Dem_00881]). DTCs suprimidos (suppressed DTC) são tratados como eventos não correspondentes e ignorados ([SWS_Dem_01101]).

  • E_OK: Um evento correspondente foi encontrado. Os parâmetros LampStatus, J1939DTC e OccurenceCounter contêm valores válidos ([SWS_Dem_00882]). Interpretação: A condição DEM_FILTERED_OK mencionada na especificação do parâmetro provavelmente refere-se a E_OK, já que DEM_FILTERED_OK não está declarado como valor de retorno para esta função ([SWS_Dem_00975]). Pergunta Q-5284fb30b98babf6 (aberta)
  • DEM_PENDING: A busca interna teve que ser interrompida devido a limites de implementação. Os parâmetros de saída não contêm dados válidos, e a próxima chamada retoma a busca após o elemento interrompido ([SWS_Dem_00882]).
  • DEM_NO_SUCH_ELEMENT: Não há mais eventos correspondentes presentes na memória; os parâmetros de saída são inválidos ([SWS_Dem_00881]).
  • DEM_BUFFER_TOO_SMALL: O buffer passado é pequeno demais ([SWS_Dem_00975]).

Status da lâmpada e faixa de valores

Para a determinação do status da lâmpada, o DEM verifica o bit de status UDS 7 (WarningIndicator), bem como a respectiva referência do indicador: A Malfunction Indicator Lamp ([SWS_Dem_00883]), a Red Stop Lamp ([SWS_Dem_00887]) e a Amber Warning Lamp ([SWS_Dem_00891]) são definidas, cada uma, como Lamp On se o bit estiver ativo e a referência estiver atribuída; caso contrário, elas são Lamp Off. O OccurenceCounter é limitado exatamente a 126 para valores de contagem superiores a 126 (0x7F) ([SWS_Dem_00882]).

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

Guia do implementador em breve (complexidade I2)

função Dem_J1939DcmClearDTC [SWS_Dem_00976] 📄 PDF

Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);

Clears the status of all event(s) related to the specified DTC(s), as well as all associated event memory entries for these event(s).

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

usar

A função Dem_J1939DcmClearDTC ([SWS_Dem_00976]) é disponibilizada ao módulo J1939Dcm através do header Dem_J1939Dcm.h para excluir da memória de eventos todos os códigos de falha de diagnóstico (DTCs) ativos ou anteriormente ativos ([SWS_Dem_00878]). A chamada opera de forma assíncrona. Como parâmetros de entrada, a interface espera o tipo de filtro DTCTypeFilter para determinar os DTCs a serem excluídos, DTCOrigin para a seleção da memória de origem, bem como o ClientId para o endereçamento da memória de eventos J1939.

Tratamento de erros e valores de retorno

O resultado da execução é sinalizado através do tipo de retorno Std_ReturnType:

  • E_OK: O processo de exclusão foi concluído com sucesso.
  • DEM_PENDING: A limpeza está em andamento; o chamador deve chamar a função novamente em um momento posterior.
  • DEM_CLEAR_BUSY: Outro cliente está executando uma operação de exclusão simultaneamente; a operação não é iniciada e deve ser repetida mais tarde.
  • DEM_WRONG_DTC: O DTC selecionado não existe no formato selecionado ou a exclusão está restrita a grupos por configuração.
  • DEM_WRONG_DTCORIGIN: A memória de origem indicada não existe.
  • DEM_CLEAR_FAILED ou DEM_CLEAR_MEMORY_ERROR: A exclusão falhou ou ocorreu um erro ao excluir uma área de memória (por ex., em caso de exclusão incompleta de memória não volátil).

Simultaneidade e restrições

De acordo com [SWS_Dem_00976], a função é reentrante para diferentes IDs de cliente, mas não é reentrante para o mesmo ClientId. Chamadas de exclusão paralelas através de clientes idênticos são, portanto, inadmissíveis.

Interação

De acordo com [SWS_Dem_00879], a exclusão redefine o status de todos os eventos afetados e remove as respectivas entradas da memória de eventos. Além disso, de acordo com [SWS_Dem_00878], o processo de exclusão dispara uma reinicialização dos SW-Cs e módulos BSW afetados de acordo com [SWS_Dem_00003].

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

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00977] 📄 PDF

Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);

The function sets the FreezeFrame filter for a specific node.

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

A função síncrona Dem_J1939DcmSetFreezeFrameFilter serve para definir o filtro de freeze frame para um nó específico através do cabeçalho Dem_J1939Dcm.h [SWS_Dem_00977]. Ela configura atributos de máscara de filtro para consultas subsequentes por meio de Dem_J1939DcmGetNextFreezeFrame e reinicializa um contador interno para o primeiro freeze frame [SWS_Dem_00899].

Parâmetros e valores de retorno

  • FreezeFrameKind: Determina o tipo de filtro [SWS_Dem_00977]. Os tipos disponíveis são DEM_J1939DCM_FREEZEFRAME (filtragem dos dados em DemJ1939FreezeFrameClassRef), DEM_J1939DCM_EXPANDED_FREEZEFRAME (filtragem dos dados em DemJ1939ExpandedFreezeFrameClassRef), bem como DEM_J1939DCM_SPNS_IN_EXPANDED_FREEZEFRAME ([SWS_Dem_00977], [SWS_Dem_00899]).
  • ClientId: Passa o identificador para endereçamento da memória de eventos J1939 [SWS_Dem_00977].
  • Valor de retorno: Retorna E_OK em caso de execução bem-sucedida ou E_NOT_OK se o filtro não pôde ser definido [SWS_Dem_00977].

Concorrência e validade

Em termos de concorrência, a função é reentrante para valores diferentes de ClientId, mas não é reentrante para valores idênticos de ClientId [SWS_Dem_00977]. Os atributos de máscara de filtro definidos permanecem efetivos após a chamada até que ocorra uma nova chamada de Dem_J1939DcmSetFreezeFrameFilter ou o módulo DEM seja reinicializado [SWS_Dem_00899].

Este texto foi gerado por uma IA com base na especificação.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmGetNextFreezeFrame [SWS_Dem_00978] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);

Gets next freeze frame data. The function stores the data in the provided DestBuffer.

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

usar

A função assíncrona e não reentrante Dem_J1939DcmGetNextFreezeFrame lê progressivamente dados de Freeze Frame para uma memória de eventos específica [SWS_Dem_00978]. A iteração orienta-se pelos critérios de filtro FreezeFrameKind e ClientId previamente configurados via Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00900]. Os dados úteis são copiados para o buffer DestBuffer (no caso de Expanded Freeze Frames, sem informações de SPN e com bits não utilizados preenchidos com 0), enquanto BufSize passa o tamanho do buffer e reporta a quantidade de bytes efetivamente gravada [SWS_Dem_00978], [SWS_Dem_00903]. Além disso, a chamada fornece o respectivo J1939DTC, bem como o OccurenceCounter, que é limitado a 0x7F em valores superiores a 126 [SWS_Dem_00903].

Valores de retorno e tratamento de erros

Os valores de retorno controlam o fluxo da iteração:

  • E_OK: Um registro foi encontrado e transferido com sucesso [SWS_Dem_00978], [SWS_Dem_00903]. A menção a DEM_FILTERED_OK na descrição do parâmetro provavelmente deve ser entendida como um sinônimo editorial para E_OK. Pergunta Q-e941066640c694b9 (aberta)
  • DEM_NO_SUCH_ELEMENT: Não existem registros adicionais que correspondam aos critérios de filtro [SWS_Dem_00900].
  • DEM_PENDING: A busca interna foi interrompida; a chamada subsequente retoma a busca no ponto de interrupção [SWS_Dem_00902].
  • DEM_BUFFER_TOO_SMALL ou DEM_FILTERED_BUFFER_TOO_SMALL: O buffer é insuficiente; a operação é abortada sem a aceitação dos dados [SWS_Dem_00978], [SWS_Dem_00903].

Se for passado um tipo de filtro não suportado, a função reporta o erro DET DEM_E_WRONG_CONDITION; apenas DEM_J1939DCM_FREEZEFRAME e DEM_J1939DCM_EXPANDED_FREEZEFRAME são válidos [SWS_Dem_00901]. Desde que o valor de retorno seja diferente de sucesso, os parâmetros de saída não contêm dados válidos [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].

Restrições e interação

DTCs suprimidos são ignorados pela consulta e tratados como critérios de filtro não correspondentes [SWS_Dem_01101].

Esta nota de uso foi gerada de forma automatizada e baseia-se exclusivamente na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);

Gets next SPN.

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

Utilização e semântica

A função Dem_J1939DcmGetNextSPNInFreezeFrame lê passo a passo o próximo SPN (Suspect Parameter Number) do Freeze Frame estendido ([SWS_Dem_00979]). Cada chamada itera para o próximo elemento da definição de SPN para a memória de eventos endereçada via ClientId ([SWS_Dem_00904]). Em caso de localização bem-sucedida, a chamada retorna E_OK, bem como o SPN encontrado via SPNSupported e seu comprimento de dados via SPNDataLength ([SWS_Dem_00979], [SWS_Dem_00907]).

Processamento assíncrono e valores de retorno

A operação está especificada como assíncrona ([SWS_Dem_00979]). Se a execução da busca precisar ser interrompida devido a restrições internas, a função retorna DEM_PENDING; nesse caso, os parâmetros de saída não são obrigatoriamente válidos e a chamada subsequente retoma a busca no ponto interrompido ([SWS_Dem_00905]). Se não houver outros SPNs na definição, DEM_NO_SUCH_ELEMENT é reportado, sendo que os parâmetros de saída também não precisam ser válidos ([SWS_Dem_00904]). Se o buffer fornecido for insuficiente, a interface reporta DEM_BUFFER_TOO_SMALL ([SWS_Dem_00979]).

Tratamento de erros e simultaneidade

Se for solicitada uma variante de Freeze Frame não suportada, o módulo dispara o erro DET DEM_E_WRONG_CONDITION; apenas Dem_SPNsInExpandedFreezeFrame é válido ([SWS_Dem_00906]). Como a função é definida como não reentrante ([SWS_Dem_00979]), ela não pode ser chamada concorrentemente para o mesmo contexto. O arquivo de cabeçalho Dem_J1939Dcm.h disponibiliza a interface ([SWS_Dem_00979]).

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

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmSetRatioFilter [SWS_Dem_00980] 📄 PDF

Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);

The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General Denominator.

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

A função síncrona Dem_J1939DcmSetRatioFilter define o filtro de ratio para um nó J1939 específico e inicializa a filtragem de proporções IUMPR conforme [SWS_Dem_00980]. Ao fazer isso, redefine um contador interno para o primeiro SPN válido com DemRatioId definida, a fim de preparar a consulta passo a passo subsequente via Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00912].

Através dos parâmetros de saída, a função disponibiliza valores de contadores de nível superior:

  • IgnitionCycleCounter: fornece o contador de ciclos de ignição de acordo com a SAE J1939-73 (capítulo 5.7.20.1) [SWS_Dem_00912].
  • OBDMonitoringConditionsEncountered: fornece o contador para condições de monitoramento OBD ocorridas de acordo com a SAE J1939-73 (capítulo 5.7.20.2), definido pela CARB como General Denominator [SWS_Dem_00912].
  • ClientId: identifica o cliente chamador para endereçamento da memória de eventos J1939 [SWS_Dem_00980].

Em relação à simultaneidade, a função é reentrante para diferentes valores de ClientId, mas não é reentrante para o mesmo ClientId [SWS_Dem_00980]. Interpretação: a chamada deve ocorrer tipicamente de forma síncrona a partir do fluxo do J1939-Diagnostic-Communication-Manager (J1939Dcm), a fim de consultar dados de diagnóstico IUMPR. Pergunta Q-e577651b88f64132 (aberta) Caso a definição do filtro seja bem-sucedida, a função retorna E_OK; se a definição falhar, é reportado E_NOT_OK [SWS_Dem_00980].

Na interação com eventos de diagnóstico, aplica-se que DTCs suprimidos não devem ser visíveis para funções de consulta como Dem_J1939DcmSetRatioFilter e devem ser tratados como se o filtro não correspondesse [SWS_Dem_01101].

Esta nota de uso foi gerada automaticamente com base no AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00981] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);

Gets the next filtered Ratio.

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

usar

A função síncrona e não reentrante Dem_J1939DcmGetNextFilteredRatio ([SWS_Dem_00981]) serve para a leitura iterativa da próxima razão (ratio) IUMPR filtrada. Por meio do parâmetro ClientId, a respectiva memória de eventos J1939 é endereçada. Em caso de chamada bem-sucedida, a função fornece através dos parâmetros de saída SPN, Numerator e Denominator a Suspect Parameter Number, bem como o numerador e o denominador do monitor do sistema aplicável ([SWS_Dem_00981]).

Sequência e interação

Para uma iteração correta, o filtro deve ser previamente inicializado através de Dem_J1939DcmSetRatioFilter ([SWS_Dem_00912]). Esta chamada redefine um contador interno para a primeira SPN válida com DemRatioId definida, sobre a qual se baseiam as chamadas subsequentes de Dem_J1939DcmGetNextFilteredRatio. Um DTC suprimido não é visível para a consulta e é tratado como se o filtro não se aplicasse ([SWS_Dem_01101]).

Valores de retorno e tratamento de erros

De acordo com [SWS_Dem_00981], são definidos os seguintes valores de retorno:

  • E_OK: a operação foi bem-sucedida. Apenas neste caso SPN, Numerator e Denominator contêm dados válidos (a menção de DEM_FILTERED_OK na descrição dos parâmetros deve representar uma interpretação para E_OK). Pergunta Q-57774bbc88fe3c0b (aberta)
  • DEM_NO_SUCH_ELEMENT: não há outro elemento correspondente disponível.
  • DEM_PENDING: a operação foi bem-sucedida, mas o resultado ainda está pendente.
  • DEM_BUFFER_TOO_SMALL: o buffer fornecido é pequeno demais.

simultaneidade

Como a função é declarada como não reentrante ([SWS_Dem_00981]), ela não pode ser chamada concorrentemente para a mesma ClientId.

Este texto foi gerado por uma IA e serve como orientação. São determinantes as especificações AUTOSAR referenciadas.

Guia do implementador em breve (complexidade I1)

função Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00982] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.

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

A interface síncrona Dem_J1939DcmReadDiagnosticReadiness1 (listada no padrão Classic sob Dem_J1939DcmReadDiagnosticReadiness) serve para consultar o valor da Diagnostic Readiness 1 (DM05) calculado pelo Diagnostic Event Manager [SWS_Dem_00982]. Ela é declarada através do arquivo de cabeçalho Dem_J1939Dcm.h e possui o ID de serviço 0x9b [SWS_Dem_00982].

Utilização e parâmetros

A chamada ocorre de forma síncrona e utiliza os seguintes parâmetros de função [SWS_Dem_00982]:

  • ClientId (IN, uint8): Identifica a memória de eventos J1939 (J1939 event memory) a ser endereçada [SWS_Dem_00982].
  • DataValue (OUT, ponteiro para Dem_J1939DcmDiagnosticReadiness1Type): Aponta para um buffer de 8 bytes no qual o DEM grava o conteúdo calculado da Diagnostic Readiness 1 (DM05) [SWS_Dem_00982].

Valores de retorno e tratamento de erros

A função retorna um estado do tipo Std_ReturnType [SWS_Dem_00982]:

  • E_OK: O serviço foi executado com sucesso e os dados de readiness foram armazenados no buffer de saída [SWS_Dem_00982].
  • E_NOT_OK: A operação falhou [SWS_Dem_00982]. Códigos de erro específicos, eventos DEM ou mensagens DET não são indicados na especificação da função [SWS_Dem_00982].

Simultaneidade e restrições

Em termos de acesso simultâneo, o serviço é especificado como reentrante para diferentes ClientIds, mas expressamente definido como não reentrante para o mesmo ClientId [SWS_Dem_00982].

Esta nota de uso foi criada automaticamente com base em dados de especificação do AUTOSAR R20-11.

função Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00983] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.

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

A função síncrona Dem_J1939DcmReadDiagnosticReadiness2 (ID de serviço 0x9c) serve para consultar o valor da Diagnostic Readiness 2 (DM21) calculado pelo DEM [SWS_Dem_00983]. A interface é disponibilizada através do arquivo de cabeçalho Dem_J1939Dcm.h [SWS_Dem_00983].

Para a chamada, dois parâmetros estão definidos [SWS_Dem_00983]:

  • ClientId (entrada): Endereça a respectiva memória de eventos J1939 [SWS_Dem_00983].
  • DataValue (saída): Ponteiro para um buffer de 8 bytes do tipo Dem_J1939DcmDiagnosticReadiness2Type para receber os dados de DM21 calculados [SWS_Dem_00983].

Como valor de retorno, a função fornece Std_ReturnType; em caso de consulta bem-sucedida, é retornado E_OK, enquanto em caso de falha é reportado E_NOT_OK [SWS_Dem_00983]. Causas de erro específicas não são indicadas separadamente; no caso de E_NOT_OK, o chamador provavelmente deve assumir que o buffer não contém dados válidos. Pergunta Q-97b94d15a8634712 (aberta)

Em termos de concorrência, o serviço é reentrante para diferentes valores de ClientId, mas não é reentrante para o mesmo ClientId [SWS_Dem_00983]. Chamadas simultâneas para o mesmo ClientId devem, portanto, ser serializadas no contexto chamador.

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

função Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00770] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.

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

O serviço Dem_J1939DcmReadDiagnosticReadiness (especificado na assinatura como Dem_J1939DcmReadDiagnosticReadiness3) serve para a leitura síncrona dos dados relativos à Diagnostic Readiness 3 (DM26) determinados pelo DEM [SWS_Dem_00770]. A declaração é disponibilizada através do arquivo de cabeçalho Dem_J1939Dcm.h [SWS_Dem_00770]. De acordo com o nome da interface, a chamada deve ser realizada primariamente pelo módulo J1939Dcm. Pergunta Q-dc204541dfc23d6b (aberta)

A interface espera dois parâmetros [SWS_Dem_00770]:

  • ClientId (in): Endereça a respectiva memória de eventos J1939 [SWS_Dem_00770].
  • DataValue (out): Ponteiro para um buffer de 8 bytes do tipo Dem_J1939DcmDiagnosticReadiness3Type para recepção dos dados calculados de DM26 [SWS_Dem_00770].

Como valor de retorno, a função fornece E_OK se a operação foi bem-sucedida, ou E_NOT_OK em caso de erro durante a execução [SWS_Dem_00770].

Em termos de concorrência, a função é reentrante para valores diferentes de ClientId, mas não é reentrante para valores idênticos de ClientId [SWS_Dem_00770]. Chamadas paralelas para o mesmo cliente devem, portanto, ser excluídas ou sincronizadas pelo chamador.

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

função Dem_SetEventDisabled [SWS_Dem_00312] 📄 PDF

Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);

Service for reporting the event as disabled to the Dem for the PID $41 computation. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_RepIUMPRFaultDetect [SWS_Dem_00313] 📄 PDF

Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);

Service for reporting that faults are possibly found because all conditions are fullfilled. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

usar

A função síncrona Dem_RepIUMPRFaultDetect serve para reportar que um monitor de OBD cumpriu todas as condições de execução e, portanto, poderia ter detectado falhas potenciais [SWS_Dem_00313]. A interface é disponibilizada através do cabeçalho Dem.h e está disponível exclusivamente em unidades de controle com suporte a OBD, desde que DemOBDSupport não esteja configurado como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00313], [SWS_Dem_00360].

Como parâmetro, é passado o identificador RatioID do tipo Dem_RatioIdType quando a opção de interface “API” está selecionada [SWS_Dem_00313]. Em caso de captura bem-sucedida do resultado de IUMPR, a função retorna o status E_OK [SWS_Dem_00313].

Concorrência e comportamento em caso de erro

No que tange à concorrência, o serviço é reentrante para diferentes identificadores RatioID, mas não reentrante para o mesmo valor RatioID [SWS_Dem_00313]. Chamadas concorrentes com identificador idêntico devem, portanto, ser evitadas pelo chamador.

Se um evento correspondente for definido como não disponível, o módulo DEM o trata como se não estivesse configurado no sistema [SWS_Dem_01108]. O Dem_RepIUMPRFaultDetect também é afetado explicitamente por essa desativação [SWS_Dem_01108]; interpretação: neste estado, o retorno da chamada presumivelmente deve ser E_NOT_OK, analogamente às demais APIs de status afetadas. Pergunta Q-6d1775c9bff08f42 (aberta)

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

Guia do implementador em breve (complexidade I1)

função Dem_SetIUMPRDenCondition [SWS_Dem_00733] 📄 PDF

Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to forward the condition status to a Dem of a particular ECU. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_GetIUMPRDenCondition [SWS_Dem_00734] 📄 PDF

Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to retrieve the condition status from the Dem of the ECU where the conditions are computed. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_RepIUMPRDenRelease [SWS_Dem_00315] 📄 PDF

Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);

Service is used to release a denominator of a specific monitor. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

A função síncrona e reentrante Dem_RepIUMPRDenRelease serve para liberar o denominador de um monitor específico por razões físicas, tais como o alcance de certas condições de temperatura ou atividade mínima [SWS_Dem_00315]. O DEM disponibiliza esta interface para componentes de software (SW-C) relevantes para IUMPR para controlar de forma direcionada o denominador pertencente ao respectivo RatioID [SWS_Dem_00308].

A disponibilização e o comportamento da função estão sujeitos a condições fixas de configuração e de tempo de execução:

  • Disponibilidade e configuração: A API está disponível exclusivamente em unidades de controle relevantes para OBD quando DemOBDSupport estiver configurado como diferente de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00315]. Além disso, a interface para liberação é disponibilizada sob condições especiais caso DemIUMPRDenGroup esteja configurado como DEM_IUMPR_DEN_PHYS_API [SWS_Dem_00362].
  • Parâmetros e valores de retorno: Como parâmetro de entrada, é passado o identificador RatioID. A função retorna E_OK quando o status do denominador de IUMPR foi reportado com sucesso; caso contrário, E_NOT_OK [SWS_Dem_00315].
  • Comportamento em caso de erro com eventos inativos: Se um evento correspondente for definido como não disponível, ele é tratado como se não estivesse configurado no sistema; a chamada de Dem_RepIUMPRDenRelease é diretamente afetada por isso e fornece E_NOT_OK [SWS_Dem_01108].

Graças ao design reentrante, a função pode ser chamada concorrentemente a partir de diferentes contextos de SW-C, se necessário [SWS_Dem_00315].

Este texto foi gerado por uma IA e não substitui a especificação autoritativa do AUTOSAR.

Guia do implementador em breve (complexidade I1)

função Dem_SetPtoStatus [SWS_Dem_00627] 📄 PDF

Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);

API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

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

usar

A função síncrona Dem_SetPtoStatus ([SWS_Dem_00627]) serve para definir o status da tomada de força (Power Take-Off, PTO) no Diagnostic Event Manager (DEM). A interface está declarada no cabeçalho Dem.h e possui o ID de serviço 0x79 ([SWS_Dem_00627]).

  • Parâmetro: O parâmetro de entrada PtoStatus (tipo boolean) passa o status da tomada de força, onde TRUE representa ativo e FALSE inativo ([SWS_Dem_00627]). Não existem parâmetros de entrada/saída ou parâmetros de saída.
  • Valor de retorno: O tipo de retorno é Std_ReturnType. A função fornece E_OK quando o novo status da PTO foi aceito pelo DEM, e E_NOT_OK em todos os outros casos ([SWS_Dem_00627]).

Simultaneidade e restrições

A função opera de forma síncrona e está especificada como não reentrante (Non Reentrant) ([SWS_Dem_00627]).

Contexto do sistema e configuração

A interface é necessária exclusivamente em unidades de controle eletrônico relevantes para OBD ([SWS_Dem_00627]). Ela está disponível apenas quando o parâmetro de configuração DemGeneral.DemOBDSupport não estiver definido como DEM_OBD_NO_OBD_SUPPORT ([SWS_Dem_00627]).

Este texto foi gerado por uma IA e baseia-se nas especificações do módulo DEM no AUTOSAR Classic R20-11.

Guia do implementador em breve (complexidade I1)

função Dem_ReadDataOfPID01 [SWS_Dem_01167] 📄 PDF

Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD relevant ECUs only

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

Utilização e parâmetros

A função síncrona Dem_ReadDataOfPID01 (Service-ID 0xb3) serve para consultar o valor do PID $01 calculado pelo Diagnostic Event Manager (DEM) [SWS_Dem_01167]. A interface é disponibilizada através do cabeçalho Dem.h [SWS_Dem_01167]. Como parâmetro de saída, a função espera PID01value, que é passado como um ponteiro para um buffer [SWS_Dem_01167]. Este buffer deve obrigatoriamente ser alocado e fornecido pela aplicação chamadora com um tamanho fixo de 4 bytes para comportar os dados calculados [SWS_Dem_01167].

Tratamento de erros e valores de retorno

Como tipo de retorno, a interface fornece formalmente Std_ReturnType, mas, segundo a especificação, retorna invariavelmente E_OK [SWS_Dem_01167]. O valor de erro E_NOT_OK nunca ocorre [SWS_Dem_01167]. Não estão especificados para esta interface nem códigos de erro específicos nem mensagens para o DET ou DEM [SWS_Dem_01167].

Simultaneidade e restrições

A função está especificada como não reentrante (Non Reentrant) [SWS_Dem_01167]. Portanto, os chamadores devem assegurar que não ocorram chamadas simultâneas. Além disso, a API é funcionalmente restrita e é necessária exclusivamente em ECUs com relevância para OBD [SWS_Dem_01167].

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

função Dem_GetDataOfPID21 [SWS_Dem_01093] 📄 PDF

Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);

Service to get the value of PID $21 from the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemGeneral OBD.DemOBDCentralizedPID21Handling)} == true) && ({ecuc(Dem/DemGeneral.Dem OBDSupport)} == DEM_OBD_MASTER_ECU)

função Dem_SetDataOfPID21 [SWS_Dem_00735] 📄 PDF

Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);

Service to set the value of PID $21 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_SetDataOfPID31 [SWS_Dem_00736] 📄 PDF

Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);

Service to set the value of PID $31 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_SetDataOfPID4D [SWS_Dem_00737] 📄 PDF

Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);

Service to set the value of PID $4D in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_SetDataOfPID4E [SWS_Dem_00738] 📄 PDF

Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);

Service to set the value of PID $4E in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_GetCycleQualified [SWS_Dem_00740] 📄 PDF

Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);

Returns the qualification state of the dependent operation cycle. API Availability: This API will be available only if any of the ({ecuc(Dem/DemGeneral/Dem OperationCycle.DemLeadingCycleRef)} != NULL)

função Dem_SetCycleQualified [SWS_Dem_91001] 📄 PDF

Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);

Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.

função Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF

Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);

Gets the DTC Severity availability mask.

função Dem_SetDTR [SWS_Dem_00765] 📄 PDF

Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);

Reports a DTR result with lower and upper limit. The internal eventstatus serves as master whether the DTR values are forwarded or ignored, also taking the DTRUpdateKind into account. The EventId that is related to the DTR is assigned per configuration (and derived from ServiceNeeds). Processing takes enable/storage conditions into account. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

função Dem_CallbackEventSyncStorageProcessed [SWS_Dem_91042] 📄 PDF

Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);

Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of Dem_SetEventFailedWithSyncFreezeFrame with the same event ID can be processed by the Dem. Tags: atp.Status=draft

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

A função de callback Dem_CallbackEventSyncStorageProcessed é chamada sincronamente pelo Diagnostic Event Manager (DEM) assim que o processamento interno de Dem_SetEventFailedWithSyncFreezeFrame for concluído ([SWS_Dem_91042]). Ela informa ao componente chamador que uma nova chamada de Dem_SetEventFailedWithSyncFreezeFrame para o mesmo ID de evento pode ser processada pelo DEM ([SWS_Dem_91042]).

Para o uso e a integração, aplicam-se as seguintes propriedades de interface e execução:

  • Parâmetros e valor de retorno: A interface não possui parâmetros de entrada, de saída ou de entrada/saída ([SWS_Dem_91042]). O tipo de retorno é Std_ReturnType, sendo que, por razões de compatibilidade com a RTE, apenas o valor de retorno E_OK é permitido e fornecido ([SWS_Dem_91042]).
  • Concorrência: A função é especificada como reentrante ([SWS_Dem_91042]).
  • Tratamento de erros: Não estão previstos códigos de erro específicos ou mensagens para o rastreamento de erros de desenvolvimento (DET) ([SWS_Dem_91042]).

Em termos de interação e configuração, existe um pré-requisito fixo: Dem_CallbackEventSyncStorageProcessed só pode ser configurada para eventos de diagnóstico cujo parâmetro DemEventReportingType esteja definido como IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING ([SWS_Dem_01356]). Além disso, o elemento está anotado no Release R20-11 com o status draft ([SWS_Dem_91042], [SWS_Dem_01356]).

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

Guia do implementador em breve (complexidade I2)

função Dem_MainFunction [SWS_Dem_00266] 📄 PDF

void Dem_MainFunction (void);

Processes all not event based Dem internal functions.

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

A função básica Dem_MainFunction possui a assinatura void Dem_MainFunction(void) com o service ID 0x55 e é disponibilizada por meio do arquivo de cabeçalho SchM_Dem.h ([SWS_Dem_00266]). Ela não recebe parâmetros, não retorna valor e serve para a execução de todos os fluxos internos não baseados em eventos do módulo DEM ([SWS_Dem_00266], [SWS_Dem_00125]).

Para o contexto de chamada e o tratamento de erros aplicam-se exceções especiais no ciclo de vida do módulo: se a detecção de desenvolvimento DemDevErrorDetect estiver definida como TRUE, a chamada de interfaces regulares do DEM antes da inicialização completa leva à notificação do erro DEM_E_UNINIT; Dem_MainFunction, contudo, está expressamente isenta desta geração de erro ([SWS_Dem_00124]). Da mesma forma, após a chamada de Dem_Shutdown, a função fica isenta da notificação de erro DEM_E_UNINIT até que Dem_Init seja chamada novamente ([SWS_Dem_00368]).

Na interação com a memória de falhas, a função controla de forma determinante a aquisição e o armazenamento em buffer de dados de diagnóstico:

  • Se DemEnvironmentDataCapture estiver configurado como DEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING (referente a DemPrimaryMemory ou DemUserDefinedMemory), os Freeze Frame data específicos do evento ([SWS_Dem_00461]) e os registros de Extended Data ([SWS_Dem_01081]) devem ser adquiridos o mais tardar no próximo ciclo de Dem_MainFunction.
  • Se DemEnvironmentDataCapture estiver definido como DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING, o módulo DEM enfileira os dados de ambiente até a próxima chamada de Dem_MainFunction ([SWS_Dem_01083]). O módulo armazena em buffer, no mínimo, a quantidade configurada de acordo com DemMaxNumberEventEntryEventBuffer; caso a fila esteja cheia, os dados são adquiridos durante o processamento do evento dentro de Dem_MainFunction ([SWS_Dem_01083]).

Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic Release R20-11.

Guia do implementador em breve (complexidade I1)

tipo Dem_ComponentIdType [SWS_Dem_01114] 📄 PDF

Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.

tipo Dem_ConfigType [SWS_Dem_00924] 📄 PDF

This type of the external data structure shall contain the post build initialization data for the Dem.

tipo Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF

This type is used to request a DTC with specific attributes.

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

Utilização e gama de valores

O tipo de dados Dem_DTCRequestType é derivado de uint8 e está disponível através do cabeçalho Dem.h [SWS_Dem_00935]. Ele serve para solicitar um Diagnostic Trouble Code (DTC) com base em atributos temporais específicos [SWS_Dem_00935].

O intervalo de valores permitido compreende os seguintes valores de enumeração [SWS_Dem_00935]:

  • DEM_FIRST_FAILED_DTC (0x01): Solicita o DTC que falhou primeiro cronologicamente.
  • DEM_MOST_RECENT_FAILED_DTC (0x02): Solicita o DTC que falhou por último.
  • DEM_FIRST_DET_CONFIRMED_DTC (0x03): Solicita o DTC identificado primeiro como confirmado.
  • DEM_MOST_REC_DET_CONFIRMED_DTC (0x04): Solicita o DTC identificado por último como confirmado.

Interação, concorrência e tratamento de erros

O tipo é passado como parâmetro de entrada DTCRequest da função síncrona Dem_GetDTCByOccurrenceTime [SWS_Dem_00218]. Através deste parâmetro, define-se segundo qual critério o DTC deve ser consultado [SWS_Dem_00218]. O resultado é retornado no formato UDS através do parâmetro de saída DTC [SWS_Dem_00218].

A interface é reentrante para diferentes chamadores com diferentes valores de ClientId, mas não é reentrante para o mesmo ClientId [SWS_Dem_00218]. Os valores de retorno possíveis são E_OK em caso de consulta bem-sucedida, E_NOT_OK em caso de erros, bem como DEM_NO_SUCH_ELEMENT caso nenhuma entrada correspondente esteja armazenada [SWS_Dem_00218]. Se o resultado da função divergir de DEM_OCCURR_OK, o parâmetro DTC não contém dados válidos [SWS_Dem_00218].

Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.

tipo Dem_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF

The type to distinguish which DTCs should be filtered.

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

Utilização e gama de valores

O tipo Dem_J1939DcmDTCStatusFilterType é um tipo de enumeração baseado em uint8, disponibilizado através do arquivo de cabeçalho Dem.h [SWS_Dem_00945]. Ele serve para determinar segundo qual status J1939 os códigos de falha de diagnóstico (DTCs) devem ser diferenciados e selecionados em operações de filtragem [SWS_Dem_00945].

Estão especificados os seguintes valores de filtro de status:

  • DEM_J1939DTC_ACTIVE (0): Filtra por códigos de falha ativos [SWS_Dem_00945].
  • DEM_J1939DTC_PREVIOUSLY_ACTIVE (1): Filtra por códigos de falha previamente ativos [SWS_Dem_00945].
  • DEM_J1939DTC_PENDING (2): Filtra por códigos de falha pendentes [SWS_Dem_00945].
  • DEM_J1939DTC_PERMANENT (3): Filtra por códigos de falha permanentes [SWS_Dem_00945].
  • DEM_J1939DTC_CURRENTLY_ACTIVE (4): Filtra por códigos de falha atualmente ativos [SWS_Dem_00945].

Interação e contexto de chamada

O tipo de filtro é utilizado como parâmetro de passagem DTCStatusFilter na interface Dem_J1939DcmSetDTCFilter [SWS_Dem_00970]. A função opera de forma síncrona e ajusta o filtro levando em consideração a categoria de falha (DTCKind), a origem da memória (DTCOrigin) e o respectivo ClientId para a memória de eventos J1939 [SWS_Dem_00970]. Como interpretação, a chamada provavelmente deve ocorrer a partir do gerenciador de comunicação de diagnóstico para J1939. Pergunta Q-898d508b7b341ef8 (aberta)

Simultaneidade e tratamento de erros

O serviço Dem_J1939DcmSetDTCFilter é reentrante para diferentes valores de ClientId, porém explicitamente não reentrante para o mesmo ClientId [SWS_Dem_00970]. Uma configuração de filtro bem-sucedida é confirmada pelo serviço com o valor de retorno E_OK [SWS_Dem_00970].

Este texto foi criado por uma IA com base nos documentos de especificação.

Guia do implementador em breve (complexidade I1)

tipo Dem_J1939DcmLampStatusType [SWS_Dem_00948] 📄 PDF

For details refer SAE J1939-73

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

O tipo de estrutura Dem_J1939DcmLampStatusType está declarado em Dem.h de acordo com [SWS_Dem_00948] e serve para o registro do status da lâmpada J1939 conforme SAE J1939-73. A estrutura de dados agrupa duas informações de status como elementos uint8: LampStatus para o estado atual da lâmpada e FlashLampStatus para o respectivo comportamento de intermitência.

Na filtragem de DTCs J1939 do Diagnostic Event Manager, o tipo atua como parâmetro de saída do tipo ponteiro em duas interfaces síncronas:

  • Através de Dem_J1939DcmSetDTCFilter ([SWS_Dem_00970]), ao inicializar o filtro de DTC para uma memória de eventos J1939 específica (endereçada via ClientId), é consultado o status inicial da lâmpada.
  • Através de Dem_J1939DcmGetNextDTCwithLampStatus ([SWS_Dem_00975]), a estrutura é preenchida iterativamente com o status da lâmpada correspondente para cada entrada correspondente na memória de falhas.

No tratamento de erros, deve-se observar obrigatoriamente que, de acordo com [SWS_Dem_00975], Dem_J1939DcmGetNextDTCwithLampStatus só escreve valores válidos no parâmetro de saída se o valor de retorno da função for DEM_FILTERED_OK. Se a chamada retornar um valor diferente, a estrutura não conterá dados válidos.

No que diz respeito à concorrência e às condições de chamada, a estrutura em si não possui proteção interna. A reentrância orienta-se pelo respectivo contexto de chamada: Dem_J1939DcmSetDTCFilter é reentrante para diferentes IDs de cliente, mas não reentrante para o mesmo ClientId ([SWS_Dem_00970]). A consulta iterativa via Dem_J1939DcmGetNextDTCwithLampStatus está especificada como totalmente não reentrante ([SWS_Dem_00975]).

Este texto foi gerado por uma IA e baseia-se nas especificações do release AUTOSAR R20-11.

Guia do implementador em breve (complexidade I1)

tipo Dem_J1939DcmDiagnosticReadiness1Type [SWS_Dem_00949] 📄 PDF

This structure represents all data elemets of the DM05 message. The encoding shall be done acording SAE J1939-73

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

A estrutura Dem_J1939DcmDiagnosticReadiness1Type mapeia todos os elementos de dados da mensagem de diagnóstico J1939 DM05 e está definida no arquivo de cabeçalho Dem.h de acordo com [SWS_Dem_00949]. A codificação dos campos ocorre conforme SAE J1939-73 [SWS_Dem_00949].

A estrutura engloba oito campos de dados do tipo uint8, que representam em conjunto um buffer de 8 bytes para a prontidão de diagnóstico 1 (Diagnostic Readiness 1) [SWS_Dem_00949], [SWS_Dem_00982]:

  • ActiveTroubleCodes: Número de DTCs ativos [SWS_Dem_00949].
  • PreviouslyActiveDiagnosticTroubleCodes: Número de DTCs previamente ativos [SWS_Dem_00949].
  • OBDCompliance: Conformidade com o OBD [SWS_Dem_00949].
  • ContinuouslyMonitoredSystemsSupport_Status: Suporte e status de sistemas monitorados continuamente [SWS_Dem_00949].
  • NonContinuouslyMonitoredSystemsSupport5 e NonContinuouslyMonitoredSystemsSupport6: Suporte de sistema para sistemas não monitorados continuamente (bytes 5 e 6) [SWS_Dem_00949].
  • NonContinuouslyMonitoredSystemsStatus7 e NonContinuouslyMonitoredSystemsStatus8: Status de sistemas não monitorados continuamente (bytes 7 e 8) [SWS_Dem_00949].

A interação primária ocorre com a API síncrona Dem_J1939DcmReadDiagnosticReadiness1 (disponível via Dem_J1939Dcm.h) [SWS_Dem_00982]. Os chamadores passam um ponteiro para uma instância de Dem_J1939DcmDiagnosticReadiness1Type através do parâmetro de saída DataValue juntamente com o respectivo ClientId para a memória de eventos J1939 [SWS_Dem_00982].

Em relação à concorrência e ao tratamento de erros, aplica-se no acesso de leitura: a função de consulta retorna E_OK em caso de cálculo e disponibilização bem-sucedidos dos valores de DM05 pelo DEM, e E_NOT_OK em caso de erro [SWS_Dem_00982]. O acesso é reentrante para diferentes valores de ClientId, mas não reentrante para o mesmo ClientId [SWS_Dem_00982]. Portanto, provavelmente é necessário proteger instâncias deste tipo contra chamadas simultâneas no contexto do mesmo cliente. Pergunta Q-7613ded1aa18fd2b (aberta)

Este texto foi gerado por uma IA. As evidências provêm exclusivamente das especificações do release R20-11.

tipo Dem_J1939DcmDiagnosticReadiness2Type [SWS_Dem_00950] 📄 PDF

This structure represents all data elemets of the DM21 message. The encoding shall be done acording SAE J1939-73

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

O tipo de estrutura Dem_J1939DcmDiagnosticReadiness2Type representa os elementos de dados da mensagem de diagnóstico DM21 (Diagnostic Readiness 2) conforme SAE J1939-73 e é declarado através do arquivo de cabeçalho Dem.h [SWS_Dem_00950]. A estrutura agrupa quatro contadores de 16 bits (uint16) em um buffer de 8 bytes [SWS_Dem_00950], [SWS_Dem_00983]:

  • DistanceTraveledWhileMILisActivated: Distância cumulativa percorrida em quilômetros com a luz indicadora de mau funcionamento (MIL) ativada [SWS_Dem_00950].
  • DistanceSinceDTCsCleared: Distância cumulativa percorrida desde a reinicialização dos códigos de falha de diagnóstico (DTCs) relacionados a emissões [SWS_Dem_00950].
  • MinutesRunbyEngineWhileMILisActivated: Tempo cumulativo de funcionamento do motor em minutos com a MIL ativa [SWS_Dem_00950].
  • TimeSinceDiagnosticTroubleCodesCleared: Tempo cumulativo de funcionamento do motor desde a limpeza dos DTCs relacionados a emissões [SWS_Dem_00950].

Este tipo é utilizado como buffer de saída DataValue do serviço síncrono Dem_J1939DcmReadDiagnosticReadiness2, definido em Dem_J1939Dcm.h [SWS_Dem_00983]. Ao ser chamada, a J1939-DCM passa um ClientId para o endereçamento da memória de eventos específica no DEM [SWS_Dem_00983]. A função determina as contagens atuais e confirma a disponibilização bem-sucedida com o valor de retorno E_OK, ou sinaliza erros com E_NOT_OK [SWS_Dem_00983].

Em relação à concorrência, o serviço de leitura é reentrante para diferentes valores de ClientId, mas não reentrante para valores idênticos de ClientId [SWS_Dem_00983].

Esta nota de uso foi gerada automaticamente por uma IA. Todas as afirmações baseiam-se exclusivamente no escopo de especificação fornecido do AUTOSAR R20-11.

tipo Dem_J1939DcmDiagnosticReadiness3Type [SWS_Dem_00951] 📄 PDF

This structure represents all data elemets of the DM26 message. The encoding shall be done acording SAE J1939-73

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

O tipo de estrutura Dem_J1939DcmDiagnosticReadiness3Type mapeia, de acordo com [SWS_Dem_00951], todos os elementos de dados da mensagem de diagnóstico DM26 (Diagnostic Readiness 3). A codificação dos campos incluídos segue obrigatoriamente a norma SAE J1939-73 [SWS_Dem_00951].

A estrutura compreende um buffer de dados de 8 bytes e é composta pelos seguintes campos individuais [SWS_Dem_00951]:

  • TimeSinceEngineStart (uint16): Tempo de funcionamento do motor desde a ligação da ignição.
  • NumberofWarmupsSinceDTCsCleared (uint8): Número de ciclos de aquecimento OBD desde a limpeza de todos os códigos de falha.
  • ContinuouslyMonitoredSystemsEnableCompletedStatus (uint8): Status de habilitação e conclusão de sistemas monitorados continuamente.
  • NonContinuouslyMonitoredSystemsEnableStatus5 e NonContinuouslyMonitoredSystemsEnableStatus6 (cada um uint8): Status de habilitação de monitores não contínuos no ciclo atual (bytes 5 e 6).
  • NonContinuouslyMonitoredSystems7 e NonContinuouslyMonitoredSystems8 (cada um uint8): Status de conclusão de monitores não contínuos no ciclo atual (bytes 7 e 8).

Uso e interação: uma instância deste tipo é passada como parâmetro de saída DataValue para a função síncrona Dem_J1939DcmReadDiagnosticReadiness3 [SWS_Dem_00770]. O DEM determina os valores de DM26 para o ClientId fornecido da memória de eventos J1939 e fornece como valor de retorno E_OK em caso de execução bem-sucedida ou E_NOT_OK em caso de erro [SWS_Dem_00770].

Concorrência e restrições: a chamada de função de leitura é reentrante para diferentes valores de ClientId, mas não deve ocorrer concorrentemente para o mesmo ClientId [SWS_Dem_00770]. O módulo J1939Dcm provavelmente atua como o chamador primário. Pergunta Q-e001ad1880fee789 (aberta) O tipo é declarado em Dem.h [SWS_Dem_00951], enquanto o serviço de leitura correspondente é disponibilizado através de Dem_J1939Dcm.h [SWS_Dem_00770].

Esta nota de uso baseia-se nas definições da especificação AUTOSAR para o Diagnostic Event Manager.

tipo Dem_DTCOriginType [SWS_Dem_00934] 📄 PDF

This enum is used to define the location of the events. The definition and use of the different memory types is OEM-specific.

tipo Dem_DebounceResetStatusType [SWS_Dem_00927] 📄 PDF

This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().

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

O tipo de dados Dem_DebounceResetStatusType controla o comportamento de contadores de debouncing e temporizadores de debouncing internos no Diagnostic Event Manager [SWS_Dem_00927]. Ele é definido como uint8, está disponível através do arquivo de cabeçalho Rte_Dem_Type.h e fornece dois estados de controle definidos [SWS_Dem_00927]:

  • DEM_DEBOUNCE_STATUS_FREEZE (0x00): Congela o contador de debouncing interno ou o temporizador de debouncing do evento endereçado [SWS_Dem_00927].
  • DEM_DEBOUNCE_STATUS_RESET (0x01): Reinicializa o contador de debouncing interno ou o temporizador de debouncing [SWS_Dem_00927].

Valores na faixa de 0x02 a 0xFF são reservados [SWS_Dem_00927]. O tipo é passado como parâmetro DebounceResetStatus para a função de serviço Dem_ResetEventDebounceStatus() [SWS_Dem_00683]. Essa chamada ocorre de forma síncrona e controla o status de debouncing interno sem influenciar diretamente a qualificação do respectivo evento [SWS_Dem_00683].

Em relação à concorrência, Dem_ResetEventDebounceStatus() é reentrante para diferentes valores de EventId, mas não deve ser chamada concorrentemente para o mesmo EventId [SWS_Dem_00683]. Módulos BSW podem utilizar a interface assim que a inicialização básica Dem_PreInit estiver concluída [SWS_Dem_00683]. Para componentes de software, a disponibilização provavelmente ocorre através de interfaces específicas de porta como DiagnosticMonitor, que permitem a modificação de informações de eventos [SWS_Dem_00598]. Pergunta Q-32468003718a4933 (aberta) Em caso de erro, a função chamadora retorna E_NOT_OK, o que, de acordo com a especificação, ocorre exclusivamente em erros de desenvolvimento [SWS_Dem_00683].

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

Guia do implementador em breve (complexidade I1)

tipo Dem_DTRControlType [SWS_Dem_00941] 📄 PDF

Control parameter for the interpretation of the reported test results.

tipo Dem_EventIdType [SWS_Dem_00925] 📄 PDF

Identification of an event by assigned EventId. The EventId is assigned by the Dem. Example: 1 refers to monitor x, 2 refers to monitor y, etc.

tipo Dem_EventStatusType [SWS_Dem_00926] 📄 PDF

This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().

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

O tipo de dados Dem_EventStatusType é derivado de uint8 e está disponível através do header Rte_Dem_Type.h ([SWS_Dem_00926]). Ele serve para Software-Components (SW-Cs) bem como módulos BSW reportarem os resultados de teste de um monitor de diagnóstico ao DEM ([SWS_Dem_00926], [SWS_Dem_00183]).

O tipo define os seguintes valores de resultado do monitor ([SWS_Dem_00926]):

  • DEM_EVENT_STATUS_PASSED (0x00) e DEM_EVENT_STATUS_FAILED (0x01): Transmissão de resultados de teste qualificados (aprovado ou reprovado).
  • DEM_EVENT_STATUS_PREPASSED (0x02) e DEM_EVENT_STATUS_PREFAILED (0x03): Resultados de teste preliminares e não qualificados do monitor, cujo debouncing ocorre internamente no DEM.
  • DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED (0x04): Aciona o salvamento de FreezeFrames e ExtendedDataRecords ao atingir o valor de limite de FDC (ON_FDC_THRESHOLD).
  • As faixas de valores de 0x05 a 0xFF são reservadas.

O tipo é utilizado como parâmetro de entrada EventStatus nas APIs BSW Dem_SetEventStatus() ([SWS_Dem_00183]) e Dem_SetEventStatusWithMonitorData() ([SWS_Dem_91037]), bem como através das interfaces DiagnosticMonitor ([SWS_Dem_00598]) e DiagnosticMonitor_MonitorData ([SWS_Dem_91038]). A chamada ocorre de forma síncrona ou assíncrona ([SWS_Dem_00183], [SWS_Dem_91037]).

As funções retornam Std_ReturnType (E_OK em caso de sucesso, E_NOT_OK em caso de erros ou rejeição), sendo permitido aos módulos BSW chamadores ignorar o valor de retorno de Dem_SetEventStatus() ([SWS_Dem_00183]). Em termos de concorrência, as chamadas para diferentes EventId são reentrantes, mas não são reentrantes para o mesmo EventId ([SWS_Dem_00183], [SWS_Dem_91037]). Além disso, a disponibilidade das APIs de destino depende da configuração do parâmetro DemEventReportingType ([SWS_Dem_00183], [SWS_Dem_91037]).

Este texto foi gerado por uma IA e serve como orientação. A especificação AUTOSAR é vinculativa.

Guia do implementador em breve (complexidade I1)

tipo Dem_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF

(Re-)Initialization reason returned by the callback _DemInitMonitorFor().

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

Utilização e gama de valores

O tipo de dados Dem_InitMonitorReasonType baseia-se em uint8 e está disponível através de Rte_Dem_Type.h [SWS_Dem_00942]. Ele caracteriza a causa concreta para uma (re)inicialização de um monitor de diagnóstico, para que este possa selecionar e executar a rotina de inicialização correspondente para o evento afetado [SWS_Dem_00942] [SWS_Dem_00256].

Para o tipo, estão definidos os seguintes valores [SWS_Dem_00942]:

  • DEM_INIT_MONITOR_CLEAR (0x01): O evento de diagnóstico foi apagado; todos os valores e estados internos são redefinidos.
  • DEM_INIT_MONITOR_RESTART (0x02): O ciclo de operação do evento foi reiniciado.
  • DEM_INIT_MONITOR_REENABLED (0x03): Condições de habilitação (Enable Conditions) ou configurações de DTC foram reativadas.
  • DEM_INIT_MONITOR_STORAGE_REENABLED (0x04): Uma condição de armazenamento (Storage Condition) foi reativada.

Contexto de chamada e interfaces

O valor é passado de forma síncrona e reentrante como parâmetro de entrada InitMonitorReason através do callback C específico do evento <Module>_DemInitMonitorFor<EventName>(), que está declarado em Dem_Externals.h [SWS_Dem_00256]. Se existir uma interface de porta para o componente de software, a passagem ocorre para a operação InitMonitorForEvent da interface de serviço CallbackInitMonitorForEvent [SWS_Dem_00613].

Tratamento de erros e valores de retorno

No callback C, o valor de retorno do tipo Std_ReturnType não é utilizado e serve apenas para compatibilidade com a operação correspondente da RTE [SWS_Dem_00256]. Se a interface for chamada através da RTE, a operação InitMonitorForEvent retorna os valores de erro E_OK (sucesso) ou E_NOT_OK (falha) [SWS_Dem_00613]. Códigos de erro próprios ou mensagens DET/DEM não estão definidos para este tipo de dados.

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

Guia do implementador em breve (complexidade I1)

tipo Dem_IumprDenomCondIdType [SWS_Dem_00943] 📄 PDF

This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.

tipo Dem_IumprDenomCondStatusType [SWS_Dem_00944] 📄 PDF

This type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.

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

usar

O tipo Dem_IumprDenomCondStatusType baseia-se em uint8 e define os possíveis estados de status de uma condição de denominador IUMPR adicional para distribuição entre unidades de controle eletrônico relevantes para OBD [SWS_Dem_00944]. O tipo está disponível através de Rte_Dem_Type.h e abrange os seguintes valores [SWS_Dem_00944]:

  • DEM_IUMPR_DEN_STATUS_NOT_REACHED (0x00): A condição (ainda) não foi satisfeita.
  • DEM_IUMPR_DEN_STATUS_REACHED (0x01): A condição foi satisfeita.
  • DEM_IUMPR_DEN_STATUS_INHIBITED (0x02): A condição está bloqueada e não pode ser alcançada.

Valores no intervalo de 0x03 a 0xFF são reservados [SWS_Dem_00944].

Interação e interfaces de serviço

No âmbito da interface de serviço IUMPRDenominatorCondition, o status é transmitido para condições como General Denominator, Cold start, EVAP ou 500mi [SWS_Dem_00733] [SWS_Dem_00742]. Existem duas funções de serviço centrais:

  • Dem_SetIUMPRDenCondition: Encaminha o status de forma síncrona ou assíncrona para o DEM de uma unidade de controle eletrônico por meio do parâmetro de entrada ConditionStatus [SWS_Dem_00733].
  • Dem_GetIUMPRDenCondition: Consulta o status de forma síncrona através do parâmetro de saída por ponteiro ConditionStatus a partir da unidade de controle eletrônico na qual as condições são calculadas [SWS_Dem_00734].

Tratamento de erros e simultaneidade

Ambas as funções estão especificadas como reentrantes [SWS_Dem_00733] [SWS_Dem_00734]. Em caso de execução bem-sucedida, as APIs retornam E_OK; se a definição ou a consulta falhar ou a condição não puder ser aceita, elas fornecem E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734].

Esta nota de uso foi gerada automaticamente por uma IA com base na especificação AUTOSAR CP R20-11.

Guia do implementador em breve (complexidade I1)

tipo Dem_IndicatorStatusType [SWS_Dem_00930] 📄 PDF

Indicator mode used by Dem_GetIndicatorStatus().

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

O tipo de dados Dem_IndicatorStatusType é baseado em uint8 e é fornecido através de Rte_Dem_Type.h [SWS_Dem_00930]. Ele mapeia os modos de operação de indicadores de aviso derivados do status UDS [SWS_Dem_00205]. O espectro de estados varia de DEM_INDICATOR_OFF (0x00) passando por DEM_INDICATOR_CONTINUOUS (0x01), DEM_INDICATOR_BLINKING (0x02), DEM_INDICATOR_BLINK_CONT (0x03), DEM_INDICATOR_SLOW_FLASH (0x04), DEM_INDICATOR_FAST_FLASH (0x05) e DEM_INDICATOR_ON_DEMAND (0x06) até DEM_INDICATOR_SHORT (0x07) [SWS_Dem_00930].

O tipo é empregado como parâmetro de saída na função C síncrona Dem_GetIndicatorStatus() [SWS_Dem_00205], bem como na operação GetIndicatorStatus da porta de serviço IndicatorStatus [SWS_Dem_00606]. Para cada indicador configurado, o componente de serviço DEM fornece uma porta própria, em que o respectivo IndicatorId atua como argumento definido pela porta [SWS_Dem_00606]. O componente de software consultante deve tipicamente utilizar o status determinado para acionar instrumentos de exibição ópticos ou acústicos. Pergunta Q-6bfabb33805bd0e8 (aberta)

Os chamadores devem observar que Dem_GetIndicatorStatus() é especificado como não reentrante (Non Reentrant) [SWS_Dem_00205]. Além disso, a API de consulta só está disponível se pelo menos um indicador estiver configurado sob DemIndicator na configuração [SWS_Dem_00205]. A operação relata o status de execução através do valor de retorno Std_ReturnType com E_OK em caso de avaliação bem-sucedida ou E_NOT_OK em caso de falha [SWS_Dem_00205][SWS_Dem_00606].

Este texto foi gerado por uma IA e serve como guia de orientação no ambiente AUTOSAR.

Guia do implementador em breve (complexidade I1)

tipo Dem_RatioIdType [SWS_Dem_00940] 📄 PDF

OBD specific ratio Id (related to a specific event, a FID, and an IUMPR group). This type depends on the Dem configuration.

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

Record
AUTOSAR/AP/record/CP_MOD_Dem
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Dem@rel:R20-11#dbeaf29d
Content hash
dbeaf29d
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticEventManager.pdf#nameddest=SWS_Dem_00177

Mapa de temas

Inicialização e estado

2

Vista de detalhes

Selecione uma entrada no índice.

Inicialização e estado

Returns the version information of this module. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemVersionInfoApi)} == true)

void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);
Dem_Init função

Initializes or reinitializes this module.

void Dem_Init (const Dem_ConfigType* ConfigPtr);

Serviços · Get…

Service to report the value of the B1 counter computed by the Dem. API is needed in WWH-OBD relevant ECUs only

Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);

Gets the failed status of a DemComponent.

Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);

Returns the qualification state of the dependent operation cycle. API Availability: This API will be available only if any of the ({ecuc(Dem/DemGeneral/Dem OperationCycle.DemLeadingCycleRef)} != NULL)

Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);

Service to get the value of PID $21 from the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemGeneral OBD.DemOBDCentralizedPID21Handling)} == true) && ({ecuc(Dem/DemGeneral.Dem OBDSupport)} == DEM_OBD_MASTER_ECU)

Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);

Gets the debouncing status of an event. This function shall not be used for EventId with native debouncing within their functions. It is rather for EventIds using debouncing within the Dem.

Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);

Gets the DTC by occurrence time. There is no explicit parameter for the DTC-origin as the origin always is DEM_DTC_ORIGIN_PRIMARY_MEMORY.

Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);

Gets the DTC of an event.

Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);

Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.

Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);

Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs, respecting the settings if the Dem shall clear only all DTCs.

Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);

Gets the DTC Severity availability mask.

Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);

Gets the DTC Status availability mask of the selected fault memory.

Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);

Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)

Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);

Get the Event's availability.

Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);

Gets the data of an extended data record by event.

Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);

Gets the data of a freeze frame by event.

Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);

Gets the event memory overflow indication status.

Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);

Gets the current UDS status byte assigned to the DTC for the event

Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);

Gets the fault detection counter of an event. This API can only be used through the RTE, and therefore no declaration is exported via Dem.h.

Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);

Gets the functional unit of the requested DTC.

Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);

Gets the indicator status derived from the UDS status. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEventMemory Set/DemIndicator)} != NULL)

Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to retrieve the condition status from the Dem of the ECU where the conditions are computed. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);

Gets the current monitor status for an event.

Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);

Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

Gets the next filtered DTC matching the filter criteria. For UDS services, the interface has an asynchronous behavior, because a large number of DTCs has to be processed.

Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);

Gets the next filtered DTC and its associated Fault Detection Counter (FDC) matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed and the FDC might be received asynchronously from a SW-C, too.

Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);

Gets the next filtered DTC and its associated Severity matching the filter criteria. The interface has an asynchronous behavior, because a large number of DTCs has to be processed.

Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);

Gets the next freeze frame record number and its associated DTC stored in the event memory. The interface has an asynchronous behavior, because NvRAM access might be required.

Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);

Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

Returns the number of entries currently stored in the requested event memory.

Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);

Gets the number of a filtered DTC.

Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);

This function returns the number of all freeze frame records currently stored in the primary event memory

Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);

Gets the severity of the requested DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments).

Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);

Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.

Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);

Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.

Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);

Gets the status of a DTC. For large configurations and DTC-calibration, the interface behavior can be asynchronous (splitting the DTC-search into segments). The DTCs of OBD Events Suppression shall be reported as Dem_WRONG_DTC.

Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);

Gets the supported DTC formats of the ECU.The supported formats are configured via Dem TypeOfDTCSupported.

Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);

Serviços · Set…

Set the availability of a specific DemComponent.

Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);

Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.

Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);

Service to set the value of PID $21 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);

Service to set the value of PID $31 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);

Service to set the value of PID $4D in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);

Service to set the value of PID $4E in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);

Sets the DTC Filter. The server shall perform a bit-wise logical AND-ing operation between the parameter DTCStatusMask and the current UDS status in the server. In addition to the DTCStatus AvailabilityMask, the server shall return all DTCs for which the result of the AND-ing operation is non-zero [i.e. (statusOfDTC & DTCStatusMask) != 0]. The server shall process only the DTC Status bits that it is supporting. OBD Events Suppression shall be ignored for this computation. If no DTCs within the server match the masking criteria specified in the clients request, no DTC or status information shall be provided following the DTCStatusAvailabilityMask byte in the positive response message (((statusOfDTC & DTCStatusMask) != 0) && ((severity & DTCSeverityMask) != 0)) == TRUE

Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);

Set the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppression Support)} == DEM_DTC_SUPPRESSION)

Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);
Dem_SetDTR função

Reports a DTR result with lower and upper limit. The internal eventstatus serves as master whether the DTR values are forwarded or ignored, also taking the DTRUpdateKind into account. The EventId that is related to the DTR is assigned per configuration (and derived from ServiceNeeds). Processing takes enable/storage conditions into account. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);

Sets an enable condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEnable Condition)} != NULL)

Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);

Set the available status of a specific Event.

Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);

Set the failure confirmation threshold of an event.

Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);

Service for reporting the event as disabled to the Dem for the PID $41 computation. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);

If called the Dem sets the event to failed and this failed event requires that a snapshot record is captured, the Dem synchronously retrieves the data within the call of this API. Tags: atp.Status=draft

void Dem_SetEventFailedWithSyncFreezeFrame (Dem_EventIdType EventId);

Called by SW-Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEventReportingType} == STANDARD_REPORTING)

Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);

This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING_WITH_MONITOR_DATA)

Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);

Sets a freeze frame record filter.

Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to forward the condition status to a Dem of a particular ECU. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);

API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);

Sets a storage condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemStorage Condition)} != NULL)

Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);

Sets the WIR status bit via failsafe SW-Cs. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);

Serviços · Dcm…

Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request. Derived from that the tester displays the supported tests a mechanic can select from. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);

Gets DTC by freeze frame record number. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);

Reports a DTR data along with TID-value, UaSID, test result with lower and upper limit. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetDTRData (uint8 Obdmid, uint8 TIDindex, uint8* TIDvalue, uint8* UaSID, uint16* Testvalue, uint16* Lowlimvalue, uint16* Upplimvalue);

Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);

Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);

Gets the number of TIDs per (functional) OBDMID. This can be used by the DCM to iteratively request for OBD/TID result data within a loop from 0....numberOfTIDs-1 API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);

Gets data element per PID and index of the most important freeze frame being selected for the output of service $02. The function stores the data in the provided DestBuffer. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);

Service to report the value of PID $1C computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);

Service to report the value of PID $21 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);

Service to report the value of PID $30 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);

Service to report the value of PID $31 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);

Service to report the value of PID $41 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);

Service to report the value of PID $4D computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);

Service to report the value of PID $4E computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);

Service to report the value of PID $91 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);

Serviços · J1939…

Clears the status of all event(s) related to the specified DTC(s), as well as all associated event memory entries for these event(s).

Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);

The function sets the filter to the first applicable DTC for the DM31 response for a specific node.

void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);

Gets the next filtered J1939 DTC for DM31 including current LampStatus.

Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered J1939 DTC.

Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered Ratio.

Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);

Gets next freeze frame data. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);

Gets next SPN.

Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);

Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.

Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);

Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);

The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.

Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);

The function sets the FreezeFrame filter for a specific node.

Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);

The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General Denominator.

Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);

Serviços · Select…

Dem_SelectDTC função

Selects a DTC or DTC group as target for further operations.

Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);

Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.

Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);

Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.

Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);

Serviços · Outros

Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of Dem_SetEventFailedWithSyncFreezeFrame with the same event ID can be processed by the Dem. Tags: atp.Status=draft

Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);
Dem_ClearDTC função

Clears single DTCs, as well as groups of DTCs.

Std_ReturnType Dem_ClearDTC (uint8 ClientId);

Clears a prestored freeze frame of a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);

Disables the event memory update of a specific DTC (only one at one time).

Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);

Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

Std_ReturnType Dem_DisableDTCSetting (uint8 ClientId);

Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before. Note: As the call to Dem_EnableDTCRecordUpdate is the last action in the sequence of disabling/enabling a DTC, the caller is not interested in the return value. Therefore E_OK should be returned even if the DTC is enabled asynchronously.

Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);

(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);
Dem_PreInit função

Initializes the internal states necessary to process events reported by BSW-modules.

void Dem_PreInit (void);

Captures the freeze frame data for a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD relevant ECUs only

Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);

Service is used to release a denominator of a specific monitor. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);

Service for reporting that faults are possibly found because all conditions are fullfilled. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);

Control the internal debounce counter/timer by BSW modules and SW-Cs. The event qualification will not be affected by these debounce state changes. This API is available for BSW modules as soon as Dem_PreInit has been completed (refer to SWS_Dem_00438 and SWS_Dem_00167).

Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);

Resets the event failed status. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);

Sets an operation cycle state. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. The interface has an asynchronous behavior to avoid exceeding of typical timing requirements on APIs if a large number of events has to be processed and during the re-initializations of the related monitors. The asynchronous acknowledgements are the related InitMonitorForEvent callbacks.

Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);
Dem_Shutdown função

Shuts down this module.

void Dem_Shutdown (void);

Cíclico

Processes all not event based Dem internal functions.

void Dem_MainFunction (void);

Tipos

Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.

This type of the external data structure shall contain the post build initialization data for the Dem.

Array data type definition for external data elements

Data type definition for external data elements

This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().

This type is used to select the format of the DTC value.

This type is used to filter DTCs for their kind.

This enum is used to define the location of the events. The definition and use of the different memory types is OEM-specific.

This type is used to request a DTC with specific attributes.

DTC translation format as defined in ISO14229-1.

Control parameter for the interpretation of the reported test results.

Identification of an event by assigned EventId. The EventId is assigned by the Dem. Example: 1 refers to monitor x, 2 refers to monitor y, etc.

This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().

Indicator mode used by Dem_GetIndicatorStatus().

(Re-)Initialization reason returned by the callback _DemInitMonitorFor().

This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.

This type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.

This structure represents all data elemets of the DM05 message. The encoding shall be done acording SAE J1939-73

This structure represents all data elemets of the DM21 message. The encoding shall be done acording SAE J1939-73

This structure represents all data elemets of the DM26 message. The encoding shall be done acording SAE J1939-73

The type to distinguish which DTCs should be filtered.

For details refer SAE J1939-73

The type to distinguish which DTCs gets cleared

The type to distinguish which DTCs gets cleared

This type is used to pass monitoring data to the Dem.

OBD specific ratio Id (related to a specific event, a FID, and an IUMPR group). This type depends on the Dem configuration.