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
función 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)
función Dem_PreInit [SWS_Dem_00179] 📄 PDF
void Dem_PreInit (void);
Initializes the internal states necessary to process events reported by BSW-modules.
La función Dem_PreInit sirve durante el arranque del sistema para la preinicialización de los estados internos del módulo DEM que se requieren para el procesamiento temprano de notificaciones de eventos procedentes de módulos BSW ([SWS_Dem_00179], [SWS_Dem_00180]). La llamada se realiza de forma síncrona, no es reentrante y no posee parámetros de entrada ni valor de retorno ([SWS_Dem_00179]).
Con la llamada a Dem_PreInit se inicializan los mecanismos internos de eliminación de rebotes (debouncing), incluidos contadores y temporizadores ([SWS_Dem_01213]). Si se ha configurado un debouncing interno del DEM, el módulo restablece el algoritmo de debouncing correspondiente ([SWS_Dem_00438]).
Tras la finalización correcta de Dem_PreInit y antes de la llamada a Dem_Init, quedan habilitadas interfaces y comportamientos seleccionados:
- Estado del evento y debouncing: se admiten llamadas a
Dem_SetEventStatuspara el debouncing con los estadosDEM_EVENT_STATUS_PREPASSEDyDEM_EVENT_STATUS_PREFAILED([SWS_Dem_01212]). Sin embargo, todos los eventos notificados antes deDem_Initno activan callbacks para el cambio de estado del monitor ([SWS_Dem_01289]). - Controlar el estado de debouncing: la función
Dem_ResetEventDebounceStatuspara restablecer o congelar contadores de debouncing está a disposición de los módulos BSW tras finalizarDem_PreInit([SWS_Dem_00180], [SWS_Dem_00683]). - Umbrales de confirmación y ciclos de operación: tras
Dem_PreInit, el DEM admite llamadas aDem_SetEventConfirmationThresholdCounter([SWS_Dem_01242]). Asimismo, una llamada aDem_RestartOperationCyclesolo es admisible a partir de ese momento; si se reinicia un ciclo de operación antes deDem_Init, el procesamiento propiamente dicho del reinicio no se realiza hasta después deDem_Init([SWS_Dem_01318]).
Este texto fue generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I2)
función Dem_Init [SWS_Dem_00181] 📄 PDF
void Dem_Init (const Dem_ConfigType* ConfigPtr);
Initializes or reinitializes this module.
La función síncrona y no reentrante Dem_Init inicializa o reinicializa por completo el módulo Diagnostic Event Manager (DEM) de conformidad con [SWS_Dem_00181]. Tras completarse esta llamada, el DEM está totalmente operativo ([SWS_Dem_00340]). A través del parámetro de entrada ConfigPtr, en VARIANT-POST-BUILD se transfiere un puntero al conjunto de datos de configuración post-build ([SWS_Dem_00181]).
En el marco del flujo de inicialización, Dem_Init lleva a cabo pasos esenciales de restauración y sincronización:
- Inicialización de estados y monitores: se inicializan los estados de monitores y componentes ([SWS_Dem_01324]). Mientras que las llamadas a
Dem_GetMonitorStatusdevuelvenE_NOT_OKantes de completarse la inicialización ([SWS_Dem_01326]),Dem_GetMonitorStatusyDem_GetComponentFaileddevuelvenE_OKdespués de ese momento ([SWS_Dem_01324]). - Memoria no volátil (NVM): siempre que esté configurado (
DemDebounceCounterStorage == True), el DEM restaura el contador de antirrebote interno a más tardar enDem_Init([SWS_Dem_00675]). Asimismo, se cargan los datos de freeze frame preconfigurados desde la NVM antes del retorno de la función ([SWS_Dem_01322]), para lo cual el DEM recurre a API de NvM comoNvM_ReadBlock([SWS_Dem_00164]). Mediante la llamada aDem_Init, además, se cancela el bloqueo de la memoria de eventos tras unDem_Shutdownprevio ([SWS_Dem_00102]). - Interacción y almacenamiento en búfer: si
DemTriggerFiMReportsestá configurado aTrue,Dem_Initinvoca exclusivamente en este momentoFiM_DemInitpara inicializar las autorizaciones en el Function Inhibition Manager ([SWS_Dem_01189]). Los eventos almacenados en búfer antes deDem_Init([SWS_Dem_00167], [SWS_Dem_01079]) no disparan callbacks de cambio de estado de monitor antes deDem_Init([SWS_Dem_01289]). Un reinicio de ciclo solicitado antes deDem_Inita través deDem_RestartOperationCycleno se procesa hasta después deDem_Init([SWS_Dem_01318]).
En relación con el tratamiento de errores, rige lo siguiente: si se ha llamado a Dem_Shutdown, el DEM confirma, con la detección de desarrollo activa, las llamadas a la mayoría de las API con el error DEM_E_UNINIT hasta que Dem_Init se ejecute de nuevo ([SWS_Dem_00368]).
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función Dem_Shutdown [SWS_Dem_00182] 📄 PDF
void Dem_Shutdown (void);
Shuts down this module.
La función síncrona y no reentrante Dem_Shutdown sirve para el apagado ordenado del módulo Diagnostic Event Manager ([SWS_Dem_00182]). No posee parámetros de entrada ni de retorno ([SWS_Dem_00182]). Es de suponer que el contexto de invocación se sitúe presumiblemente en el marco de la secuencia central de desconexión de la unidad de control. Pregunta Q-a0e6a5700c49d786 (abierta)
Durante la llamada, Dem_Shutdown finaliza todas las operaciones aún pendientes del módulo DEM para preparar los estados internos y los datos para la transferencia a la NVRAM ([SWS_Dem_00102]). Para los datos no volátiles modificados, el DEM inicia el almacenamiento en la NVRAM antes de o durante Dem_Shutdown ([SWS_Dem_00341]). En la medida en que sea necesario, el módulo utiliza las interfaces NvM_WriteBlock y NvM_ReadBlock del NVRAM Manager para guardar y restaurar datos entre Dem_Init y Dem_Shutdown ([SWS_Dem_00164]). Si el DEM se configuró de modo que los datos de freeze frame previamente guardados se almacenen de forma no volátil, este almacenamiento se realiza una sola vez y a más tardar durante Dem_Shutdown ([SWS_Dem_01321]).
Con la ejecución del shutdown, la memoria de eventos se bloquea y ya no debe modificarse hasta una nueva llamada de Dem_Init ([SWS_Dem_00102]). Además, rigen las siguientes condiciones de error con la detección de errores de desarrollo (Development Error Detection) activada:
- Si después de
Dem_Shutdownse invoca una API del DEM —a excepción deDem_SetEventStatus,Dem_ResetEventDebounceStatus,Dem_GetVersionInfoyDem_MainFunction—, el módulo establece el código de errorDEM_E_UNINIThasta el siguienteDem_Init([SWS_Dem_00368]). - Si después de
Dem_Shutdownse invocanDem_SetEventStatusoDem_ResetEventDebounceStatuspara eventos en los queDemDebounceCounterStorageestá ajustado aTrue, el DEM notifica el código de errorDEM_E_WRONG_CONDITION([SWS_Dem_00676]).
Este texto ha sido generado por una IA y sirve como guía orientativa. Vinculantes son las disposiciones de la respectiva especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función Dem_ClearDTC [SWS_Dem_00665] 📄 PDF
Std_ReturnType Dem_ClearDTC (uint8 ClientId);
Clears single DTCs, as well as groups of DTCs.
La función asíncrona Dem_ClearDTC sirve para el borrado de códigos de diagnóstico de fallos (DTCs) individuales o grupos de DTC completos en el Diagnostic Event Manager [SWS_Dem_00665]. Antes de la invocación, debe haberse fijado la selección objetivo compuesta por DTC, formato y ubicación de memoria mediante Dem_SelectDTC para el ClientId correspondiente [SWS_Dem_01253]. La función es reentrante para distintos valores de ClientId, pero no es reentrante para el mismo cliente [SWS_Dem_00665].
El proceso de borrado se confirma con E_OK tan pronto como haya concluido con éxito [SWS_Dem_00665]. Mientras la depuración esté en curso, la API devuelve DEM_PENDING, por lo que el llamador debe invocar la función de nuevo en un momento posterior [SWS_Dem_00665]. Si para el mismo cliente está activa en paralelo otra operación que dependa de Dem_SelectDTC, se notifica DEM_BUSY [SWS_Dem_00665]. El DEM procesa internamente múltiples solicitudes paralelas de clientes [SWS_Dem_00661], pudiendo recibir las llamadas concurrentes durante un proceso de borrado en curso DEM_PENDING [SWS_Dem_00664] o DEM_CLEAR_BUSY [SWS_Dem_00665].
La API confirma las llamadas erróneas con valores de retorno específicos:
E_NOT_OK: Previamente no se seleccionó ningún DTC [SWS_Dem_00665].DEM_WRONG_DTC: El DTC no existe [SWS_Dem_00665], está suprimido [SWS_Dem_01100] o la configuraciónDemClearDTCLimitationfuerzaDEM_ONLY_CLEAR_ALL_DTCS[SWS_Dem_00670].DEM_WRONG_DTCORIGIN: La ubicación de memoria seleccionada no existe [SWS_Dem_00665].DEM_CLEAR_FAILEDoDEM_CLEAR_MEMORY_ERROR: El borrado falló o se produjo un error al borrar en la memoria persistente [SWS_Dem_00665].
En el marco del borrado, en caso de DTC combinados se depuran todos los eventos vinculados [SWS_Dem_00440] y se inicia la inicialización de sus monitores vía InitMonitorForEvent con DEM_INIT_MONITOR_CLEAR [SWS_Dem_00680]. Si DemTriggerMonitorInitBeforeClearOk está configurado, el retorno de E_OK se produce solo tras este disparador [SWS_Dem_00573]. Si se borran todos los DTC de una memoria de eventos, el DEM restablece su indicador de desbordamiento [SWS_Dem_00399]; además, en el servicio OBD $04 se restablecen los datos DTR no asignados [SWS_Dem_00764] y se depuran los eventos no vinculados a memoria [SWS_Dem_01249].
Este texto ha sido generado por una IA y sirve para la orientación técnica.
Guía del implementador pendiente (complejidad I2)
función 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)
Uso y contexto de llamada
La función síncrona Dem_ClearPrestoredFreezeFrame borra un freeze frame previamente almacenado de forma provisional para un evento de diagnóstico específico ([SWS_Dem_00193]). La invocación se realiza exclusivamente a través de la RTE; no se proporciona una declaración en el archivo de cabecera Dem.h ([SWS_Dem_00193]). La API solo está implementada en el sistema si se ha configurado al menos un evento para el prealmacenamiento (parámetro de configuración DemFFPrestorageSupported) ([SWS_Dem_00193], [SWS_Dem_00334]). La función devuelve E_OK en caso de borrado correcto y E_NOT_OK si la operación falla ([SWS_Dem_00193]).
Concurrencia y restricciones
La interfaz es reentrante para distintos IDs de evento (EventId), pero no debe ejecutarse de forma concurrente para el mismo EventId ([SWS_Dem_00193]). No se admite una llamada con eventos configurados como eventos subordinados (DemMultiEventTriggeringSlaveEventRef) o como eventos de sustitución (DemStorageConditionReplacementEventRef); en este caso, el comportamiento del DEM es indefinido ([SWS_Dem_01339]). Si un evento se define como no disponible, se trata como un evento no configurado ([SWS_Dem_01108]); interpretación: es de prever que en este caso la llamada sea rechazada con E_NOT_OK. Pregunta Q-d8ebaf6883138fdf (abierta)
Interacción en Multi-Event-Triggering
Siempre que DemMultiEventTriggering esté configurado y la función se invoque para un evento maestro (DemMultiEventTriggeringMasterEventRef), el DEM dispara automáticamente la llamada de borrado con parámetros idénticos para todos los eventos subordinados asignados (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).
Esta nota de uso ha sido generada por una IA a partir de la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I1)
función Dem_GetComponentFailed [SWS_Dem_01115] 📄 PDF
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Gets the failed status of a DemComponent.
función 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.
función 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.
función 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
función Dem_GetMonitorStatus [SWS_Dem_91007] 📄 PDF
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);
Gets the current monitor status for an event.
función 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.
función Dem_GetDTCOfEvent [SWS_Dem_00198] 📄 PDF
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);
Gets the DTC of an event.
función 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)
función Dem_GetEventAvailable [SWS_Dem_91040] 📄 PDF
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);
Get the Event's availability.
función 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.
función 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)
función 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.
función 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.
función Dem_GetEventMemoryOverflow [SWS_Dem_00559] 📄 PDF
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);
Gets the event memory overflow indication status.
función 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.
función 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).
La función síncrona Dem_ResetEventDebounceStatus sirve a los módulos BSW y a los componentes de software (SW-Cs) para congelar o restablecer de forma selectiva el contador o temporizador interno de eliminación de rebote de un evento de diagnóstico, sin influir en la cualificación del evento [SWS_Dem_00683].
Uso y parámetros
A través del parámetro DebounceResetStatus se controla la acción deseada: el valor DEM_DEBOUNCE_STATUS_FREEZE congela el temporizador interno de eliminación de rebote [SWS_Dem_00685], mientras que DEM_DEBOUNCE_STATUS_RESET restablece el contador de detección de fallos asociado (Fault Detection Counter) [SWS_Dem_00684] [SWS_Dem_00927]. La función devuelve E_OK en caso de ejecución correcta y E_NOT_OK exclusivamente en caso de un error de desarrollo [SWS_Dem_00683].
Tratamiento de errores y ciclo de vida
La API ya está disponible para los módulos BSW tras la finalización de Dem_PreInit y, por consiguiente, queda excluida de la comprobación general de inicialización previa a la inicialización completa [SWS_Dem_00124] [SWS_Dem_00683]. Con la detección de desarrollo activada se aplican las siguientes condiciones:
- Si la función se invoca antes de la preinicialización, el DEM notifica el error
DEM_E_UNINIT[SWS_Dem_00364]. - Si la llamada para eventos con contador de eliminación de rebote persistente (
DemDebounceCounterStorageen True) se produce antes deDem_Inito después deDem_Shutdown, se estableceDEM_E_WRONG_CONDITION[SWS_Dem_00676]. - Si un evento está marcado como no disponible, se trata como un evento no configurado [SWS_Dem_01108].
Concurrencia y restricciones
Dem_ResetEventDebounceStatus es reentrante para diferentes valores de EventId, pero no es reentrante para el mismo evento [SWS_Dem_00683]. Con DemMultiEventTriggering configurado, una llamada con un evento maestro desencadena llamadas idénticas para todos los eventos subordinados asignados [SWS_Dem_01250]. No se admiten llamadas directas para eventos subordinados puramente internos o eventos referenciados mediante DemStorageConditionReplacementEventRef, y provocan un comportamiento indefinido [SWS_Dem_01339].
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Dem_ResetEventStatus sirve para restablecer el estado de error de un evento de diagnóstico y está disponible exclusivamente a través de la RTE [SWS_Dem_00185]. La llamada se realiza con el EventId y posee una semántica asíncrona: ante la aceptación correcta de la solicitud, la función devuelve E_OK [SWS_Dem_00185]. Acto seguido, el módulo DEM restablece de forma diferida en el tiempo el bit de estado 0 (TestFailed) a 0 y, mediando la configuración correspondiente, restablece el algoritmo interno de antirrebote a sus valores iniciales [SWS_Dem_00187].
La solicitud falla con el valor de retorno E_NOT_OK si el evento ya se ha probado en el ciclo de funcionamiento actual (el bit 6 de estado UDS es 0) [SWS_Dem_00185], [SWS_Dem_00638], o si el evento está configurado o establecido como no disponible [SWS_Dem_01108]. Una llamada antes de la inicialización completa del DEM no da lugar a la notificación del error DEM_E_UNINIT incluso con la detección de errores de desarrollo (DemDevErrorDetect) activada [SWS_Dem_00124].
En lo que respecta a la concurrencia, Dem_ResetEventStatus es reentrante para distintos valores de EventId, mientras que para el mismo EventId no es reentrante [SWS_Dem_00185]. Si DemMultiEventTriggering está configurado y la función se invoca con un evento maestro, el DEM dispara automáticamente la misma llamada para todos los eventos subordinados vinculados [SWS_Dem_01250]. Las llamadas directas con un EventId configurado como evento subordinado o como DemStorageConditionReplacementEventRef no son compatibles y dan lugar a un comportamiento indefinido [SWS_Dem_01339].
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Dem_RestartOperationCycle sirve para reiniciar un ciclo de operación ([SWS_Dem_00194]). La llamada se realiza exclusivamente a través de la RTE, razón por la cual no se exporta ninguna declaración a través de la Dem.h ([SWS_Dem_00194]).
Semántica y parámetros
Mediante el parámetro de entrada OperationCycleId se identifica el ciclo de operación que se va a reiniciar (p. ej., Power Cycle o Driving Cycle) ([SWS_Dem_00194]). La función opera de forma reentrante así como asíncrona ([SWS_Dem_00194]):
E_OK: el establecimiento del ciclo de operación ha sido aceptado y se sigue procesando de forma asíncrona ([SWS_Dem_00194]).E_NOT_OK: la solicitud para establecer el ciclo ha sido rechazada ([SWS_Dem_00194]).
Interacción y secuencia asíncrona
El comportamiento asíncrono evita incumplimientos de los requisitos temporales típicos cuando debe procesarse una gran cantidad de eventos y deben reinicializarse monitores ([SWS_Dem_00194]). Los callbacks correspondientes InitMonitorForEvent actúan como respuestas asíncronas ([SWS_Dem_00194]). En el curso del reinicio, el DEM reinicializa los monitores de diagnóstico de todos los eventos afectados llamando a su callback InitMonitorForEvent con el parámetro InitMonitorReason establecido en DEM_INIT_MONITOR_RESTART ([SWS_Dem_00679]).
Si se reinicia un ciclo de operación a través de Dem_RestartOperationCycle, además deben reiniciarse también todos los ciclos de operación que dependan de él, siempre que estén cualificados ([SWS_Dem_01224]).
Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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)
La función sirve para la adquisición y el almacenamiento intermedio síncronos de datos de freeze frame para un evento de diagnóstico específico [SWS_Dem_00188]. La interfaz se proporciona exclusivamente a través de la RTE y no se exporta mediante Dem.h [SWS_Dem_00188]. En el módulo solo existe si el prealmacenamiento está configurado para al menos un evento (DemFFPrestorageSupported) [SWS_Dem_00334].
Valores de retorno y tratamiento de errores:
E_OK: el freeze frame se almacenó temporalmente de manera correcta [SWS_Dem_00188].E_NOT_OK: el almacenamiento intermedio falla [SWS_Dem_00188], en particular si ya no queda ningún búfer libre (limitado porDemMaxNumberPrestoredFF) [SWS_Dem_00808] o si el evento indicado está establecido como no disponible [SWS_Dem_01108].
Concurrencia y condiciones de llamada: la función es reentrante para IDs de evento distintos, pero no para el mismo EventId [SWS_Dem_00188].
Interacción en el disparo multievento: si la función se invoca con un evento maestro configurado (DemMultiEventTriggeringMasterEventRef), el DEM desencadena automáticamente llamadas idénticas para todos los eventos subordinados asociados (DemMultiEventTriggeringSlaveEventRef) [SWS_Dem_01250]. No se admiten llamadas directas con un ID de evento subordinado o con un evento de reemplazo para condiciones de almacenamiento (DemStorageConditionReplacementEventRef), lo que da lugar a un comportamiento indefinido [SWS_Dem_01339].
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función síncrona Dem_SelectDTC selecciona un DTC o un grupo de DTC en el formato definido (DTCFormat) y memoria de eventos (DTCOrigin) para una determinada ClientId como destino para operaciones posteriores [SWS_Dem_91016]. Inicia el proceso de selección interno del DEM en la memoria de eventos asignada a esta ClientId [SWS_Dem_01254].
En cuanto a la concurrencia y el contexto de llamada, la función es reentrante para diferentes ClientId, pero no reentrante para la misma ClientId [SWS_Dem_91016]. Como valores de retorno se definen [SWS_Dem_91016]:
E_OK: El DTC o el grupo se ha seleccionado correctamente [SWS_Dem_91016].DEM_BUSY: Otra llamada aDem_SelectDTCo una operación dependiente de ella de este cliente ya se está ejecutando actualmente [SWS_Dem_91016].
El resultado de la selección se refleja en los valores de retorno de las llamadas a la API posteriores [SWS_Dem_01254]. El DEM utiliza el DTC o el grupo de DTC seleccionado como destino para llamadas a funciones posteriores del mismo cliente, tales como Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord y Dem_SetDTCSuppression [SWS_Dem_01253]. Además, Dem_SelectFreezeFrameData y Dem_SelectExtendedDataRecord se basan en este DTC seleccionado [SWS_Dem_01268], [SWS_Dem_01272].
Si se llama a una de las API dependientes sin que exista previamente una selección válida o si el DTC transmitido no es válido en el formato indicado, el DEM devuelve DEM_WRONG_DTC [SWS_Dem_01261]. Si el área de memoria solicitada (DTCOrigin) no existe o no es válida, las llamadas posteriores notifican DEM_WRONG_DTCORIGIN [SWS_Dem_01258], [SWS_Dem_01262]. Mediante Dem_GetDTCSelectionResult se puede verificar explícitamente si la selección con E_OK fue exitosa y el DTC está listo para su procesamiento posterior [SWS_Dem_01256], [SWS_Dem_01257].
Esta nota de uso fue generada por una IA y se basa exclusivamente en los datos de especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función Dem_SetComponentAvailable [SWS_Dem_01117] 📄 PDF
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);
Set the availability of a specific DemComponent.
función 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)
función 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)
función Dem_SetEventAvailable [SWS_Dem_01080] 📄 PDF
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);
Set the available status of a specific Event.
función Dem_SetEventConfirmationThresholdCounter [SWS_Dem_91004] 📄 PDF
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);
Set the failure confirmation threshold of an event.
función 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)
La función Dem_SetEventStatus sirve a SW-Cs y módulos BSW para transmitir resultados de pruebas de monitores al DEM [SWS_Dem_00183], [SWS_Dem_00330]. Está disponible cuando para el evento está configurado STANDARD_REPORTING [SWS_Dem_00183]. Como valores de estado se transfieren resultados cualificados (DEM_EVENT_STATUS_PASSED, DEM_EVENT_STATUS_FAILED), precualificaciones para el antirrebote interno del DEM (DEM_EVENT_STATUS_PREPASSED, DEM_EVENT_STATUS_PREFAILED) o la consecución del umbral de antirrebote DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED [SWS_Dem_00926].
En cuanto a la concurrencia, la API es reentrante para diferentes valores de EventId, pero no reentrante para el mismo EventId [SWS_Dem_00183]. Antes de la preinicialización a través de Dem_PreInit, una llamada con la detección de desarrollo activa provoca el error DEM_E_UNINIT [SWS_Dem_00364]. Después de Dem_PreInit, pero antes de Dem_Init, la llamada sí está permitida [SWS_Dem_00124], [SWS_Dem_00180]; los eventos cualificantes se almacenan en una cola cuyo tamaño se determina mediante DemBswErrorBufferSize, mientras que los umbrales FDC no se almacenan en búfer [SWS_Dem_00167], [SWS_Dem_00207]. Incluso después de Dem_Shutdown, la función no genera ningún error DEM_E_UNINIT [SWS_Dem_00368].
El valor de retorno es E_OK en caso de aceptación correcta o E_NOT_OK en caso de errores o si el evento está establecido como no disponible [SWS_Dem_00183], [SWS_Dem_01108]. Los módulos BSW pueden ignorar el valor de retorno [SWS_Dem_00183]. Los avisos se aceptan en cuanto se cumplen las Enable-Conditions asignadas [SWS_Dem_00450]; si el DTC-Setting está desactivado, el DEM ignora el reporte para el estado UDS [SWS_Dem_00626].
En el contexto de la llamada pueden desencadenarse acciones síncronas:
- Notificación al FiM en caso de cambio de estado a través de
FiM_DemTriggerOnEventStatus, siempre queDemTriggerFiMReportsesté activo [SWS_Dem_00029]. - Adquisición de datos síncronos de freeze frame y extended data records cuando la opción
DEM_CAPTURE_SYNCHRONOUS_TO_REPORTINGestá configurada [SWS_Dem_00805], [SWS_Dem_01082]. - Llamadas en cascada para eventos subordinados (slave events) configurados con la configuración
DemMultiEventTriggeringactiva [SWS_Dem_01250].
Esta nota se ha generado automáticamente sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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)
La función Dem_SetEventStatusWithMonitorData sirve para notificar al DEM un resultado de prueba de monitor (EventStatus) para un evento de diagnóstico determinado (EventId) junto con datos adicionales específicos del monitor (monitorData0 y monitorData1) [SWS_Dem_91037]. Posee la misma funcionalidad que Dem_SetEventStatus, pero transmite parámetros adicionales para su almacenamiento en datos relacionados con eventos [SWS_Dem_01333].
En interacción con operaciones de lectura se aplica lo siguiente: si una operación Read-Data está configurada para proporcionar monitorData0, el DEM agrega la monitorData0 transmitida de Dem_SetEventStatusWithMonitorData al parámetro monitorData0 de esta operación Read-Data [SWS_Dem_01330].
Para el uso y la concurrencia se aplican las siguientes condiciones:
- Disponibilidad: La API solo está disponible a través de
Dem.hsiDemEventReportingTypeestá configurado enSTANDARD_REPORTING_WITH_MONITOR_DATA[SWS_Dem_91037]. - Ejecución y reentrancia: La ejecución es síncrona/asíncrona. La función es reentrante para diferentes
EventId, pero no reentrante para la mismaEventId[SWS_Dem_91037]. - Valores de retorno: Devuelve
E_OKsi el estado del evento se establece correctamente yE_NOT_OKsi el establecimiento o procesamiento falló o no pudo ser aceptado [SWS_Dem_91037].
Esta nota de uso se ha creado automáticamente a partir de la especificación.
Guía del implementador pendiente (complejidad I1)
función 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)
función 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.
Uso y contexto de llamada
La función asíncrona Dem_SetWIRStatus sirve a los componentes de software a prueba de fallos (failsafe SW-Cs) para solicitar de forma selectiva el bit de estado Warning-Indicator-Requested (bit WIR) de un evento de diagnóstico [SWS_Dem_00839], [SWS_Dem_01303]. Dado que la llamada se realiza exclusivamente a través de la RTE, no existe ninguna declaración en el archivo de cabecera Dem.h [SWS_Dem_00839].
Comportamiento funcional e interacción
El establecimiento y el restablecimiento del bit dependen del parámetro transferido WIRStatus, así como del estado de los indicadores configurados:
- Si se transfiere
WIRStatus = TRUE, el DEM establece a 1 el bit WIR del evento en cuestión [SWS_Dem_00833]. - Con
WIRStatus = FALSE, el bit WIR solo se restablece a 0 si no hay ningún indicador del DEM referenciado activo [SWS_Dem_00834]. - Un bit WIR establecido mediante
Dem_SetWIRStatusimpide además que el DEM restablezca automáticamente a 0 el bit 7 de estado UDS (WarningIndicatorRequested) al alcanzarse los ciclos de desrebote o de curación [SWS_Dem_00503], [SWS_Dem_01233].
Concurrencia y tratamiento de errores
La API es reentrante para distintos eventos, pero no es reentrante para el mismo EventId [SWS_Dem_00839]. Si se acepta con éxito, la función devuelve E_OK [SWS_Dem_00839]. El valor de retorno E_NOT_OK señala que la solicitud fue rechazada y debe repetirse; este es el caso en particular si el ajuste de DTC está bloqueado (disabled ControlDTCSetting) o si el evento está marcado como no disponible [SWS_Dem_00836], [SWS_Dem_01108], [SWS_Dem_00839].
Esta nota de uso se ha generado automáticamente a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
función 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.
función 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.
función 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.
función 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).
función Dem_GetFunctionalUnitOfDTC [SWS_Dem_00594] 📄 PDF
Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);
Gets the functional unit of the requested DTC.
función 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
función Dem_GetNumberOfFilteredDTC [SWS_Dem_00214] 📄 PDF
Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);
Gets the number of a filtered DTC.
función 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.
función 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.
función 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.
función Dem_SetFreezeFrameRecordFilter [SWS_Dem_00209] 📄 PDF
Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);
Sets a freeze frame record filter.
función 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.
función 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.
función 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 y secuencia
La función asíncrona Dem_DisableDTCRecordUpdate ([SWS_Dem_00233]) desactiva la actualización de la memoria de eventos para un DTC definido previamente mediante Dem_SelectDTC ([SWS_Dem_01253]). El objetivo de esta llamada es proteger contra sobreescritura o borrado los datos relacionados con el evento del fallo seleccionado en el respectivo DTCOrigin, a fin de garantizar accesos de lectura coherentes posteriores a Freeze Frame Data y Extended Data Records ([SWS_Dem_00270]). A través del parámetro ClientId se identifica la instancia del módulo llamante ([SWS_Dem_00233]).
Valores de retorno y tratamiento de errores
La función señala el estado de procesamiento mediante valores de retorno específicos ([SWS_Dem_00233]):
E_OK: La actualización de la memoria de eventos se ha desactivado con éxito.DEM_PENDING: La desactivación se ejecuta de forma asíncrona; el llamante debe volver a llamar a la función en un momento posterior.DEM_BUSY: Ya hay otra operación dependiente deDem_SelectDTCen curso para este cliente.E_NOT_OK: No se ha seleccionado ningún DTC previamente.DEM_WRONG_DTC: El DTC seleccionado no existe en el formato elegido o se ha seleccionado indebidamente un grupo de DTC.DEM_WRONG_DTCORIGIN: El origen especificado (DTCOrigin) no existe.
Concurrencia y restricciones
Dem_DisableDTCRecordUpdate es reentrante para llamadas con diferente ClientId, pero no es reentrante para la misma ClientId ([SWS_Dem_00233]). Solo se puede bloquear la actualización para exactamente un DTC al mismo tiempo ([SWS_Dem_00233]). Tras la lectura de los datos de diagnóstico, la actualización del registro debe volver a habilitarse mediante Dem_EnableDTCRecordUpdate ([SWS_Dem_00234], [SWS_Dem_00270]).
Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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.
La función asíncrona Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]) sirve para habilitar la actualización de la memoria de eventos para un DTC previamente bloqueado. Conforme a [SWS_Dem_00271], la función libera de nuevo el DTC actualmente protegido por Dem_DisableDTCRecordUpdate, de modo que sus datos puedan actualizarse otra vez en el DEM.
Como parámetro de entrada, la función espera el ClientId, el cual identifica unívocamente la instancia del módulo llamador ([SWS_Dem_00234]). Dado que la llamada a Dem_EnableDTCRecordUpdate representa la acción final en la secuencia de desactivación y activación de un DTC, el invocador no está interesado en el valor de retorno propiamente dicho; por lo tanto, según [SWS_Dem_00234], debe devolverse E_OK incluso en caso de una habilitación asíncrona.
En relación con el tratamiento de errores y los valores de retorno, se definen los siguientes estados ([SWS_Dem_00234]):
E_OK: la actualización del registro de datos del DTC se habilitó correctamente.E_NOT_OK: no hay ningún DTC seleccionado.
En lo referente a concurrencia y restricciones, Dem_EnableDTCRecordUpdate es reentrante para llamadas con diferentes identificadores de cliente, pero no es reentrante para el mismo ClientId ([SWS_Dem_00234]).
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
función 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.
función 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.
función 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.
función 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.
La función asíncrona Dem_SelectExtendedDataRecord inicializa el filtro para la lectura de datos de diagnóstico extendidos de un DTC definido previamente con Dem_SelectDTC [SWS_Dem_91017] [SWS_Dem_01253]. Inicia el proceso de selección interno en la memoria de eventos asignada del cliente [SWS_Dem_01273] y determina el registro de datos de destino para consultas posteriores a través de Dem_GetSizeOfExtendedDataRecordSelection y Dem_GetNextExtendedDataRecord [SWS_Dem_01272].
Con respecto a la parametrización y la secuencia, se aplican las siguientes estipulaciones:
- Parámetros: además de números de registro de datos específicos,
ExtendedDataNumberacepta los valores0xFE(tamaño total de todos los registros de datos OBD) y0xFF(tamaño total de todos los registros de datos) [SWS_Dem_91017]. Para evitar inconsistencias de datos durante la lectura, el registro de datos se puede proteger previamente conDem_DisableDTCRecordUpdate[SWS_Dem_00270]. - Valores de retorno y errores: en caso de una selección correcta, se devuelve
E_OK[SWS_Dem_91017]. Esto también se aplica cuando se solicita un número de registro de datos válido para el cual no hay ninguna entrada almacenada; en este caso, la lectura posterior devuelve un tamaño de búfer de 0 [SWS_Dem_00631]. Si a través deDem_SelectDTCno se había seleccionado un código de fallo individual, sino un grupo de DTC, o si el DTC no existe, la llamada falla conDEM_WRONG_DTC[SWS_Dem_91017] [SWS_Dem_01349]. Si la ubicación de memoria no existe, se notificaDEM_WRONG_DTCORIGIN[SWS_Dem_91017]. - Concurrencia: si la selección todavía está en curso,
DEM_PENDINGindica la necesidad de una nueva llamada [SWS_Dem_91017]. El estadoDEM_BUSYindica que para esteClientIdtodavía está activa otra operación dependiente del DTC [SWS_Dem_91017]. La función es reentrante para diferentes valores deClientId, pero no es reentrante para la misma instancia [SWS_Dem_91017].
Esta nota de uso se generó de forma automatizada a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
Uso y semántica
La función asíncrona Dem_SelectFreezeFrameData establece el filtro para la lectura posterior de datos de freeze frame a través de Dem_GetSizeOfFreezeFrameSelection y Dem_GetNextFreezeFrameData [SWS_Dem_91015], [SWS_Dem_01268]. Mediante el parámetro ClientId se identifica la instancia del módulo llamador, mientras que RecordNumber especifica el número de registro de snapshot según ISO 14229-1; aquí, 0xFF representa todos los registros de snapshot del DTC y 0x00 el snapshot WWH-OBD específico del DTC [SWS_Dem_91015]. La llamada inicia la selección interna en la memoria de eventos asignada [SWS_Dem_01269].
Valores de retorno y tratamiento de errores
Si el proceso de selección se inició correctamente, la función devuelve E_OK [SWS_Dem_91015]. Si la selección todavía está en curso, DEM_PENDING indica que el llamador debe invocar la función de nuevo en un momento posterior [SWS_Dem_91015]. Si para el cliente ya está activa otra operación dependiente, la API devuelve DEM_BUSY [SWS_Dem_91015], [SWS_Dem_01253]. Si el DTC de destino no existe en el formato deseado o si se seleccionó un grupo de DTC en lugar de un DTC individual mediante Dem_SelectDTC, se devuelve DEM_WRONG_DTC [SWS_Dem_91015], [SWS_Dem_01348]. En caso de una ubicación de memoria no válida, se produce DEM_WRONG_DTCORIGIN [SWS_Dem_91015]. Si se llaman funciones de lectura dependientes sin una selección previa, el DEM notifica un error de DET [SWS_Dem_01270], [SWS_Dem_01271].
Secuencia y concurrencia
La función es reentrante para diferentes llamadores (ClientId), pero no es reentrante para el mismo cliente [SWS_Dem_91015]. Un requisito obligatorio es la llamada previa de Dem_SelectDTC para definir el DTC de destino y la ubicación de memoria [SWS_Dem_01253]. Para garantizar una lectura consistente, se puede llamar a Dem_DisableDTCRecordUpdate con el fin de proteger los datos relacionados con el evento frente a modificaciones o eliminaciones [SWS_Dem_00270].
Esta nota de uso ha sido generada automáticamente por una IA sobre la base de la especificación.
Guía del implementador pendiente (complejidad I2)
función 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
función 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.
Uso y semántica
La función Dem_DisableDTCSetting desactiva el DTC-Setting para todos los eventos de diagnóstico asignados al DemEventMemorySet del cliente llamante [SWS_Dem_00242], [SWS_Dem_01290]. La llamada se realiza de forma asíncrona y requiere la transferencia de un ClientId unívoco [SWS_Dem_00242]. Además de la finalización correcta mediante E_OK, el valor de retorno DEM_PENDING señala que la operación todavía está en curso; en este caso, el llamante debe volver a llamar a la función en un momento posterior [SWS_Dem_00242].
Efectos funcionales
Si se llama a Dem_DisableDTCSetting, el DEM impide el almacenamiento de los eventos correspondientes, así como la actualización de los bytes de estado UDS [SWS_Dem_00079]. Si adicionalmente el parámetro de configuración DemDebounceBehavior está ajustado a DEM_DEBOUNCE_RESET, la llamada provoca además el restablecimiento de los correspondientes contadores de detección de fallos (Fault Detection Counters) [SWS_Dem_00677].
Concurrencia y restricciones
La función es reentrante para llamadas con diferentes Client-IDs, pero no es reentrante para la misma ClientId [SWS_Dem_00242]. La desactivación solo afecta a los eventos y bytes de estado UDS del DemEventMemorySet referenciado por el ClientId; los DTC fuera de esta área de memoria no se ven afectados [SWS_Dem_01290].
Esta nota de uso se basa en los requisitos de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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.
La función asíncrona Dem_EnableDTCSetting activa o reactiva el DTC-Setting para todos los DTC asignados al DemEventMemorySet del cliente direccionado [SWS_Dem_00243]. En la llamada se transfiere el identificador unívoco ClientId de la instancia del módulo llamante [SWS_Dem_00243].
Como valores de retorno se definen [SWS_Dem_00243]:
E_OK: la operación finalizó con éxito.DEM_PENDING: El proceso se ejecuta de forma asíncrona; el llamante debe volver a llamar a la función en un momento posterior.
En cuanto a la concurrencia, Dem_EnableDTCSetting es reentrante para diferentes valores de ClientId, pero no debe llamarse de forma concurrente para la misma ClientId [SWS_Dem_00243].
En interacción con el procesamiento de eventos, la función se encarga de que el DEM habilite el almacenamiento de los eventos correspondientes y del byte de estado UDS [SWS_Dem_00080]. Si el DTC-Setting se vuelve a activar para los eventos, Dem_EnableDTCSetting dispara la función de callback InitMonitorForEvent de los eventos afectados con el parámetro InitMonitorReason a DEM_INIT_MONITOR_REENABLED [SWS_Dem_00682].
Este texto ha sido generado por una IA y sirve de orientación. Solo son vinculantes las especificaciones de los respectivos releases de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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
El DCM llama a la función síncrona Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) para consultar datos de IUMPR (In-Use Monitor Performance Ratio) para InfoType $08 en el marco del servicio OBD $09 ([SWS_Dem_00298]). Dado que el procesamiento se realiza de forma síncrona, el DCM transfiere exclusivamente el valor DCM_INITIAL para el parámetro OpStatus ([SWS_Dem_00316]). Los datos útiles, así como el número de elementos de datos conforme a ISO-15031-5, se escriben en el búfer Iumprdata08 proporcionado por el DCM; el tamaño de búfer máximo que se puede escribir se especifica mediante el parámetro de entrada/salida Iumprdata08BufferSize ([SWS_Dem_00316]).
Manejo de errores
La función siempre devuelve E_OK como valor de retorno ([SWS_Dem_00316]). Para esta llamada no se especifican códigos de fallo específicos ni mensajes de error de desarrollo (DET).
Concurrencia y configuración
La interfaz no es reentrante (Non Reentrant) y está declarada a través de Dem_Dcm.h ([SWS_Dem_00316]). Solo existe en unidades de control relevantes para OBD con soporte OBD activo (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) ([SWS_Dem_00316]) y se proporciona cuando DemOBDEngineType está configurado a DEM_IGNITION_SPARK para motores de gasolina ([SWS_Dem_00357]).
Interacción
Los códigos de fallo suprimidos (suppressed DTCs) no deben ser visibles durante la consulta y deben tratarse como si el filtro no coincidiera ([SWS_Dem_01101]). Junto con Dem_DcmGetInfoTypeValue0B, la función sirve para admitir solicitudes de datos en el Service $09 ([SWS_Dem_00298]).
Esta nota de uso se generó automáticamente sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
Uso e interfaz de parámetros
La función síncrona Dem_DcmGetInfoTypeValue0B (Service-ID 0x6c, disponible a través de Dem_Dcm.h) sirve al DCM para consultar datos de IUMPR (In-Use Performance Ratio) conforme a InfoType $0B en el marco del OBD-Service $09 [SWS_Dem_00317] [SWS_Dem_00298]. La interfaz de la función se deriva del prototipo de DCM <Module>_GetInfotypeValueData(), motivo por el cual utiliza Dcm_OpStatusType y Std_ReturnType [SWS_Dem_00317]:
OpStatus(in): Dado que la función presenta un comportamiento síncrono, en la llamada solo se produce el estadoDCM_INITIAL[SWS_Dem_00317].Iumprdata0BBufferSize(inout): Define el número máximo de bytes de datos que se pueden escribir en el búfer [SWS_Dem_00317].Iumprdata0B(out): Un búfer proporcionado por el DCM que aloja el número de elementos de datos conforme a ISO-15031-5 y el contenido del InfoType $0B [SWS_Dem_00317].
Como valor de retorno siempre se suministra E_OK [SWS_Dem_00317].
Tratamiento de errores y concurrencia
En la especificación no se definen códigos de fallo específicos ni reacciones a fallos (como notificaciones DET) para esta función; formalmente, la llamada siempre notifica E_OK como retorno [SWS_Dem_00317]. La API está clasificada como no reentrante (Non Reentrant) [SWS_Dem_00317]. Por lo tanto, es de suponer que el llamante (DCM) no puede ejecutar este servicio de forma concurrente para varias solicitudes de diagnóstico en paralelo. Pregunta Q-636518c23ec3801a (abierta)
Dependencia de configuración e interacción
La API existe exclusivamente en unidades de control relevantes para OBD para las cuales el parámetro de configuración DemOBDSupport está configurado como distinto de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00317]. Además, se proporciona cuando DemOBDEngineType está ajustado a DEM_IGNITION_COMPRESSION [SWS_Dem_00358]. En interacción con la supresión de DTC, aplica que los DTC suprimidos son invisibles para esta función de consulta y deben tratarse como si el filtro no coincidiera [SWS_Dem_01101].
Este texto ha sido creado por una IA; las directrices exigen la comprobación por parte del usuario mediante la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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)
La función síncrona Dem_DcmReadDataOfPID01 sirve para transferir al DCM el contenido del parámetro OBD PID $01 calculado por el DEM [SWS_Dem_00318]. La interfaz está declarada en el archivo de cabecera Dem_Dcm.h y está disponible exclusivamente en unidades de control relevantes para OBD en las que DemOBDSupport no esté ajustado a DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00318].
A través del parámetro de salida PID01value, el DCM transfiere un puntero al búfer de destino en el cual el DEM escribe los datos [SWS_Dem_00318]. El DCM es responsable de proporcionar este búfer con un tamaño suficiente; el dimensionamiento se efectúa durante la configuración a partir del PID más grande que se presente para la configuración del PIDBuffer [SWS_Dem_00318].
La función se implementa como no reentrante (Non Reentrant) [SWS_Dem_00318]. Como valor de retorno se entrega siempre E_OK, ya que, según la especificación, nunca se produce una condición de error con E_NOT_OK [SWS_Dem_00318].
En la interacción con las consultas de errores rige que los códigos de error suprimidos (suppressed DTC) no deben ser visibles para Dem_DcmReadDataOfPID01 [SWS_Dem_01101]. El DEM debe tratar los DTC suprimidos en la evaluación como si el filtro no coincidiera [SWS_Dem_01101].
Nota: Esta documentación ha sido generada automáticamente por un sistema de IA sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
Uso y contexto de llamada
La función Dem_DcmReadDataOfPID1C proporciona un servicio síncrono del Diagnostic Event Manager a través del cual el Diagnostic Communication Module (DCM) consulta el contenido calculado de OBD PID $1C [SWS_Dem_00325].
-
Parámetro: a través del parámetro de salida
PID1Cvalue(puntero auint8), el DEM escribe los datos en un búfer del DCM. El tamaño de búfer requerido se dimensiona durante la configuración del DCM en función del PID más grande para proporcionar unPIDBufferadecuado [SWS_Dem_00325]. -
Valor de retorno: el servicio siempre devuelve el valor de estado
E_OK. Un caso de error conE_NOT_OKnunca se produce según la especificación [SWS_Dem_00325].
Contenido técnico e interacción
Conforme a [SWS_Dem_00748], la interfaz devuelve los requisitos de OBD según los cuales está certificado el vehículo o el motor (por ejemplo, OBD, OBDII o JOBD). El valor que se debe emitir en PID1Cvalue se define mediante el parámetro de configuración DemOBDCompliancy [SWS_Dem_00325] [SWS_Dem_00748].
Concurrencia y disponibilidad
La función está especificada como no reentrante (Non Reentrant) [SWS_Dem_00325]. Está declarada en el archivo de cabecera Dem_Dcm.h y se encuentra disponible exclusivamente en unidades de control con soporte OBD activo en las que DemGeneral.DemOBDSupport no está ajustado a DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00325].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona Dem_DcmReadDataOfPID21 (Service-ID 0x64) sirve al Diagnostic Communication Manager (DCM) para consultar el valor actual del parámetro OBD PID $21 calculado por el DEM [SWS_Dem_00319], [SWS_Dem_01098]. La interfaz se declara mediante la cabecera Dem_Dcm.h y solo está disponible en unidades de control con relevancia OBD, siempre que el parámetro de configuración DemOBDSupport no esté ajustado a DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00319].
Para el uso y la interacción operativa se aplican las siguientes estipulaciones:
- Provisión del búfer: como parámetro de salida se transfiere el puntero
PID21value[SWS_Dem_00319]. El llamante (DCM) debe proporcionar este búfer y lo dimensiona durante la configuración para que se ajuste al PID configurado más grande [SWS_Dem_00319]. Al llamarse, el DEM escribe el valor actual de PID $21 en este búfer [SWS_Dem_01098]. - Valor de retorno: la función siempre devuelve
E_OK, ya que, según la especificación, nunca se produce un valor de error comoE_NOT_OK[SWS_Dem_00319]. - Estado inicial / Tratamiento de errores: si se llama a
Dem_DcmReadDataOfPID21antes de que se hayan establecido valores a través deDem_SetDataOfPID21, el DEM devuelve el valor sustitutivo0xFFFFcomo contenido de PID $21 [SWS_Dem_01099]. - Concurrencia: la función está especificada como no reentrante (Non Reentrant) [SWS_Dem_00319]. Por lo tanto, no se admiten llamadas concurrentes procedentes de múltiples contextos.
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona Dem_DcmReadDataOfPID30 sirve para transferir al DCM el contenido de datos del parámetro PID $30 calculado por el DEM [SWS_Dem_00320]. Se declara a través del archivo de cabecera Dem_Dcm.h y solo está disponible en unidades de control relevantes para OBD cuando el parámetro de configuración DemOBDSupport es distinto de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00320].
Para el uso de la interfaz se aplican las siguientes estipulaciones:
- Parámetro de transferencia: a través del parámetro de salida
PID30value, el llamante proporciona un búfer en el que el DEM escribe los datos calculados de PID $30 [SWS_Dem_00320]. El DCM es responsable de proporcionar este búfer con un tamaño adecuado; el DCM determina el dimensionamiento durante la configuración en función del PID más grande [SWS_Dem_00320]. - Valor de retorno y tratamiento de errores: la interfaz siempre devuelve
E_OKcomoStd_ReturnType[SWS_Dem_00320]. Según la especificación, el valor de errorE_NOT_OKnunca se produce, y no se prevén códigos de fallo específicos ni rutinas de tratamiento de errores separadas [SWS_Dem_00320]. - Concurrencia: la función está definida como no reentrante (
Non Reentrant) [SWS_Dem_00320]. Dado que la especificación no prevé mecanismos de sincronización internos, es de suponer que el llamante es responsable de excluir llamadas concurrentes [SWS_Dem_00320]. Pregunta Q-976bc8dc189021a1 (abierta)
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR Classic R20-11.
función 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)
La función síncrona Dem_DcmReadDataOfPID31 sirve para transferir al DCM el valor del parámetro OBD PID $31 calculado por el DEM [SWS_Dem_00321]. La interfaz se proporciona a través del archivo de cabecera Dem_Dcm.h y posee el Service-ID 0x66 [SWS_Dem_00321].
Uso y parámetros
La llamada se realiza de forma síncrona y está definida como no reentrante [SWS_Dem_00321]:
- PID31value (parámetro de salida): puntero a un búfer (
uint8*) que aloja los datos calculados para PID $31 [SWS_Dem_00321]. La provisión del búfer con el tamaño adecuado corresponde al DCM llamante; este determina el tamaño de búfer requerido durante la configuración en función del PID más grande para el diseño de unPIDBuffer[SWS_Dem_00321]. - Valor de retorno: el servicio siempre devuelve
E_OKcomoStd_ReturnType; el valor de errorE_NOT_OKnunca se produce según la especificación [SWS_Dem_00321].
Restricciones y configuración
La API está prevista exclusivamente para unidades de control relevantes para OBD [SWS_Dem_00321]. Solo está disponible si el parámetro de configuración DemGeneral.DemOBDSupport está ajustado al valor DEM_OBD_MASTER_ECU [SWS_Dem_00321]. Dado que la función no es reentrante, el DCM no debe realizar llamadas paralelas [SWS_Dem_00321].
Esta nota de uso se ha generado de forma automatizada y se basa exclusivamente en los datos de especificación de la release R20-11.
función 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)
La función síncrona Dem_DcmReadDataOfPID41 sirve para transferir al DCM el contenido de PID $41 calculado por el DEM [SWS_Dem_00322]. Se declara a través de la cabecera Dem_Dcm.h y posee el Service-ID 0x67 [SWS_Dem_00322].
Uso y parámetros
La llamada se realiza de forma síncrona y está especificada como no reentrante (Non Reentrant) [SWS_Dem_00322]. Como parámetro de salida, la interfaz espera el puntero PID41value (uint8*):
PID41valuealoja los datos calculados de PID $41 [SWS_Dem_00322].- El búfer debe ser proporcionado por el DCM con el tamaño adecuado; para ello, el DCM determina ya durante la configuración el tamaño necesario para la configuración del
PIDBufferen función del PID más grande que se presente [SWS_Dem_00322].
Valores de retorno y tratamiento de errores
Como valor de retorno, la función siempre devuelve E_OK, ya que, según la especificación, nunca se produce un valor de error E_NOT_OK [SWS_Dem_00322]. Para esta interfaz no están previstos códigos de fallo específicos ni reacciones a fallos [SWS_Dem_00322].
Dependencia de configuración y disponibilidad
La API solo se necesita en unidades de control relevantes para OBD [SWS_Dem_00322]. Solo está disponible si el parámetro de configuración DemOBDSupport en DemGeneral está configurado como distinto de DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00322].
Este texto ha sido creado por una IA y se fundamenta exclusivamente en la especificación R20-11.
función 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)
Uso y contexto de llamada
La función síncrona Dem_DcmReadDataOfPID4D sirve para transmitir al DCM el valor del parámetro OBD PID $4D calculado por el DEM [SWS_Dem_00323]. El servicio se proporciona a través de la cabecera Dem_Dcm.h con el Service-ID 0x68 [SWS_Dem_00323].
Como único parámetro de transferencia sirve el puntero de salida PID4Dvalue, el cual apunta a un búfer de destino proporcionado por el DCM [SWS_Dem_00323]. El DCM proporciona este búfer con un tamaño adecuado determinando ya durante la configuración el tamaño requerido para el PIDBuffer en función del PID más grande que se presente [SWS_Dem_00323].
Valores de retorno y tratamiento de errores
La función tiene el tipo de retorno Std_ReturnType y devuelve sin excepción E_OK [SWS_Dem_00323]. Un valor de retorno de E_NOT_OK queda excluido según la especificación y nunca se produce [SWS_Dem_00323]. No existen tratamientos de error particulares ni códigos de fallo específicos para esta llamada.
Concurrencia y dependencia de la configuración
La interfaz está declarada como no reentrante (Non Reentrant) y, por lo tanto, no debe ejecutarse de forma concurrente [SWS_Dem_00323].
Además, la función solo se requiere en unidades de control relevantes para OBD [SWS_Dem_00323]. Solo está disponible cuando, en la configuración, el parámetro DemOBDSupport dentro de DemGeneral está ajustado al valor DEM_OBD_MASTER_ECU [SWS_Dem_00323].
Esta nota de uso se basa en la especificación del Diagnostic Event Manager en AUTOSAR CP R20-11.
función 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)
La función síncrona Dem_DcmReadDataOfPID4E sirve para transmitir al DCM el contenido del identificador de parámetro OBD PID $4E calculado por el DEM [SWS_Dem_00324]. La función posee el Service-ID 0x69 y se declara a través del archivo de cabecera Dem_Dcm.h [SWS_Dem_00324].
Llamada y gestión del búfer
La llamada se realiza de forma síncrona y está definida como no reentrante (Non Reentrant) [SWS_Dem_00324]. Como parámetro de salida, la función recibe el puntero PID4Evalue (tipo uint8*), a través del cual el DEM almacena los datos calculados [SWS_Dem_00324]. Para ello, el DCM llamante debe proporcionar un búfer con un tamaño adecuado [SWS_Dem_00324]. El DCM determina el tamaño de búfer requerido durante la configuración en función del PID más grande que se presente, a fin de dimensionar adecuadamente el PIDBuffer común [SWS_Dem_00324].
Valores de retorno y tratamiento de errores
La interfaz siempre devuelve E_OK del tipo Std_ReturnType, ya que, según la especificación, el valor de retorno E_NOT_OK nunca se produce [SWS_Dem_00324]. En el alcance de la especificación no se indican códigos de fallo específicos para un caso de error ni notificaciones de error DET o DEM [SWS_Dem_00324].
Restricciones y disponibilidad
La API solo se necesita en unidades de control relevantes para OBD [SWS_Dem_00324]. Su disponibilidad está ligada a la condición de configuración DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU; en otras configuraciones, la función no está disponible [SWS_Dem_00324].
Este texto ha sido creado por una IA; no sustituye el estudio de la especificación de AUTOSAR.
función 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)
La función síncrona Dem_DcmReadDataOfPID91 (identificador de servicio 0x6a) sirve para transferir los datos del parámetro OBD PID $91 calculados por el DEM al DCM [SWS_Dem_01187]. La interfaz se declara a través de la cabecera Dem_Dcm.h y está disponible exclusivamente en unidades de control relevantes para OBD en las que DemOBDSupport no esté configurado como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_01187].
Como parámetro de salida, la función requiere el puntero PID91value, que apunta a un búfer proporcionado por el DCM [SWS_Dem_01187]. El DCM es responsable de proporcionar este búfer con un tamaño adecuado; el tamaño necesario ya se determina durante la configuración basándose en el PID más grande para crear el búfer PIDBuffer [SWS_Dem_01187].
La función está especificada como no reentrante (Non Reentrant) y debe procesarse de forma síncrona [SWS_Dem_01187]. Por lo tanto, no se permite una llamada paralela desde diferentes contextos. No existe ningún valor de retorno de error: la función devuelve siempre E_OK como Std_ReturnType, ya que el valor de error E_NOT_OK nunca se produce según la especificación [SWS_Dem_01187].
Esta nota de uso se generó automáticamente y se basa exclusivamente en los datos de especificación de AUTOSAR Classic R20-11.
función 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)
La función síncrona Dem_DcmReadDataOfOBDFreezeFrame lee datos de un elemento de datos correspondiente a un PID para el Freeze Frame más importante que está seleccionado para la emisión del OBD-Service $02 [SWS_Dem_00327].
Contexto de llamada y parámetros
La llamada es realizada por el DCM a través del encabezado Dem_Dcm.h [SWS_Dem_00327]. A la función se le pasan los siguientes parámetros:
PID: Identificador del PID según ISO 15031-5 [SWS_Dem_00327].DataElementIndexOfPID: Índice correlativo de base cero del elemento de datos dentro del PID. El orden se deriva directamente de la posición de los elementos de datos en el diseño del PID de la configuración del DCM [SWS_Dem_00327], [SWS_Dem_00597].DestBuffer: Puntero al búfer en el que se escribe el elemento de datos en formato raw hexadecimal sin información de encabezado [SWS_Dem_00327].BufSize: Sirve como parámetro de entrada y salida; al llamar contiene la capacidad máxima del búfer y devuelve la cantidad de bytes de datos efectivamente escritos [SWS_Dem_00327].
Restricciones y tratamiento de errores
La función no es reentrante (Non Reentrant) y está disponible exclusivamente en unidades de control con soporte OBD habilitado (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00327]. En caso de una puesta a disposición de datos correcta se devuelve E_OK; de lo contrario, E_NOT_OK [SWS_Dem_00327]. Un DTC suprimido no es visible para esta función de consulta [SWS_Dem_01101]; presumiblemente, la función devuelve E_NOT_OK en tal caso. Pregunta Q-09c77cdccc138247 (abierta)
Este texto fue elaborado por una IA; el documento vinculante es la especificación de referencia.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona y no reentrante Dem_DcmGetDTCOfOBDFreezeFrame lee el DTC correspondiente a un número de registro de freeze frame determinado [SWS_Dem_00624]. Sirve primordialmente al DCM para la salida en el marco del servicio OBD $02 (PID $02), con el fin de determinar el DTC del freeze frame seleccionado más relevante [SWS_Dem_00623].
Invocación y parámetros
FrameNumber(IN): identificador unívoco del registro de freeze frame según ISO 15031-5. El valor0x00designa el freeze frame de OBD completo; los demás valores están reservados [SWS_Dem_00624].DTCFormat(IN): formato de salida deseado del valor de DTC [SWS_Dem_00624].DTC(OUT): puntero a la ubicación de memoria para el código de avería determinado en formato OBD [SWS_Dem_00624].
Valores de retorno y tratamiento de errores
La función devuelve E_OK si el DTC se pudo determinar con éxito. Si no hay ningún DTC adecuado disponible, la llamada devuelve E_NOT_OK; en este caso, el parámetro de salida DTC no contiene datos válidos [SWS_Dem_00624].
Condiciones e interacción
La interfaz está disponible a través de la cabecera Dem_Dcm.h y existe exclusivamente en unidades de control con compatibilidad con OBD (configuración DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00624]. La función trata los DTC suprimidos (suppressed DTCs) como si no hubiera ninguna coincidencia y no son visibles para esta consulta [SWS_Dem_01101].
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona y reentrante Dem_DcmGetAvailableOBDMIDs (Service ID 0xa3) es invocada por el DCM para leer, en el marco de una solicitud del servicio OBD $06, el valor de un OBDMID de disponibilidad solicitado [SWS_Dem_00766]. A través del parámetro de entrada Obdmid (tipo uint8), el llamador transfiere un identificador de disponibilidad estandarizado como $00, $20 o $40. El DEM devuelve los identificadores de prueba soportados como información codificada en bits mediante el puntero de salida de 32 bits Obdmidvalue [SWS_Dem_00766]. A partir de estos datos, el comprobador de diagnóstico deduce qué comprobaciones se muestran al personal de taller para su selección [SWS_Dem_00766].
La función se declara a través de la cabecera Dem_Dcm.h. Está prevista exclusivamente para unidades de control relevantes para OBD y solo está disponible en el módulo si la opción de configuración DemGeneral.DemOBDSupport está configurada de forma distinta a DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00766].
En caso de transmisión sin errores de la disponibilidad de DTR, la interfaz devuelve E_OK [SWS_Dem_00766]. Si se invoca la función antes de que el DEM se haya inicializado por completo o después de que se haya apagado, se aplica el código de error DEM_E_UNINIT [SWS_Dem_00173]. Asimismo, las llamadas con puntero no válido (DEM_E_PARAM_POINTER) o con valores de parámetros erróneos (DEM_E_PARAM_DATA) provocan errores de desarrollo conforme a [SWS_Dem_00173]. En tales casos de error es de suponer que probablemente se entregue E_NOT_OK como valor de retorno. Pregunta Q-b42d268116fb8df7 (abierta)
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona y reentrante Dem_DcmGetNumTIDsOfOBDMID (ID de servicio 0xa4) se declara mediante el archivo de encabezado Dem_Dcm.h [SWS_Dem_00767]. Sirve para que el Diagnostic Communication Manager (DCM) consulte, bajo petición, el número de identificadores de prueba (TIDs) asignados a un OBDMID funcional especificado [SWS_Dem_00761].
Al llamar, el DCM pasa el identificador del OBDMID en cuestión en el parámetro de entrada Obdmid y recibe el número de TIDs asignados a través del puntero numberOfTIDs [SWS_Dem_00767]. Este valor de salida le sirve al DCM como límite superior para un bucle de conteo de 0 a numberOfTIDs - 1, en el cual posteriormente se consultan de forma secuencial a través de Dem_DcmGetDTRData los valores individuales de resultados de DTR, resultados de pruebas y valores límite [SWS_Dem_00761] [SWS_Dem_00768].
La función devuelve el valor de retorno E_OK si el número de TIDs pudo determinarse correctamente, y E_NOT_OK si la consulta falla [SWS_Dem_00767]. En la especificación no se indican de forma diferenciada errores de desarrollo (DET) específicos ni causas detalladas de error para el caso de fallo.
La llamada está prevista exclusivamente para unidades de control relevantes para OBD. La interfaz solo está disponible en el DEM si el parámetro de configuración DemOBDSupport no está configurado en DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00767].
Esta nota de uso ha sido generada por una IA y se basa exclusivamente en los documentos de especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
La función síncrona y reentrante Dem_DcmGetDTRData sirve para que el Diagnostic Communication Manager (DCM) consulte datos DTR (Diagnostic Test Results), incluidos el valor de TID, el UaSID y el resultado de prueba actual con límite inferior y superior [SWS_Dem_00768]. Está disponible exclusivamente en unidades de control con soporte OBD cuando DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT está configurado [SWS_Dem_00768].
Uso e interacción
El DCM llama a la función para consultar los datos DTR disponibles para un Obdmid determinado y un TIDindex [SWS_Dem_00762]. La consulta se realiza típicamente de forma iterativa a través del índice TIDindex desde 0 hasta numberOfTIDs - 1, determinándose previamente el número total mediante Dem_DcmGetNumTIDsOfOBDMID() [SWS_Dem_00768], [SWS_Dem_00762]. A través de los parámetros de salida TIDvalue, UaSID, Testvalue, Lowlimvalue y Upplimvalue se proporcionan los valores para la respuesta del tester [SWS_Dem_00768].
Tratamiento de errores y condiciones límite
La función devuelve E_OK en caso de determinación correcta de los resultados DTR y E_NOT_OK en caso de error [SWS_Dem_00768]. Se produce un error, en particular, si el evento de diagnóstico referenciado no está disponible:
- Si un evento está establecido como no disponible, se trata como un evento no configurado y
Dem_DcmGetDTRDatafalla [SWS_Dem_01108]. - Si la función se invoca para un DTR cuyo evento referenciado mediante
DemDtrEventRefestá configurado conDemEventAvailable == FALSE, el DEM devuelve obligatoriamenteE_NOT_OK[SWS_Dem_01336]. En este caso, todos los parámetros de salida quedan indefinidos [SWS_Dem_01336].
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I1)
función 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
La función síncrona Dem_J1939DcmSetDTCFilter (Service-ID 0x90, declarada en Dem_J1939Dcm.h) establece los atributos de máscara de filtro para la selección de DTC de J1939 para un nodo J1939 direccionado a través de ClientId [SWS_Dem_00970], [SWS_Dem_00855]. Como criterios de filtrado sirven el filtro de estado DTCStatusFilter (valores posibles: DEM_J1939DTC_ACTIVE, DEM_J1939DTC_PREVIOUSLY_ACTIVE, DEM_J1939DTC_PENDING, DEM_J1939DTC_PERMANENT o DEM_J1939DTC_CURRENTLY_ACTIVE), el grupo funcional DTCKind, así como la memoria de origen DTCOrigin [SWS_Dem_00970]. A través del parámetro de salida LampStatus, la llamada devuelve el estado combinado actual de las lámparas de los DTC filtrados [SWS_Dem_00970], [SWS_Dem_00857]. Además, se restablece un contador interno al primer evento correspondiente [SWS_Dem_00855]. Interpretación: el llamador de la interfaz probablemente sea el módulo J1939Dcm con el fin de preparar operaciones de lectura de diagnóstico. Pregunta Q-5f25345851de686f (abierta)
Tratamiento de errores y valores de retorno
Como valor de retorno, la función proporciona E_OK en caso de configuración correcta del filtro o E_NOT_OK si el filtro no se ha podido establecer [SWS_Dem_00970]. Los DTC suprimidos no quedan incluidos en el filtrado y se tratan como si el criterio de filtro no se cumpliera; permanecen invisibles para las consultas [SWS_Dem_01101].
Concurrencia y restricciones
La función es reentrante para diferentes valores de ClientId, pero no es reentrante para el mismo ClientId [SWS_Dem_00970]. Por lo tanto, deben evitarse las llamadas concurrentes de filtrado sobre la misma memoria de eventos de J1939.
Interacción
El establecimiento del filtro constituye la base para el procesamiento posterior:
- Determinación del número de rutas de fallo coincidentes mediante
Dem_J1939DcmGetNumberOfFilteredDTC[SWS_Dem_00855], [SWS_Dem_00874], [SWS_Dem_00972], - lectura iterativa de los eventos coincidentes mediante
Dem_J1939DcmGetNextFilteredDTC[SWS_Dem_00855], [SWS_Dem_00875] así como - provisión de la cantidad de DTC activos o previamente activos para mensajes de readiness (DM05) mediante
Dem_J1939DcmReadDiagnosticReadiness1[SWS_Dem_00909].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función [SWS_Dem_00972] determina de forma asíncrona la cantidad de DTC J1939 que se corresponden con los criterios de filtrado definidos previamente con Dem_J1939DcmSetDTCFilter en la memoria de eventos primaria del ClientId transferido ([SWS_Dem_00874]). Es necesaria una llamada previa a Dem_J1939DcmSetDTCFilter, ya que esta establece los atributos de máscara de filtrado y restablece el contador interno al primer evento ([SWS_Dem_00855]).
El resultado del recuento se proporciona a través del parámetro de salida NumberOfFilteredDTC. Para el flujo y los valores de retorno se aplican las siguientes reglas:
- Éxito: Tan pronto como se ha determinado por completo el número total de DTC correspondientes, la función devuelve
E_OK([SWS_Dem_00874]). - Interrupción: Si el proceso de búsqueda debe interrumpirse debido a limitaciones internas, la función devuelve
DEM_PENDING. En este caso, el parámetro de salida no tiene por qué ser válido todavía; una llamada posterior continuará con la determinación tras el elemento interrumpido ([SWS_Dem_00874]). - Códigos de error: La especificación prevé además los valores de estado
DEM_NO_SUCH_ELEMENTyDEM_BUFFER_TOO_SMALL([SWS_Dem_00972]).
En cuanto a la visibilidad, [SWS_Dem_01101] determina que los fallos suprimidos (suppressed DTCs) deben tratarse como si el criterio de filtrado no coincidiera. La función está definida como no reentrante ([SWS_Dem_00972]), por lo que deben evitarse las llamadas simultáneas.
Esta nota de uso ha sido elaborada por una IA y resume los aspectos fundamentales de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00973] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);
Gets the next filtered J1939 DTC.
La función asíncrona y no reentrante Dem_J1939DcmGetNextFilteredDTC (ID de servicio 0x92) lee el siguiente DTC J1939 filtrado desde la memoria de eventos J1939 direccionada a través de ClientId [SWS_Dem_00973]. Está declarada a través del encabezado Dem_J1939Dcm.h [SWS_Dem_00973].
Si la función encuentra un evento que cumple con el criterio de filtrado, devuelve E_OK y proporciona a través de los parámetros de salida el J1939DTC correspondiente así como el OccurenceCounter asociado [SWS_Dem_00877], [SWS_Dem_00973]. Si el contador de ocurrencias es superior a 126 (0x7E), el valor devuelto se limita de forma fija a 126 (0x7E) [SWS_Dem_00877].
Si el proceso de búsqueda debe interrumpirse debido a limitaciones internas o detalles de implementación, la función devuelve DEM_PENDING [SWS_Dem_00877], [SWS_Dem_00973]. En este caso, los parámetros de salida no contienen datos válidos; la siguiente llamada continúa la búsqueda directamente después del elemento interrumpido [SWS_Dem_00877]. Si no hay más elementos coincidentes disponibles, el valor devuelto es DEM_NO_SUCH_ELEMENT; si el búfer es demasiado pequeño, se notifica DEM_BUFFER_TOO_SMALL [SWS_Dem_00973].
Los eventos de diagnóstico suprimidos (suppressed DTCs) no son visibles para la función de consulta; Dem_J1939DcmGetNextFilteredDTC los trata como si el criterio de filtrado no coincidiera [SWS_Dem_01101].
Este texto fue generado automáticamente por una IA y no sustituye a la especificación oficial de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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
La interfaz síncrona Dem_J1939DcmFirstDTCwithLampStatus inicializa el filtrado al primer Diagnostic Trouble Code (DTC) coincidente para la respuesta DM31 de un nodo específico [SWS_Dem_00974]. Como único parámetro de entrada sirve ClientId del tipo uint8, con el que se direcciona la memoria de eventos J1939 correspondiente [SWS_Dem_00974]. La función no posee parámetros de entrada ni de salida y no devuelve ningún valor de retorno (void) [SWS_Dem_00974]. Está declarada a través del archivo de cabecera Dem_J1939Dcm.h con el identificador de servicio 0x93 [SWS_Dem_00974]. Interpretación: Es de suponer que la función es llamada principalmente por el módulo J1939Dcm para inicializar el filtrado antes de la transmisión de los mensajes de estado de lámparas DM31. Pregunta Q-064513be4f06584b (abierta)
Lógica de filtrado e interacción
Cada llamada a la función restablece el contador interno al primer evento al que se le ha asignado un J1939DTC para el ClientId especificado [SWS_Dem_00880]. Con respecto al estado de los eventos de diagnóstico, la especificación establece que un DTC suprimido (suppressed DTC) debe permanecer invisible para las funciones de consulta de DCM [SWS_Dem_01101]. En consecuencia, Dem_J1939DcmFirstDTCwithLampStatus trata los DTC suprimidos como si el criterio de filtrado no se cumpliera [SWS_Dem_01101].
Concurrencia y restricciones
En cuanto al comportamiento de concurrencia, la interfaz es reentrante para llamadas con diferentes valores de ClientId, pero no es reentrante para el mismo valor de ClientId [SWS_Dem_00974]. Por lo tanto, no se permiten consultas paralelas a través de identificadores de cliente idénticos a la misma memoria de eventos J1939.
Este texto fue generado automáticamente por un asistente de curación por IA.
Guía del implementador pendiente (complejidad I1)
función 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.
Uso y contexto de llamada
La función Dem_J1939DcmGetNextDTCwithLampStatus se ejecuta de forma síncrona y no es reentrante ([SWS_Dem_00975]). Sirve, en el marco de la comunicación de diagnóstico J1939 (DM31), para consultar de forma iterativa el siguiente DTC J1939 filtrado junto con el estado de lámpara correspondiente y el contador de eventos (OccurenceCounter) desde la memoria de eventos direccionada a través de ClientId ([SWS_Dem_00975]). La iteración presupone que la memoria de eventos se haya preparado previamente mediante Dem_J1939DcmFirstDTCwithLampStatus ([SWS_Dem_00881]).
Flujo y valores de retorno
Cada llamada busca en la memoria el siguiente evento con DTC J1939 asignado ([SWS_Dem_00881]). Los DTC suprimidos (suppressed DTC) se tratan como eventos no coincidentes y se omiten ([SWS_Dem_01101]).
-
E_OK: Se encontró un evento coincidente. Los parámetrosLampStatus,J1939DTCyOccurenceCountercontienen valores válidos ([SWS_Dem_00882]). Interpretación: La condiciónDEM_FILTERED_OKmencionada en la especificación de parámetros probablemente se refiera aE_OK, ya queDEM_FILTERED_OKno está declarado como valor de retorno para esta función ([SWS_Dem_00975]). Pregunta Q-5284fb30b98babf6 (abierta) -
DEM_PENDING: La búsqueda interna tuvo que interrumpirse debido a límites de implementación. Los parámetros de salida no contienen datos válidos y la siguiente llamada continuará la búsqueda tras el elemento interrumpido ([SWS_Dem_00882]). -
DEM_NO_SUCH_ELEMENT: No hay más eventos coincidentes presentes en la memoria; los parámetros de salida no son válidos ([SWS_Dem_00881]). -
DEM_BUFFER_TOO_SMALL: El búfer transferido es demasiado pequeño ([SWS_Dem_00975]).
Estado de las lámparas y rango de valores
Para la determinación del estado de las lámparas, el DEM comprueba el bit 7 de estado UDS (WarningIndicator), así como la respectiva referencia de indicador: la Malfunction Indicator Lamp ([SWS_Dem_00883]), la Red Stop Lamp ([SWS_Dem_00887]) y la Amber Warning Lamp ([SWS_Dem_00891]) se establecen respectivamente en Lamp On si el bit está activo y la referencia está asignada; en caso contrario, valen Lamp Off. El OccurenceCounter se limita exactamente a 126 en caso de valores de contador superiores a 126 (0x7F) ([SWS_Dem_00882]).
Esta nota de uso se generó de forma automatizada sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
La función Dem_J1939DcmClearDTC ([SWS_Dem_00976]) se proporciona al módulo J1939Dcm a través del encabezado Dem_J1939Dcm.h para borrar de la memoria de eventos todos los códigos de diagnóstico de fallas (DTC) activos o previamente activos ([SWS_Dem_00878]). La llamada opera de forma asíncrona. Como parámetros de entrada, la interfaz espera el tipo de filtro DTCTypeFilter para determinar los DTC que se van a borrar, DTCOrigin para la selección de la memoria de origen, así como la ClientId para direccionar la memoria de eventos de J1939.
Tratamiento de errores y valores de retorno
El resultado de la ejecución se señaliza a través del tipo de retorno Std_ReturnType:
E_OK: El proceso de eliminación se completó con éxito.DEM_PENDING: La limpieza está en curso; la entidad llamante debe volver a llamar a la función en un momento posterior.DEM_CLEAR_BUSY: Otro cliente está ejecutando simultáneamente una operación de borrado; la operación no se inicia y debe repetirse más tarde.DEM_WRONG_DTC: El DTC seleccionado no existe en el formato elegido o el borrado está restringido a grupos por configuración.DEM_WRONG_DTCORIGIN: La memoria de origen indicada no existe.DEM_CLEAR_FAILEDoDEM_CLEAR_MEMORY_ERROR: El borrado falló o se produjo un error al borrar un área de memoria (p. ej., en caso de borrado incompleto de la memoria no volátil).
Concurrencia y restricciones
Según [SWS_Dem_00976], la función es reentrante para diferentes Client-ID, pero no reentrante para la misma ClientId. Por lo tanto, no se permiten llamadas de borrado paralelas mediante clientes idénticos.
Interacción
Según [SWS_Dem_00879], el borrado restablece el estado de todos los eventos afectados y elimina las entradas correspondientes de la memoria de eventos. Además, según [SWS_Dem_00878], el proceso de borrado inicia una reinicialización de las SW-C y los módulos BSW afectados de acuerdo con [SWS_Dem_00003].
Este texto se generó automáticamente a partir de la especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función síncrona Dem_J1939DcmSetFreezeFrameFilter sirve para establecer el filtro de Freeze Frame para un nodo específico a través de la cabecera Dem_J1939Dcm.h [SWS_Dem_00977]. Configura los atributos de máscara de filtrado para consultas posteriores mediante Dem_J1939DcmGetNextFreezeFrame y restablece con ello un contador interno al primer Freeze Frame [SWS_Dem_00899].
Parámetros y valores de retorno
FreezeFrameKind: Determina el tipo de filtro [SWS_Dem_00977]. Los tipos disponibles sonDEM_J1939DCM_FREEZEFRAME(filtrado de los datos enDemJ1939FreezeFrameClassRef),DEM_J1939DCM_EXPANDED_FREEZEFRAME(filtrado de los datos enDemJ1939ExpandedFreezeFrameClassRef) así comoDEM_J1939DCM_SPNS_IN_EXPANDED_FREEZEFRAME([SWS_Dem_00977], [SWS_Dem_00899]).ClientId: Transfiere el identificador para direccionar la memoria de eventos J1939 [SWS_Dem_00977].- Valor de retorno: Devuelve
E_OKen caso de ejecución correcta oE_NOT_OKsi no se pudo establecer el filtro [SWS_Dem_00977].
Concurrencia y validez
En cuanto a la concurrencia, la función es reentrante para distintos valores de ClientId, pero no es reentrante para valores idénticos de ClientId [SWS_Dem_00977]. Los atributos de máscara de filtrado configurados permanecen vigentes tras la llamada hasta que se realice una nueva llamada a Dem_J1939DcmSetFreezeFrameFilter o se vuelva a inicializar el módulo DEM [SWS_Dem_00899].
Este texto fue generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I1)
función 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
La función asíncrona y no reentrante Dem_J1939DcmGetNextFreezeFrame lee datos Freeze Frame paso a paso para una memoria de eventos específica [SWS_Dem_00978]. La iteración se orienta según los criterios de filtrado FreezeFrameKind y ClientId previamente establecidos a través de Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00900]. Los datos útiles se copian en el búfer DestBuffer (en el caso de Expanded Freeze Frames sin información de SPN y con bits no utilizados rellenados con 0), mientras que BufSize transfiere el tamaño del búfer y devuelve la cantidad de bytes realmente escrita [SWS_Dem_00978], [SWS_Dem_00903]. Además, la llamada proporciona el J1939DTC correspondiente, así como el OccurenceCounter, el cual se limita a 0x7F para valores superiores a 126 [SWS_Dem_00903].
Valores de retorno y tratamiento de errores
Los valores devueltos controlan el flujo de la iteración:
E_OK: Se encontró y transmitió un registro con éxito [SWS_Dem_00978], [SWS_Dem_00903]. La mención deDEM_FILTERED_OKen la descripción de los parámetros probablemente deba entenderse como un sinónimo editorial deE_OK. Pregunta Q-e941066640c694b9 (abierta)DEM_NO_SUCH_ELEMENT: No existen más registros que correspondan a los criterios de filtrado [SWS_Dem_00900].DEM_PENDING: La búsqueda interna fue interrumpida; la llamada siguiente continúa la búsqueda en el punto interrumpido [SWS_Dem_00902].DEM_BUFFER_TOO_SMALLoDEM_FILTERED_BUFFER_TOO_SMALL: El búfer no es suficiente; la operación se cancela sin transferir datos [SWS_Dem_00978], [SWS_Dem_00903].
Si se transfiere un tipo de filtro no compatible, la función notifica el error DET DEM_E_WRONG_CONDITION; exclusivamente son válidos DEM_J1939DCM_FREEZEFRAME y DEM_J1939DCM_EXPANDED_FREEZEFRAME [SWS_Dem_00901]. Siempre que el valor de retorno sea distinto de éxito, los parámetros de salida no contienen datos válidos [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].
Restricciones e interacción
La consulta ignora los DTC suprimidos y los trata como criterios de filtrado no coincidentes [SWS_Dem_01101].
Esta nota de uso se generó de manera automatizada y se basa exclusivamente en la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);
Gets next SPN.
Uso y semántica
La función Dem_J1939DcmGetNextSPNInFreezeFrame lee paso a paso el siguiente SPN (Suspect Parameter Number) del Freeze Frame ampliado ([SWS_Dem_00979]). Cada llamada itera al siguiente elemento de la definición de SPN para la memoria de eventos direccionada a través de ClientId ([SWS_Dem_00904]). En caso de localización correcta, la llamada devuelve E_OK, así como el SPN encontrado a través de SPNSupported y su longitud de datos a través de SPNDataLength ([SWS_Dem_00979], [SWS_Dem_00907]).
Procesamiento asíncrono y valores de retorno
La operación está especificada como asíncrona ([SWS_Dem_00979]). Si el proceso de búsqueda debe interrumpirse debido a limitaciones internas, la función devuelve DEM_PENDING; en este caso, los parámetros de salida no son obligatoriamente válidos y la llamada siguiente continúa la búsqueda en el punto interrumpido ([SWS_Dem_00905]). Si no hay más SPN presentes en la definición, se notifica DEM_NO_SUCH_ELEMENT, por lo que los parámetros de salida tampoco tienen que ser válidos obligatoriamente ([SWS_Dem_00904]). Si el búfer proporcionado es insuficiente, la interfaz notifica DEM_BUFFER_TOO_SMALL ([SWS_Dem_00979]).
Tratamiento de errores y concurrencia
Si se solicita un tipo de Freeze Frame no admitido, el módulo desencadena el error DET DEM_E_WRONG_CONDITION; exclusivamente Dem_SPNsInExpandedFreezeFrame es válido ([SWS_Dem_00906]). Dado que la función está definida como no reentrante ([SWS_Dem_00979]), no debe ser llamada de forma concurrente para el mismo contexto. El archivo de cabecera Dem_J1939Dcm.h proporciona la interfaz ([SWS_Dem_00979]).
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función síncrona Dem_J1939DcmSetRatioFilter establece el filtro de ratios para un nodo J1939 específico e inicializa el filtrado de relaciones IUMPR según [SWS_Dem_00980]. Para ello, restablece un contador interno al primer SPN válido con DemRatioId definida, a fin de preparar la consulta posterior paso a paso a través de Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00912].
A través de los parámetros de salida, la función proporciona valores de contador de nivel superior:
IgnitionCycleCounter: Proporciona el contador de ciclos de encendido según SAE J1939-73 (capítulo 5.7.20.1) [SWS_Dem_00912].OBDMonitoringConditionsEncountered: Proporciona el contador de condiciones de monitorización OBD ocurridas según SAE J1939-73 (capítulo 5.7.20.2), definido por CARB como General Denominator [SWS_Dem_00912].ClientId: Identifica al cliente llamante para direccionar la memoria de eventos J1939 [SWS_Dem_00980].
En cuanto a la concurrencia, la función es reentrante para diferentes valores de ClientId, pero no es reentrante para el mismo ClientId [SWS_Dem_00980]. Interpretación: La llamada normalmente debería producirse de manera síncrona desde el flujo del J1939-Diagnostic-Communication-Manager (J1939Dcm) para consultar datos de diagnóstico IUMPR. Pregunta Q-e577651b88f64132 (abierta) Si el filtro se establece con éxito, la función devuelve E_OK; si el establecimiento falla, se notifica E_NOT_OK [SWS_Dem_00980].
En la interacción con eventos de diagnóstico, se aplica que los DTC suprimidos no deben ser visibles para funciones de consulta como Dem_J1939DcmSetRatioFilter y deben tratarse como si el filtro no coincidiera [SWS_Dem_01101].
Esta nota de uso se generó automáticamente a partir de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00981] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);
Gets the next filtered Ratio.
usar
La función síncrona y no reentrante Dem_J1939DcmGetNextFilteredRatio ([SWS_Dem_00981]) sirve para la lectura iterativa de la siguiente relación (Ratio) IUMPR filtrada. A través del parámetro ClientId se direcciona la memoria de eventos J1939 correspondiente. En caso de llamada correcta, la función entrega a través de los parámetros de salida SPN, Numerator y Denominator el Suspect Parameter Number, así como el numerador y el denominador del monitor del sistema aplicable ([SWS_Dem_00981]).
Secuencia e interacción
Para una iteración correcta, el filtro debe inicializarse previamente a través de Dem_J1939DcmSetRatioFilter ([SWS_Dem_00912]). Esta llamada restablece un contador interno al primer SPN válido con DemRatioId definida, sobre el cual se basan las llamadas subsiguientes a Dem_J1939DcmGetNextFilteredRatio. Un DTC suprimido no es visible para la consulta y se trata como si el filtro no coincidiera ([SWS_Dem_01101]).
Valores de retorno y tratamiento de errores
Según [SWS_Dem_00981], se definen los siguientes valores de retorno:
E_OK: La operación se realizó con éxito. Solo en este casoSPN,NumeratoryDenominatorcontienen datos válidos (la mención deDEM_FILTERED_OKen la descripción de parámetros probablemente representa una interpretación deE_OK). Pregunta Q-57774bbc88fe3c0b (abierta)DEM_NO_SUCH_ELEMENT: No hay más elementos coincidentes disponibles.DEM_PENDING: La operación se realizó con éxito, pero el resultado aún está pendiente.DEM_BUFFER_TOO_SMALL: El búfer transferido es demasiado pequeño.
concurrencia
Dado que la función está declarada como no reentrante ([SWS_Dem_00981]), no debe ser llamada de forma concurrente para el mismo ClientId.
Este texto ha sido generado por una IA y sirve como guía orientativa. Las especificaciones de AUTOSAR referenciadas son determinantes.
Guía del implementador pendiente (complejidad I1)
función 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.
La interfaz síncrona Dem_J1939DcmReadDiagnosticReadiness1 (incluida en el estándar clásico bajo Dem_J1939DcmReadDiagnosticReadiness) sirve para consultar el valor de Diagnostic Readiness 1 (DM05) calculado por el Diagnostic Event Manager [SWS_Dem_00982]. Está declarada a través del archivo de cabecera Dem_J1939Dcm.h y posee el Service ID 0x9b [SWS_Dem_00982].
Uso y parámetros
La llamada se realiza de forma síncrona y utiliza los siguientes parámetros de función [SWS_Dem_00982]:
ClientId(IN,uint8): Identifica la memoria de eventos J1939 (J1939 event memory) que se va a direccionar [SWS_Dem_00982].DataValue(OUT, puntero aDem_J1939DcmDiagnosticReadiness1Type): Apunta a un búfer de 8 bytes de tamaño en el que el DEM escribe el contenido calculado de Diagnostic Readiness 1 (DM05) [SWS_Dem_00982].
Valores de retorno y tratamiento de errores
La función devuelve un estado del tipo Std_ReturnType [SWS_Dem_00982]:
E_OK: El servicio se ejecutó con éxito y los datos de readiness se guardaron en el búfer de salida [SWS_Dem_00982].E_NOT_OK: La operación ha fallado [SWS_Dem_00982]. En la especificación de la función no se detallan códigos de error específicos, eventos DEM ni mensajes DET [SWS_Dem_00982].
Concurrencia y restricciones
En cuanto al acceso simultáneo, el servicio está especificado como reentrante para diferentes ClientId, pero definido expresamente como no reentrante para el mismo ClientId [SWS_Dem_00982].
Esta nota de uso se generó automáticamente a partir de datos de especificación de AUTOSAR R20-11.
función 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.
La función síncrona Dem_J1939DcmReadDiagnosticReadiness2 (Service ID 0x9c) sirve para consultar el valor de Diagnostic Readiness 2 (DM21) calculado por el DEM [SWS_Dem_00983]. La interfaz se pone a disposición a través del archivo de cabecera Dem_J1939Dcm.h [SWS_Dem_00983].
Para la llamada se definen dos parámetros [SWS_Dem_00983]:
ClientId(entrada): direcciona la memoria de eventos J1939 correspondiente [SWS_Dem_00983].DataValue(salida): puntero a un búfer de 8 bytes de tipoDem_J1939DcmDiagnosticReadiness2Typepara recibir los datos DM21 calculados [SWS_Dem_00983].
Como valor de retorno, la función proporciona Std_ReturnType; si la consulta se realiza correctamente, se devuelve E_OK, mientras que en caso de error se notifica E_NOT_OK [SWS_Dem_00983]. No se especifican por separado causas de error específicas; con E_NOT_OK, el llamador probablemente deba asumir que el búfer no contiene datos válidos. Pregunta Q-97b94d15a8634712 (abierta)
En cuanto a la concurrencia, el servicio es reentrante para diferentes valores de ClientId, pero no es reentrante para la misma ClientId [SWS_Dem_00983]. Por lo tanto, las llamadas simultáneas para la misma ClientId deben serializarse en el contexto llamador.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
función 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.
El servicio Dem_J1939DcmReadDiagnosticReadiness (especificado en la signatura como Dem_J1939DcmReadDiagnosticReadiness3) sirve para la lectura síncrona de los datos de Diagnostic Readiness 3 (DM26) determinados por el DEM [SWS_Dem_00770]. La declaración se proporciona a través del archivo de cabecera Dem_J1939Dcm.h [SWS_Dem_00770]. A juzgar por el nombre de la interfaz, la llamada debería realizarse principalmente a través del módulo J1939Dcm. Pregunta Q-dc204541dfc23d6b (abierta)
La interfaz espera dos parámetros [SWS_Dem_00770]:
ClientId(in): Direcciona la respectiva memoria de eventos J1939 [SWS_Dem_00770].DataValue(out): Puntero a un búfer de 8 bytes del tipoDem_J1939DcmDiagnosticReadiness3Typepara recibir los datos DM26 calculados [SWS_Dem_00770].
Como valor de retorno, la función devuelve E_OK si la operación se realizó con éxito, o E_NOT_OK en caso de error durante la ejecución [SWS_Dem_00770].
En cuanto a la concurrencia, la función es reentrante para distintos valores de ClientId, pero no es reentrante para valores idénticos de ClientId [SWS_Dem_00770]. Por lo tanto, el llamador debe excluir o sincronizar las llamadas paralelas para el mismo cliente.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
función 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)
función 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
La función síncrona Dem_RepIUMPRFaultDetect sirve para notificar que un monitor OBD ha cumplido todas las condiciones de ejecución y, por tanto, habría podido detectar posibles fallos [SWS_Dem_00313]. La interfaz se suministra a través de la cabecera Dem.h y está disponible exclusivamente en unidades de control con compatibilidad con OBD, siempre que DemOBDSupport no esté configurado como DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00313], [SWS_Dem_00360].
Como parámetro se transmite el identificador RatioID del tipo Dem_RatioIdType cuando está seleccionada la opción de interfaz «API» [SWS_Dem_00313]. En caso de registro correcto del resultado de IUMPR, la función devuelve el estado E_OK [SWS_Dem_00313].
Concurrencia y comportamiento ante errores
En cuanto a la concurrencia, el servicio es reentrante para diferentes identificadores RatioID, pero no reentrante para el mismo valor RatioID [SWS_Dem_00313]. Por consiguiente, el invocador debe evitar llamadas concurrentes con un identificador idéntico.
Si un evento correspondiente se establece como no disponible, el módulo DEM lo trata como si no estuviera configurado en el sistema [SWS_Dem_01108]. Dem_RepIUMPRFaultDetect también se ve explícitamente afectado por esta desactivación [SWS_Dem_01108]; interpretación: en este estado, es probable que la llamada devuelva E_NOT_OK de forma análoga a las demás APIs de estado afectadas. Pregunta Q-6d1775c9bff08f42 (abierta)
Este texto ha sido generado por una IA basándose en la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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)
función 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)
función 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)
La función síncrona y reentrante Dem_RepIUMPRDenRelease sirve para habilitar el denominador de un monitor específico por razones físicas, tales como alcanzar determinadas condiciones de temperatura o una actividad mínima [SWS_Dem_00315]. El DEM proporciona esta interfaz para componentes de software (SW-C) relevantes para IUMPR a fin de controlar de manera específica el denominador perteneciente al RatioID correspondiente [SWS_Dem_00308].
La provisión y el comportamiento de la función están sujetos a condiciones fijas de configuración y tiempo de ejecución:
- Disponibilidad y configuración: la API está disponible exclusivamente en unidades de control relevantes para OBD cuando
DemOBDSupportestá configurado como distinto deDEM_OBD_NO_OBD_SUPPORT[SWS_Dem_00315]. Además, la interfaz para la habilitación en condiciones especiales se suministra en caso de queDemIUMPRDenGroupesté configurado comoDEM_IUMPR_DEN_PHYS_API[SWS_Dem_00362]. - Parámetros y valores de retorno: como parámetro de entrada se transmite el identificador
RatioID. La función devuelveE_OKsi el estado del denominador IUMPR se notificó con éxito; en caso contrario, devuelveE_NOT_OK[SWS_Dem_00315]. - Comportamiento ante errores con eventos inactivos: si un evento correspondiente se establece como no disponible, se trata como si no estuviera configurado en el sistema; la invocación de
Dem_RepIUMPRDenReleasese ve directamente afectada por ello y devuelveE_NOT_OK[SWS_Dem_01108].
Gracias al diseño reentrante, la función puede invocarse de forma concurrente desde diferentes contextos de SW-C en caso necesario [SWS_Dem_00315].
Este texto ha sido generado por una IA y no sustituye a la especificación vinculante de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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
La función síncrona Dem_SetPtoStatus ([SWS_Dem_00627]) sirve para establecer el estado de la toma de fuerza (Power Take-Off, PTO) en el Diagnostic Event Manager (DEM). La interfaz está declarada en el encabezado Dem.h y posee el ID de servicio 0x79 ([SWS_Dem_00627]).
- Parámetros: El parámetro de entrada
PtoStatus(tipoboolean) pasa el estado de la toma de fuerza, dondeTRUErepresenta activo yFALSEinactivo ([SWS_Dem_00627]). No existen parámetros de entrada/salida ni parámetros de salida. - Valor de retorno: El tipo de retorno es
Std_ReturnType. La función devuelveE_OKsi el DEM ha adoptado el nuevo estado de la PTO, yE_NOT_OKen todos los demás casos ([SWS_Dem_00627]).
Concurrencia y restricciones
La función opera de forma síncrona y está especificada como no reentrante (Non Reentrant) ([SWS_Dem_00627]).
Contexto del sistema y configuración
La interfaz se requiere exclusivamente en unidades de control relevantes para OBD ([SWS_Dem_00627]). Solo está disponible si el parámetro de configuración DemGeneral.DemOBDSupport no está establecido en DEM_OBD_NO_OBD_SUPPORT ([SWS_Dem_00627]).
Este texto ha sido generado por una IA y se basa en las especificaciones del módulo DEM en AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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
Uso y parámetros
La función síncrona Dem_ReadDataOfPID01 (identificador de servicio 0xb3) sirve para consultar el valor del PID $01 calculado por el Diagnostic Event Manager (DEM) [SWS_Dem_01167]. La interfaz se proporciona a través de la cabecera Dem.h [SWS_Dem_01167]. Como parámetro de salida, la función espera PID01value, que se pasa como un puntero a un búfer [SWS_Dem_01167]. La aplicación llamante debe obligatoriamente asignar y proporcionar este búfer con un tamaño fijo de 4 bytes para recibir los datos calculados [SWS_Dem_01167].
Tratamiento de errores y valores de retorno
Como tipo de retorno, la interfaz proporciona formalmente Std_ReturnType, pero devuelve E_OK sin excepción según la especificación [SWS_Dem_01167]. El valor de error E_NOT_OK nunca se produce [SWS_Dem_01167]. Para esta interfaz no se especifican códigos de error específicos ni mensajes al DET o DEM [SWS_Dem_01167].
Concurrencia y restricciones
La función está especificada como no reentrante (Non Reentrant) [SWS_Dem_01167]. Por lo tanto, los llamantes deben asegurarse de que no se produzcan llamadas simultáneas. Además, la API está limitada funcionalmente y solo se requiere en unidades de control con relevancia OBD [SWS_Dem_01167].
Esta nota de uso ha sido generada automáticamente sobre la base de la especificación AUTOSAR R20-11.
función 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)
función 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)
función 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)
función 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)
función 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)
función 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)
función 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.
función Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF
Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);
Gets the DTC Severity availability mask.
función 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
función 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)
función 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
El Diagnostic Event Manager (DEM) llama a la función de callback Dem_CallbackEventSyncStorageProcessed de forma síncrona tan pronto como concluye el procesamiento interno de Dem_SetEventFailedWithSyncFreezeFrame ([SWS_Dem_91042]). Informa al componente llamador de que el DEM puede procesar otra llamada a Dem_SetEventFailedWithSyncFreezeFrame para el mismo ID de evento ([SWS_Dem_91042]).
Para el uso y la integración se aplican las siguientes propiedades de interfaz y ejecución:
- Parámetros y valor de retorno: la interfaz no tiene parámetros de entrada, de salida ni de entrada/salida ([SWS_Dem_91042]). El tipo de retorno es
Std_ReturnType, donde, por razones de compatibilidad con la RTE, únicamente es admisible y se proporciona el valor de retornoE_OK([SWS_Dem_91042]). - Concurrencia: la función está especificada como reentrante ([SWS_Dem_91042]).
- Tratamiento de errores: no se prevén códigos de error específicos ni mensajes al seguimiento de errores de desarrollo (DET) ([SWS_Dem_91042]).
En cuanto a la interacción y la configuración, existe un requisito fijo: Dem_CallbackEventSyncStorageProcessed solo debe configurarse para eventos de diagnóstico cuyo parámetro DemEventReportingType esté ajustado a IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING ([SWS_Dem_01356]). Además, en la release R20-11 el elemento está anotado con el estado draft ([SWS_Dem_91042], [SWS_Dem_01356]).
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad I2)
función Dem_MainFunction [SWS_Dem_00266] 📄 PDF
void Dem_MainFunction (void);
Processes all not event based Dem internal functions.
La función básica Dem_MainFunction posee la firma void Dem_MainFunction(void) con el Service-ID 0x55 y se proporciona a través del archivo de cabecera SchM_Dem.h ([SWS_Dem_00266]). No recibe parámetros, no devuelve ningún valor de retorno y sirve para ejecutar todos los procesos internos no basados en eventos del módulo DEM ([SWS_Dem_00266], [SWS_Dem_00125]).
Para el contexto de llamada y el tratamiento de errores rigen excepciones particulares en el ciclo de vida del módulo: si la detección de desarrollo DemDevErrorDetect está configurada en TRUE, la llamada a interfaces regulares del DEM antes de la inicialización completa provoca la notificación del error DEM_E_UNINIT; sin embargo, Dem_MainFunction está expresamente exenta de esta generación de errores ([SWS_Dem_00124]). De la misma manera, tras la llamada a Dem_Shutdown, la función está exenta de la notificación de error DEM_E_UNINIT hasta que se vuelva a llamar a Dem_Init ([SWS_Dem_00368]).
En interacción con la memoria de fallos, la función controla de forma determinante la adquisición y el almacenamiento en búfer de los datos de diagnóstico:
- Si
DemEnvironmentDataCaptureestá configurado enDEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING(referido aDemPrimaryMemoryoDemUserDefinedMemory), los datos de Freeze Frame específicos del evento ([SWS_Dem_00461]) y los registros de datos extendidos ([SWS_Dem_01081]) deben adquirirse a más tardar en el siguiente ciclo deDem_MainFunction. - Si
DemEnvironmentDataCaptureestá ajustado aDEM_CAPTURE_SYNCHRONOUS_TO_REPORTING, el módulo DEM pone en cola los datos de entorno hasta la siguiente llamada deDem_MainFunction([SWS_Dem_01083]). El módulo almacena en búfer al menos la cantidad configurada conforme aDemMaxNumberEventEntryEventBuffer; si la cola está llena, los datos se adquieren durante el procesamiento de eventos dentro deDem_MainFunction([SWS_Dem_01083]).
Esta nota de uso se generó automáticamente sobre la base de la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad 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.
Uso y rango de valores
El tipo de datos Dem_DTCRequestType se deriva de uint8 y está disponible mediante el encabezado Dem.h [SWS_Dem_00935]. Sirve para solicitar un Diagnostic Trouble Code (DTC) según atributos temporales específicos [SWS_Dem_00935].
El rango de valores permitido comprende los siguientes valores de enumeración [SWS_Dem_00935]:
DEM_FIRST_FAILED_DTC(0x01): Solicita el DTC que cronológicamente falló en primer lugar.DEM_MOST_RECENT_FAILED_DTC(0x02): Solicita el último DTC que falló.DEM_FIRST_DET_CONFIRMED_DTC(0x03): Solicita el DTC detectado primero como confirmado.DEM_MOST_REC_DET_CONFIRMED_DTC(0x04): Solicita el último DTC detectado como confirmado.
Interacción, concurrencia y tratamiento de errores
El tipo se pasa como parámetro de entrada DTCRequest de la función síncrona Dem_GetDTCByOccurrenceTime [SWS_Dem_00218]. Mediante este parámetro se define según qué criterio debe consultarse el DTC [SWS_Dem_00218]. El resultado se devuelve en formato UDS a través del parámetro de salida DTC [SWS_Dem_00218].
La interfaz es reentrante para diferentes llamadores mediante distintos valores de ClientId, pero no es reentrante para el mismo ClientId [SWS_Dem_00218]. Los valores de retorno posibles son E_OK en caso de consulta correcta, E_NOT_OK en caso de errores y DEM_NO_SUCH_ELEMENT si no hay ninguna entrada coincidente almacenada [SWS_Dem_00218]. Si el resultado de la función difiere de DEM_OCCURR_OK, el parámetro DTC no contiene datos válidos [SWS_Dem_00218].
Esta nota de uso fue generada por una IA a partir de la especificación 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.
Uso y rango de valores
El tipo Dem_J1939DcmDTCStatusFilterType es un tipo enumerado basado en uint8 proporcionado mediante el archivo de encabezado Dem.h [SWS_Dem_00945]. Sirve para definir según qué estado J1939 deben diferenciarse y seleccionarse los códigos de diagnóstico de fallas (DTCs) en las operaciones de filtrado [SWS_Dem_00945].
Se especifican los siguientes valores de filtro de estado:
DEM_J1939DTC_ACTIVE(0): Filtra por códigos de falla activos [SWS_Dem_00945].DEM_J1939DTC_PREVIOUSLY_ACTIVE(1): Filtra por códigos de falla previamente activos [SWS_Dem_00945].DEM_J1939DTC_PENDING(2): Filtra por códigos de falla pendientes [SWS_Dem_00945].DEM_J1939DTC_PERMANENT(3): Filtra por códigos de falla permanentes [SWS_Dem_00945].DEM_J1939DTC_CURRENTLY_ACTIVE(4): Filtra por códigos de falla actualmente activos [SWS_Dem_00945].
Interacción y contexto de llamada
El tipo de filtro se utiliza como parámetro de transferencia DTCStatusFilter en la interfaz Dem_J1939DcmSetDTCFilter [SWS_Dem_00970]. La función opera de forma síncrona y ajusta el filtro teniendo en cuenta la categoría de fallas (DTCKind), el origen de la memoria (DTCOrigin) y el respectivo ClientId para la memoria de eventos J1939 [SWS_Dem_00970]. A modo de interpretación, la llamada suele proceder típicamente del administrador de comunicación de diagnóstico para J1939.
Pregunta Q-898d508b7b341ef8 (abierta)
Concurrencia y tratamiento de errores
El servicio Dem_J1939DcmSetDTCFilter es reentrante para distintos valores de ClientId, pero explícitamente no reentrante para el mismo ClientId [SWS_Dem_00970]. El servicio confirma una configuración de filtrado exitosa con el valor de retorno E_OK [SWS_Dem_00970].
Este texto fue elaborado por una IA basándose en los documentos de especificación.
Guía del implementador pendiente (complejidad 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
El tipo de estructura Dem_J1939DcmLampStatusType está declarado según [SWS_Dem_00948] en Dem.h y sirve para adquirir el estado de las lámparas J1939 según SAE J1939-73. La estructura de datos agrupa dos informaciones de estado como elementos uint8: LampStatus para el estado actual de la lámpara y FlashLampStatus para el comportamiento de parpadeo asociado.
En el filtrado de DTCs J1939 del Diagnostic Event Manager, el tipo actúa como parámetro de salida de tipo puntero en dos interfaces síncronas:
- A través de
Dem_J1939DcmSetDTCFilter([SWS_Dem_00970]), al inicializar el filtro de DTC para una memoria de eventos J1939 específica (direccionada medianteClientId), se consulta el estado inicial de las lámparas. - A través de
Dem_J1939DcmGetNextDTCwithLampStatus([SWS_Dem_00975]), la estructura se llena de forma iterativa con el estado de lámpara correspondiente para cada entrada coincidente de la memoria de fallas.
En el tratamiento de errores es obligatorio tener en cuenta que, según [SWS_Dem_00975], Dem_J1939DcmGetNextDTCwithLampStatus solo escribe valores válidos en el parámetro de salida si el valor de retorno de la función es DEM_FILTERED_OK. Si la llamada proporciona un valor de retorno diferente, la estructura no contendrá datos válidos.
En cuanto a la concurrencia y las condiciones de llamada, la estructura no posee protección interna propia. La reentrancia se rige según el contexto de llamada correspondiente: Dem_J1939DcmSetDTCFilter es reentrante para diferentes IDs de cliente, pero no es reentrante para el mismo ClientId ([SWS_Dem_00970]). La consulta iterativa a través de Dem_J1939DcmGetNextDTCwithLampStatus está especificada como completamente no reentrante ([SWS_Dem_00975]).
Este texto fue generado por una IA y se basa en las especificaciones del release R20-11 de AUTOSAR.
Guía del implementador pendiente (complejidad 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
La estructura Dem_J1939DcmDiagnosticReadiness1Type representa todos los elementos de datos del mensaje de diagnóstico J1939 DM05 y está definida en el archivo de encabezado Dem.h según [SWS_Dem_00949]. La codificación de los campos se realiza conforme a SAE J1939-73 [SWS_Dem_00949].
La estructura comprende ocho campos de datos del tipo uint8, que en conjunto constituyen un búfer de 8 bytes para la preparación de diagnóstico 1 (Diagnostic Readiness 1) [SWS_Dem_00949], [SWS_Dem_00982]:
ActiveTroubleCodes: Cantidad de DTCs activos [SWS_Dem_00949].PreviouslyActiveDiagnosticTroubleCodes: Cantidad de DTCs previamente activos [SWS_Dem_00949].OBDCompliance: Conformidad OBD [SWS_Dem_00949].ContinuouslyMonitoredSystemsSupport_Status: Soporte y estado de sistemas monitorizados continuamente [SWS_Dem_00949].NonContinuouslyMonitoredSystemsSupport5yNonContinuouslyMonitoredSystemsSupport6: Soporte de sistemas monitorizados de forma no continua (bytes 5 y 6) [SWS_Dem_00949].NonContinuouslyMonitoredSystemsStatus7yNonContinuouslyMonitoredSystemsStatus8: Estado de sistemas monitorizados de forma no continua (bytes 7 y 8) [SWS_Dem_00949].
La interacción primaria tiene lugar con la API síncrona Dem_J1939DcmReadDiagnosticReadiness1 (disponible a través de Dem_J1939Dcm.h) [SWS_Dem_00982]. Los llamadores pasan un puntero a una instancia de Dem_J1939DcmDiagnosticReadiness1Type mediante el parámetro de salida DataValue junto con la ClientId respectiva para la memoria de eventos J1939 [SWS_Dem_00982].
Respecto a la concurrencia y al tratamiento de errores en el acceso de lectura: la función consultora devuelve E_OK en caso de cálculo y provisión correctos de los valores DM05 por parte del DEM, así como E_NOT_OK en caso de error [SWS_Dem_00982]. El acceso es reentrante para distintos valores de ClientId, pero no reentrante para la misma ClientId [SWS_Dem_00982]. Por lo tanto, probablemente sea necesario proteger las instancias de este tipo frente a llamadas simultáneas en el contexto del mismo cliente. Pregunta Q-7613ded1aa18fd2b (abierta)
Este texto fue creado por una IA. Las referencias provienen exclusivamente de las especificaciones de la versión 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
El tipo de estructura Dem_J1939DcmDiagnosticReadiness2Type representa los elementos de datos del mensaje de diagnóstico DM21 (Diagnostic Readiness 2) según SAE J1939-73 y se declara mediante el archivo de encabezado Dem.h [SWS_Dem_00950]. La estructura agrupa cuatro contadores de 16 bits (uint16) en un búfer de 8 bytes [SWS_Dem_00950], [SWS_Dem_00983]:
DistanceTraveledWhileMILisActivated: Distancia acumulada en kilómetros con el indicador de mal funcionamiento (MIL) activado [SWS_Dem_00950].DistanceSinceDTCsCleared: Distancia acumulada desde el restablecimiento de códigos de diagnóstico de fallas (DTCs) relacionados con emisiones [SWS_Dem_00950].MinutesRunbyEngineWhileMILisActivated: Tiempo acumulado de funcionamiento del motor en minutos con MIL activa [SWS_Dem_00950].TimeSinceDiagnosticTroubleCodesCleared: Tiempo acumulado de funcionamiento del motor desde el borrado de DTCs relacionados con emisiones [SWS_Dem_00950].
Este tipo se utiliza como búfer de salida DataValue del servicio síncrono Dem_J1939DcmReadDiagnosticReadiness2, definido en Dem_J1939Dcm.h [SWS_Dem_00983]. Al realizar la llamada, el J1939-DCM pasa un ClientId para direccionar la memoria de eventos específica en el DEM [SWS_Dem_00983]. La función determina los valores actuales de los contadores y confirma la provisión exitosa con el valor de retorno E_OK o bien señala errores con E_NOT_OK [SWS_Dem_00983].
En cuanto a la concurrencia, el servicio de lectura es reentrante para valores de ClientId diferentes, pero no reentrante para valores de ClientId idénticos [SWS_Dem_00983].
Esta nota de uso fue generada automáticamente por una IA. Todas las afirmaciones se basan exclusivamente en el alcance de las especificaciones proporcionadas de 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
El tipo de estructura Dem_J1939DcmDiagnosticReadiness3Type representa, según [SWS_Dem_00951], todos los elementos de datos del mensaje de diagnóstico DM26 (Diagnostic Readiness 3). La codificación de los campos contenidos se rige con carácter vinculante según SAE J1939-73 [SWS_Dem_00951].
La estructura comprende un búfer de datos de 8 bytes y se compone de los siguientes campos individuales [SWS_Dem_00951]:
TimeSinceEngineStart(uint16): Tiempo de funcionamiento del motor desde la activación del encendido.NumberofWarmupsSinceDTCsCleared(uint8): Número de ciclos de calentamiento OBD desde el borrado de todos los códigos de falla.ContinuouslyMonitoredSystemsEnableCompletedStatus(uint8): Estado de habilitación y de finalización de sistemas monitorizados continuamente.NonContinuouslyMonitoredSystemsEnableStatus5yNonContinuouslyMonitoredSystemsEnableStatus6(uint8cada uno): Estado de habilitación de monitores no continuos en el ciclo actual (bytes 5 y 6).NonContinuouslyMonitoredSystems7yNonContinuouslyMonitoredSystems8(uint8cada uno): Estado de finalización de monitores no continuos en el ciclo actual (bytes 7 y 8).
Uso e interacción: una instancia de este tipo se pasa como parámetro de salida DataValue a la función síncrona Dem_J1939DcmReadDiagnosticReadiness3 [SWS_Dem_00770]. El DEM determina los valores DM26 para la ClientId pasada de la memoria de eventos J1939 y proporciona como valor de retorno E_OK en caso de ejecución exitosa o E_NOT_OK en caso de error [SWS_Dem_00770].
Concurrencia y restricciones: la llamada a la función de lectura es reentrante para distintos valores de ClientId, pero no debe realizarse de forma concurrente para la misma ClientId [SWS_Dem_00770]. Presumiblemente, el módulo J1939Dcm actúa como llamador principal. Pregunta Q-e001ad1880fee789 (abierta) El tipo está declarado en Dem.h [SWS_Dem_00951], mientras que el servicio de lectura correspondiente se proporciona mediante Dem_J1939Dcm.h [SWS_Dem_00770].
Esta nota de uso se basa en las especificaciones de AUTOSAR para el 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().
El tipo de datos Dem_DebounceResetStatusType controla el comportamiento de los contadores de desrebote y temporizadores de desrebote internos en el Diagnostic Event Manager [SWS_Dem_00927]. Se define como uint8, está disponible a través del archivo de cabecera Rte_Dem_Type.h y proporciona dos estados de control definidos [SWS_Dem_00927]:
DEM_DEBOUNCE_STATUS_FREEZE(0x00): Congela el contador de desrebote o temporizador de desrebote interno del evento direccionado [SWS_Dem_00927].DEM_DEBOUNCE_STATUS_RESET(0x01): Restablece el contador de desrebote o temporizador de desrebote interno [SWS_Dem_00927].
Los valores en el rango de 0x02 a 0xFF están reservados [SWS_Dem_00927]. El tipo se transfiere como parámetro DebounceResetStatus a la función de servicio Dem_ResetEventDebounceStatus() [SWS_Dem_00683]. Esta llamada se realiza de forma síncrona y controla el estado de desrebote interno sin influir directamente en la cualificación del respectivo evento [SWS_Dem_00683].
En cuanto a la concurrencia, Dem_ResetEventDebounceStatus() es reentrante para distintos valores de EventId, pero no debe invocarse de forma concurrente para el mismo EventId [SWS_Dem_00683]. Los módulos BSW pueden utilizar la interfaz tan pronto como se haya completado la inicialización básica Dem_PreInit [SWS_Dem_00683]. Para componentes de software, la puesta a disposición debería efectuarse a través de interfaces específicas de puerto como DiagnosticMonitor, las cuales permiten la modificación de información de eventos [SWS_Dem_00598]. Pregunta Q-32468003718a4933 (abierta) En caso de error, la función llamadora entrega E_NOT_OK, lo que según la especificación solo ocurre en caso de errores de desarrollo [SWS_Dem_00683].
Esta nota de uso ha sido generada automáticamente sobre la base de los requisitos de la especificación.
Guía del implementador pendiente (complejidad 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().
El tipo de datos Dem_EventStatusType se deriva de uint8 y está disponible a través de la cabecera Rte_Dem_Type.h ([SWS_Dem_00926]). Sirve para que componentes de software (SW-Cs) así como módulos BSW notifiquen los resultados de prueba de un monitor de diagnóstico al DEM ([SWS_Dem_00926], [SWS_Dem_00183]).
El tipo define los siguientes valores de resultado de monitor ([SWS_Dem_00926]):
DEM_EVENT_STATUS_PASSED(0x00) yDEM_EVENT_STATUS_FAILED(0x01): Transmisión de resultados de prueba cualificados (aprobado o fallido).DEM_EVENT_STATUS_PREPASSED(0x02) yDEM_EVENT_STATUS_PREFAILED(0x03): Resultados de prueba de monitor provisionales y no cualificados, cuyo antirrebote se realiza internamente en el DEM.DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED(0x04): Dispara el almacenamiento de FreezeFrames y ExtendedDataRecords al alcanzarse el valor de umbral FDC (ON_FDC_THRESHOLD).- Los rangos de valores de 0x05 a 0xFF están reservados.
El tipo se utiliza como parámetro de entrada EventStatus en las API de BSW Dem_SetEventStatus() ([SWS_Dem_00183]) y Dem_SetEventStatusWithMonitorData() ([SWS_Dem_91037]), así como a través de las interfaces DiagnosticMonitor ([SWS_Dem_00598]) y DiagnosticMonitor_MonitorData ([SWS_Dem_91038]). La invocación se realiza de forma síncrona o asíncrona ([SWS_Dem_00183], [SWS_Dem_91037]).
Las funciones devuelven Std_ReturnType (E_OK en caso de éxito, E_NOT_OK en caso de errores o rechazo), donde los módulos BSW llamantes pueden ignorar el valor de retorno de Dem_SetEventStatus() ([SWS_Dem_00183]). En cuanto a la concurrencia, las llamadas son reentrantes para diferentes EventId, pero no reentrantes para la misma EventId ([SWS_Dem_00183], [SWS_Dem_91037]). Además, la disponibilidad de las API de destino depende de la configuración del parámetro DemEventReportingType ([SWS_Dem_00183], [SWS_Dem_91037]).
Este texto fue generado por una IA y sirve como guía orientativa. El texto vinculante es la especificación AUTOSAR.
Guía del implementador pendiente (complejidad 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
Uso y rango de valores
El tipo de datos Dem_InitMonitorReasonType se basa en uint8 y está disponible a través de Rte_Dem_Type.h [SWS_Dem_00942]. Identifica la causa concreta de una (re)inicialización de un monitor de diagnóstico para que este pueda seleccionar y ejecutar la rutina de inicialización correspondiente para el evento afectado [SWS_Dem_00942] [SWS_Dem_00256].
Para el tipo se han definido los siguientes valores [SWS_Dem_00942]:
DEM_INIT_MONITOR_CLEAR(0x01): El evento de diagnóstico ha sido borrado; se restablecen todos los valores y estados internos.DEM_INIT_MONITOR_RESTART(0x02): Se ha reiniciado el ciclo de operación del evento.DEM_INIT_MONITOR_REENABLED(0x03): Se han vuelto a habilitar las condiciones de habilitación (Enable Conditions) o los ajustes de DTC.DEM_INIT_MONITOR_STORAGE_REENABLED(0x04): Se ha vuelto a activar una condición de almacenamiento (Storage Condition).
Contexto de llamada e interfaces
El valor se pasa de forma síncrona y reentrante como parámetro de entrada InitMonitorReason a través de la retrollamada C específica del evento <Module>_DemInitMonitorFor<EventName>(), declarada en Dem_Externals.h [SWS_Dem_00256]. Si existe una interfaz de puerto hacia el componente de software, la transferencia se efectúa a la operación InitMonitorForEvent de la interfaz de servicio CallbackInitMonitorForEvent [SWS_Dem_00613].
Tratamiento de errores y valores de retorno
En la retrollamada C, el valor de retorno del tipo Std_ReturnType no se utiliza y sirve únicamente para la compatibilidad con la operación correspondiente de la RTE [SWS_Dem_00256]. Si la interfaz se invoca a través de la RTE, la operación InitMonitorForEvent devuelve los valores de error E_OK (éxito) o E_NOT_OK (fallo) [SWS_Dem_00613]. Para este tipo de datos no se han definido códigos de error propios ni mensajes DET/DEM.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad 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
El tipo Dem_IumprDenomCondStatusType se basa en uint8 y define los posibles estados de una condición de denominador de IUMPR adicional para su distribución entre unidades de control relevantes para OBD [SWS_Dem_00944]. El tipo está disponible a través de Rte_Dem_Type.h y comprende los siguientes valores [SWS_Dem_00944]:
DEM_IUMPR_DEN_STATUS_NOT_REACHED(0x00): La condición (aún) no se ha cumplido.DEM_IUMPR_DEN_STATUS_REACHED(0x01): La condición se ha cumplido.DEM_IUMPR_DEN_STATUS_INHIBITED(0x02): La condición está inhibida y no se puede alcanzar.
Los valores en el rango de 0x03 a 0xFF están reservados [SWS_Dem_00944].
Interacción e interfaces de servicio
En el marco de la interfaz de servicio IUMPRDenominatorCondition se transmite el estado para condiciones tales como General Denominator, Cold start, EVAP o 500mi [SWS_Dem_00733] [SWS_Dem_00742]. Existen dos funciones de servicio centrales:
Dem_SetIUMPRDenCondition: Transmite el estado de forma síncrona o asíncrona al DEM de una unidad de control a través del parámetro de entradaConditionStatus[SWS_Dem_00733].Dem_GetIUMPRDenCondition: Consulta el estado de forma síncrona mediante el parámetro de salida de tipo punteroConditionStatusa la unidad de control en la que se calculan las condiciones [SWS_Dem_00734].
Tratamiento de errores y concurrencia
Ambas funciones están especificadas como reentrantes [SWS_Dem_00733] [SWS_Dem_00734]. En caso de ejecución correcta, las APIs devuelven E_OK; si el establecimiento o la consulta fallan o no se puede aceptar la condición, devuelven E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734].
Esta nota de uso fue generada automáticamente por una IA sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad 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().
El tipo de datos Dem_IndicatorStatusType se basa en uint8 y se proporciona a través de Rte_Dem_Type.h [SWS_Dem_00930]. Modela los modos de funcionamiento de indicadores de advertencia derivados del estado UDS [SWS_Dem_00205]. El espectro de estados abarca desde DEM_INDICATOR_OFF (0x00) pasando por DEM_INDICATOR_CONTINUOUS (0x01), DEM_INDICATOR_BLINKING (0x02), DEM_INDICATOR_BLINK_CONT (0x03), DEM_INDICATOR_SLOW_FLASH (0x04), DEM_INDICATOR_FAST_FLASH (0x05) y DEM_INDICATOR_ON_DEMAND (0x06) hasta DEM_INDICATOR_SHORT (0x07) [SWS_Dem_00930].
El tipo se utiliza como parámetro de salida en la función C síncrona Dem_GetIndicatorStatus() [SWS_Dem_00205], así como en la operación GetIndicatorStatus del puerto de servicio IndicatorStatus [SWS_Dem_00606]. Para cada indicador configurado, el componente de servicio DEM proporciona un puerto propio, actuando el respectivo IndicatorId como argumento definido por puerto [SWS_Dem_00606]. El componente de software consultador debería utilizar el estado determinado típicamente para controlar instrumentos indicadores ópticos o acústicos. Pregunta Q-6bfabb33805bd0e8 (abierta)
Los llamadores deben tener en cuenta que Dem_GetIndicatorStatus() está especificado como no reentrante (Non Reentrant) [SWS_Dem_00205]. Además, la API de consulta solo está disponible si en la configuración se ha definido al menos un indicador bajo DemIndicator [SWS_Dem_00205]. La operación notifica el estado de ejecución mediante el valor de retorno Std_ReturnType con E_OK en caso de evaluación correcta o E_NOT_OK en caso de error [SWS_Dem_00205][SWS_Dem_00606].
Este texto ha sido generado por una IA y sirve como guía orientativa en el entorno de AUTOSAR.
Guía del implementador pendiente (complejidad 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#951e175b- Content hash
951e175b- 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 en alemán