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
void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.void Dem_PreInit (void);Initializes the internal states necessary to process events reported by BSW-modules.void Dem_Init (const Dem_ConfigType* ConfigPtr);Initializes or reinitializes this module.void Dem_Shutdown (void);Shuts down this module.Std_ReturnType Dem_ClearDTC (uint8 ClientId);Clears single DTCs, as well as groups of DTCs.Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);Clears a prestored freeze frame of a specific event.Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);Gets the failed status of a DemComponent.Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.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...Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);Gets the current UDS status byte assigned to the DTC for the eventStd_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);Gets the current monitor status for an event.Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);Gets the debouncing status of an event.Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);Gets the DTC of an event.Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);Returns the suppression status of a specific DTC.Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);Get the Event's availability.Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);Gets the fault detection counter of an event.Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);Gets the indicator status derived from the UDS status.Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);Gets the data of a freeze frame by event.Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);Gets the data of an extended data record by event.Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);Gets the event memory overflow indication status.Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);Returns the number of entries currently stored in the requested event memory.Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);Control the internal debounce counter/timer by BSW modules and SW-Cs.Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);Resets the event failed status.Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);Sets an operation cycle state.Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);Captures the freeze frame data for a specific event.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.Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);Set the availability of a specific DemComponent.Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);Set the suppression status of a specific DTC.Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);Sets an enable condition.Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);Set the available status of a specific Event.Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);Set the failure confirmation threshold of an event.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.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} ==...Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);Sets a storage condition.Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);Sets the WIR status bit via failsafe SW-Cs.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...Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);Gets the supported DTC formats of the ECU.Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);Gets the DTC Status availability mask of the selected fault memory.Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);Gets the status of a DTC.Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);Gets the severity of the requested DTC.Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);Gets the functional unit of the requested DTC.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.Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);Gets the number of a filtered DTC.Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);Gets the next filtered DTC matching the filter criteria.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.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.Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);Sets a freeze frame record filter.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.Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);Gets the DTC by occurrence time.Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);Disables the event memory update of a specific DTC (only one at one time).Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before.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.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.Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord.Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData.Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);This function returns the number of all freeze frame records currently stored in the primary event memoryStd_ReturnType Dem_DisableDTCSetting (uint8 ClientId);Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);Service is used for requesting IUMPR data according to InfoType $08.Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);Service is used for requesting IUMPR data according to InfoType $0B.Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);Service to report the value of PID $01 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);Service to report the value of PID $1C computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);Service to report the value of PID $21 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);Service to report the value of PID $30 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);Service to report the value of PID $31 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);Service to report the value of PID $41 computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);Service to report the value of PID $4D computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);Service to report the value of PID $4E computed by the Dem.Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);Service to report the value of PID $91 computed by the Dem.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.Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);Gets DTC by freeze frame record number.Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request.Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);Gets the number of TIDs per (functional) OBDMID.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.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.Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered J1939 DTC.void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);The function sets the filter to the first applicable DTC for the DM31 response for a specific node.Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);Gets the next filtered J1939 DTC for DM31 including current LampStatus.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...Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);The function sets the FreezeFrame filter for a specific node.Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);Gets next freeze frame data.Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);Gets next SPN.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...Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);Gets the next filtered Ratio.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);Service for reporting the event as disabled to the Dem for the PID $41 computation.Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);Service for reporting that faults are possibly found because all conditions are fullfilled.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...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...Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);Service is used to release a denominator of a specific monitor.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.Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);Service to report the value of PID $01 computed by the Dem.Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);Service to get the value of PID $21 from the Dem by a software component.Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);Service to set the value of PID $21 in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);Service to set the value of PID $31 in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);Service to set the value of PID $4D in the Dem by a software component.Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);Service to set the value of PID $4E in the Dem by a software component.Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);Returns the qualification state of the dependent operation cycle.Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);Gets the DTC Severity availability mask.Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);Service to report the value of the B1 counter computed by the Dem.Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);Reports a DTR result with lower and upper limit.Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of...void Dem_MainFunction (void);Processes all not event based Dem internal functions.
Typen — Übersicht
Dem_ComponentIdTypeIdentification of a DemComponent by assigned ComponentId.struct Dem_ConfigTypeThis type of the external data structure shall contain the post build initialization data for the Dem.Dem_DTCKindTypeThis type is used to filter DTCs for their kind.Dem_DTCRequestTypeThis type is used to request a DTC with specific attributes.Dem_DTCTranslationFormatTypeDTC translation format as defined in ISO14229-1.Dem_J1939DcmDTCStatusFilterTypeThe type to distinguish which DTCs should be filtered.Dem_J1939DcmSetClearFilterTypeThe type to distinguish which DTCs gets clearedDem_J1939DcmSetFreezeFrameFilterTypeThe type to distinguish which DTCs gets clearedenum Dem_J1939DcmLampStatusTypeFor details refer SAE J1939-73struct Dem_J1939DcmDiagnosticReadiness1TypeThis structure represents all data elemets of the DM05 message.struct Dem_J1939DcmDiagnosticReadiness2TypeThis structure represents all data elemets of the DM21 message.struct Dem_J1939DcmDiagnosticReadiness3TypeThis structure represents all data elemets of the DM26 message.Dem_DataTypeData type definition for external data elementsDem_DataPrimitiveTypeDem_DataArrayTypeArray data type definition for external data elementsenum Dem_DTCOriginTypeThis enum is used to define the location of the events.enum Dem_DebounceResetStatusTypeThis type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().Dem_DTRControlTypeControl parameter for the interpretation of the reported test results.Dem_EventIdTypeIdentification of an event by assigned EventId.enum Dem_EventStatusTypeThis type contains all monitor test result values, which can be reported via Dem_SetEventStatus().Dem_DTCFormatTypeThis type is used to select the format of the DTC value.enum Dem_InitMonitorReasonType(Re-)Initialization reason returned by the callback _DemInitMonitorFor().Dem_IumprDenomCondIdTypeThis type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.enum Dem_IumprDenomCondStatusTypeThis type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.Dem_MaxDataValueTypeDem_MonitorDataTypeThis type is used to pass monitoring data to the Dem.enum Dem_IndicatorStatusTypeIndicator mode used by Dem_GetIndicatorStatus().Dem_PID21valueTypeDem_PID31valueTypeDem_RatioIdTypeOBD specific ratio Id (related to a specific event, a FID, and an IUMPR group).Dem_PID4DvalueTypeDem_PID4EvalueType
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.
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_SetEventStatuspara o debounce com os estadosDEM_EVENT_STATUS_PREPASSEDeDEM_EVENT_STATUS_PREFAILED([SWS_Dem_01212]). Contudo, quaisquer eventos reportados antes deDem_Initnão desencadeiam callbacks para a alteração de estado do monitor ([SWS_Dem_01289]). - Controlar estado de debounce: A função
Dem_ResetEventDebounceStatuspara repor ou congelar contadores de debounce fica disponível para os módulos BSW após a conclusão deDem_PreInit([SWS_Dem_00180], [SWS_Dem_00683]). - Limiares de confirmação e ciclos de operação: O DEM suporta, após
Dem_PreInit, chamadas deDem_SetEventConfirmationThresholdCounter([SWS_Dem_01242]). Uma chamada deDem_RestartOperationCycletambém só é permitida a partir desse momento; se um ciclo de operação for reiniciado antes deDem_Init, o processamento efetivo do reinício só ocorre apósDem_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.
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_GetMonitorStatusantes da conclusão da inicialização fornecemE_NOT_OK([SWS_Dem_01326]),Dem_GetMonitorStatuseDem_GetComponentFailedretornamE_OKapó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 emDem_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 comoNvM_ReadBlock([SWS_Dem_00164]). Por meio da chamada deDem_Init, o bloqueio da memória de eventos após umDem_Shutdownprévio também é cancelado ([SWS_Dem_00102]). - Interação e bufferização: se
DemTriggerFiMReportsestiver definido comoTrue,Dem_Initchama exclusivamente neste momentoFiM_DemInitpara inicializar as permissões no Function Inhibition Manager ([SWS_Dem_01189]). Eventos que foram bufferizados antes deDem_Init([SWS_Dem_00167], [SWS_Dem_01079]) não disparam callbacks de mudança de estado de monitor antes deDem_Init([SWS_Dem_01289]). Um reinício de ciclo solicitado antes deDem_InitviaDem_RestartOperationCyclesó é processado apósDem_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.
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– excetoDem_SetEventStatus,Dem_ResetEventDebounceStatus,Dem_GetVersionInfoeDem_MainFunction–, o módulo define o código de erroDEM_E_UNINITaté o próximoDem_Init([SWS_Dem_00368]). - Se
Dem_SetEventStatusouDem_ResetEventDebounceStatusforem chamados apósDem_Shutdownpara eventos nos quaisDemDebounceCounterStorageestá definido comoTrue, o DEM reporta o código de erroDEM_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.
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çãoDemClearDTCLimitationforçaDEM_ONLY_CLEAR_ALL_DTCS[SWS_Dem_00670].DEM_WRONG_DTCORIGIN: O local de memória selecionado não existe [SWS_Dem_00665].DEM_CLEAR_FAILEDouDEM_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)
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_GetComponentFailed [SWS_Dem_01115] 📄 PDF
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Gets the failed status of a DemComponent.
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_GetEventUdsStatus [SWS_Dem_91008] 📄 PDF
Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);
Gets the current UDS status byte assigned to the DTC for the event
função Dem_GetMonitorStatus [SWS_Dem_91007] 📄 PDF
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);
Gets the current monitor status for an event.
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_GetDTCOfEvent [SWS_Dem_00198] 📄 PDF
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);
Gets the DTC of an event.
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_GetEventAvailable [SWS_Dem_91040] 📄 PDF
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);
Get the Event's availability.
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_GetEventFreezeFrameDataEx [SWS_Dem_01191] 📄 PDF
Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);
Gets the data of a freeze frame by event.
função Dem_GetEventExtendedDataRecordEx [SWS_Dem_01190] 📄 PDF
Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);
Gets the data of an extended data record by event.
função Dem_GetEventMemoryOverflow [SWS_Dem_00559] 📄 PDF
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);
Gets the event memory overflow indication status.
função Dem_GetNumberOfEventMemoryEntries [SWS_Dem_00652] 📄 PDF
Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);
Returns the number of entries currently stored in the requested event memory.
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).
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 (
DemDebounceCounterStorageem True) antes deDem_Initou apósDem_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.
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.
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)
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 porDemMaxNumberPrestoredFF) [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.
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 deDem_SelectDTCou 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_SetComponentAvailable [SWS_Dem_01117] 📄 PDF
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);
Set the availability of a specific DemComponent.
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_SetEventAvailable [SWS_Dem_01080] 📄 PDF
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);
Set the available status of a specific Event.
função Dem_SetEventConfirmationThresholdCounter [SWS_Dem_91004] 📄 PDF
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);
Set the failure confirmation threshold of an event.
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)
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 queDemTriggerFiMReportsesteja 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_REPORTINGestiver configurada [SWS_Dem_00805], [SWS_Dem_01082]. - Chamadas em cascata para slave events configurados com a configuração
DemMultiEventTriggeringativa [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)
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.hapenas seDemEventReportingTypeestiver configurado comoSTANDARD_REPORTING_WITH_MONITOR_DATA[SWS_Dem_91037]. - Execução e reentrância: A execução é síncrona/assíncrona. A função é reentrante para
EventIddistintos, mas não reentrante para o mesmoEventId[SWS_Dem_91037]. - Valores de retorno: Ela retorna
E_OKem caso de definição bem-sucedida do status de evento eE_NOT_OKse 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.
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 = TRUEfor 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_SetWIRStatustambé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_GetTranslationType [SWS_Dem_00230] 📄 PDF
Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);
Gets the supported DTC formats of the ECU.The supported formats are configured via Dem TypeOfDTCSupported.
função Dem_GetDTCStatusAvailabilityMask [SWS_Dem_00213] 📄 PDF
Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);
Gets the DTC Status availability mask of the selected fault memory.
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_GetFunctionalUnitOfDTC [SWS_Dem_00594] 📄 PDF
Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);
Gets the functional unit of the requested DTC.
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_GetNumberOfFilteredDTC [SWS_Dem_00214] 📄 PDF
Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);
Gets the number of a filtered DTC.
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_SetFreezeFrameRecordFilter [SWS_Dem_00209] 📄 PDF
Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);
Sets a freeze frame record filter.
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_GetDTCByOccurrenceTime [SWS_Dem_00218] 📄 PDF
Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);
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.
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).
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 deDem_SelectDTCem 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.
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.
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,
ExtendedDataNumberaceita os valores0xFE(tamanho total de todos os registros OBD), bem como0xFF(tamanho total de todos os registros) [SWS_Dem_91017]. Para evitar inconsistências de dados durante a leitura, o registro pode ser protegido previamente comDem_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 deDem_SelectDTCnã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 comDEM_WRONG_DTC[SWS_Dem_91017] [SWS_Dem_01349]. Se o local de memória não existir, é reportadoDEM_WRONG_DTCORIGIN[SWS_Dem_91017]. - Concorrência: Se a seleção ainda estiver em processamento,
DEM_PENDINGsinaliza uma necessidade de nova chamada [SWS_Dem_91017]. O statusDEM_BUSYindica que outra operação dependente de DTC ainda está ativa para estaClientId[SWS_Dem_91017]. A função é reentrante para diferentes valores deClientId, 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.
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.
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.
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
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
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 estadoDCM_INITIALna 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)
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)
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 parauint8), 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 umPIDBufferadequado [SWS_Dem_00325]. -
Valor de retorno: O serviço retorna sempre o valor de status
E_OK. Um caso de erro comE_NOT_OKnunca 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)
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 comoE_NOT_OKnunca ocorre segundo a especificação [SWS_Dem_00319]. - Estado inicial / tratamento de erro: se
Dem_DcmReadDataOfPID21for chamada antes de os valores terem sido definidos viaDem_SetDataOfPID21, o DEM retorna o valor de substituição0xFFFFcomo 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)
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_OKcomoStd_ReturnType[SWS_Dem_00320]. O valor de erroE_NOT_OKnunca 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)
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 umPIDBuffer[SWS_Dem_00321]. - Valor de retorno: o serviço retorna sempre
E_OKcomoStd_ReturnType; o valor de erroE_NOT_OKnunca 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)
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*):
PID41valuerecebe 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)
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)
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)
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)
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)
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 valor0x00designa 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)
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)
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)
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_DcmGetDTRDatafalha [SWS_Dem_01108]. - Se a função for chamada para um DTR cujo evento referenciado através de
DemDtrEventRefestiver configurado comDemEventAvailable == FALSE, o DEM retorna obrigatoriamenteE_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.
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.
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_ELEMENTbem comoDEM_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.
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.
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.
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âmetrosLampStatus,J1939DTCeOccurenceCountercontêm valores válidos ([SWS_Dem_00882]). Interpretação: A condiçãoDEM_FILTERED_OKmencionada na especificação do parâmetro provavelmente refere-se aE_OK, já queDEM_FILTERED_OKnã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).
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_FAILEDouDEM_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.
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ãoDEM_J1939DCM_FREEZEFRAME(filtragem dos dados emDemJ1939FreezeFrameClassRef),DEM_J1939DCM_EXPANDED_FREEZEFRAME(filtragem dos dados emDemJ1939ExpandedFreezeFrameClassRef), bem comoDEM_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_OKem caso de execução bem-sucedida ouE_NOT_OKse 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.
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 aDEM_FILTERED_OKna descrição do parâmetro provavelmente deve ser entendida como um sinônimo editorial paraE_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_SMALLouDEM_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.
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.
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.
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 casoSPN,NumeratoreDenominatorcontêm dados válidos (a menção deDEM_FILTERED_OKna descrição dos parâmetros deve representar uma interpretação paraE_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.
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 paraDem_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.
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 tipoDem_J1939DcmDiagnosticReadiness2Typepara 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.
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 tipoDem_J1939DcmDiagnosticReadiness3Typepara 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)
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)
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
DemOBDSupportestiver configurado como diferente deDEM_OBD_NO_OBD_SUPPORT[SWS_Dem_00315]. Além disso, a interface para liberação é disponibilizada sob condições especiais casoDemIUMPRDenGroupesteja configurado comoDEM_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 retornaE_OKquando 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 forneceE_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)
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(tipoboolean) passa o status da tomada de força, ondeTRUErepresenta ativo eFALSEinativo ([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 forneceE_OKquando o novo status da PTO foi aceito pelo DEM, eE_NOT_OKem 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
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_GetB1Counter [SWS_Dem_01169] 📄 PDF
Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);
Service to report the value of the B1 counter computed by the Dem. API is needed in WWH-OBD relevant ECUs only
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
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 retornoE_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.
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
DemEnvironmentDataCaptureestiver configurado comoDEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING(referente aDemPrimaryMemoryouDemUserDefinedMemory), 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 deDem_MainFunction. - Se
DemEnvironmentDataCaptureestiver definido comoDEM_CAPTURE_SYNCHRONOUS_TO_REPORTING, o módulo DEM enfileira os dados de ambiente até a próxima chamada deDem_MainFunction([SWS_Dem_01083]). O módulo armazena em buffer, no mínimo, a quantidade configurada de acordo comDemMaxNumberEventEntryEventBuffer; caso a fila esteja cheia, os dados são adquiridos durante o processamento do evento dentro deDem_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_DTCKindType [SWS_Dem_00932] 📄 PDF
This type is used to filter DTCs for their kind.
tipo Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF
This type is used to request a DTC with specific attributes.
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_DTCTranslationFormatType [SWS_Dem_00936] 📄 PDF
DTC translation format as defined in ISO14229-1.
tipo Dem_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF
The type to distinguish which DTCs should be filtered.
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_J1939DcmSetClearFilterType [SWS_Dem_00946] 📄 PDF
The type to distinguish which DTCs gets cleared
tipo Dem_J1939DcmSetFreezeFrameFilterType [SWS_Dem_00947] 📄 PDF
The type to distinguish which DTCs gets cleared
tipo Dem_J1939DcmLampStatusType [SWS_Dem_00948] 📄 PDF
For details refer SAE J1939-73
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 viaClientId), é 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
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].NonContinuouslyMonitoredSystemsSupport5eNonContinuouslyMonitoredSystemsSupport6: Suporte de sistema para sistemas não monitorados continuamente (bytes 5 e 6) [SWS_Dem_00949].NonContinuouslyMonitoredSystemsStatus7eNonContinuouslyMonitoredSystemsStatus8: 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
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
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.NonContinuouslyMonitoredSystemsEnableStatus5eNonContinuouslyMonitoredSystemsEnableStatus6(cada umuint8): Status de habilitação de monitores não contínuos no ciclo atual (bytes 5 e 6).NonContinuouslyMonitoredSystems7eNonContinuouslyMonitoredSystems8(cada umuint8): 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_DataType [SWS_Dem_91026] 📄 PDF
Data type definition for external data elements
tipo Dem_DataPrimitiveType [SWS_Dem_91033] 📄 PDF
tipo Dem_DataArrayType [SWS_Dem_91034] 📄 PDF
Array data type definition for external data elements
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().
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().
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) eDEM_EVENT_STATUS_FAILED(0x01): Transmissão de resultados de teste qualificados (aprovado ou reprovado).DEM_EVENT_STATUS_PREPASSED(0x02) eDEM_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_DTCFormatType [SWS_Dem_00933] 📄 PDF
This type is used to select the format of the DTC value.
tipo Dem_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF
(Re-)Initialization reason returned by the callback
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.
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 entradaConditionStatus[SWS_Dem_00733].Dem_GetIUMPRDenCondition: Consulta o status de forma síncrona através do parâmetro de saída por ponteiroConditionStatusa 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_MaxDataValueType [SWS_Dem_01072] 📄 PDF
tipo Dem_MonitorDataType [SWS_Dem_91036] 📄 PDF
This type is used to pass monitoring data to the Dem.
tipo Dem_IndicatorStatusType [SWS_Dem_00930] 📄 PDF
Indicator mode used by Dem_GetIndicatorStatus().
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_PID21valueType [SWS_Dem_01073] 📄 PDF
tipo Dem_PID31valueType [SWS_Dem_01074] 📄 PDF
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.
tipo Dem_PID4DvalueType [SWS_Dem_91028] 📄 PDF
tipo Dem_PID4EvalueType [SWS_Dem_91029] 📄 PDF
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
gemini-3.8-flash-low· 2026-10-13 · Original em alemão