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
функция 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)
функция Dem_PreInit [SWS_Dem_00179] 📄 PDF
void Dem_PreInit (void);
Initializes the internal states necessary to process events reported by BSW-modules.
Функция Dem_PreInit служит во время запуска системы для предварительной инициализации внутренних состояний модуля DEM, необходимых для ранней обработки сообщений о событиях из модулей BSW ([SWS_Dem_00179], [SWS_Dem_00180]). Вызов выполняется синхронно, является нереентерабельным и не имеет ни передаваемых параметров, ни возвращаемого значения ([SWS_Dem_00179]).
При вызове Dem_PreInit инициализируются внутренние механизмы устранения дребезга, включая счетчики и таймеры ([SWS_Dem_01213]). Если настроено внутреннее устранение дребезга DEM, модуль сбрасывает соответствующий алгоритм устранения дребезга ([SWS_Dem_00438]).
После успешного завершения Dem_PreInit и до вызова Dem_Init становятся доступными отдельные интерфейсы и режимы поведения:
- Статус события и устранение дребезга: вызовы
Dem_SetEventStatusподдерживаются для устранения дребезга с состояниямиDEM_EVENT_STATUS_PREPASSEDиDEM_EVENT_STATUS_PREFAILED([SWS_Dem_01212]). Однако все события, зарегистрированные доDem_Init, не вызывают колбэков для изменения состояния монитора ([SWS_Dem_01289]). - Управление статусом устранения дребезга: функция
Dem_ResetEventDebounceStatusдля сброса или заморозки счетчиков устранения дребезга доступна модулям BSW после завершенияDem_PreInit([SWS_Dem_00180], [SWS_Dem_00683]). - Пороги подтверждения и рабочие циклы: DEM поддерживает вызовы
Dem_SetEventConfirmationThresholdCounterпослеDem_PreInit([SWS_Dem_01242]). ВызовDem_RestartOperationCycleтакже разрешен только с этого момента; если рабочий цикл перезапускается доDem_Init, фактическая обработка перезапуска выполняется только послеDem_Init([SWS_Dem_01318]).
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dem_Init [SWS_Dem_00181] 📄 PDF
void Dem_Init (const Dem_ConfigType* ConfigPtr);
Initializes or reinitializes this module.
Синхронная, нереэнтрантная функция Dem_Init полностью инициализирует или реинициализирует модуль Diagnostic Event Manager (DEM) согласно [SWS_Dem_00181]. После завершения этого вызова DEM полностью готов к работе ([SWS_Dem_00340]). Через входной параметр ConfigPtr в VARIANT-POST-BUILD передаётся указатель на набор данных конфигурации post-build ([SWS_Dem_00181]).
В рамках процесса инициализации Dem_Init выполняет основные шаги по восстановлению и синхронизации:
- Инициализация состояний и мониторов: состояния мониторов и компонентов инициализируются ([SWS_Dem_01324]). В то время как вызовы
Dem_GetMonitorStatusдо завершения инициализации возвращаютE_NOT_OK([SWS_Dem_01326]),Dem_GetMonitorStatusиDem_GetComponentFailedпосле этого момента возвращаютE_OK([SWS_Dem_01324]). - Энергонезависимая память (NVM): если сконфигурировано (
DemDebounceCounterStorage == True), DEM не позднее чем вDem_Initвосстанавливает внутренний счётчик дебаунсинга ([SWS_Dem_00675]). Также предварительно сконфигурированные данные стоп-кадра загружаются из NVM до возврата из функции ([SWS_Dem_01322]), для чего DEM обращается к API NvM, таким какNvM_ReadBlock([SWS_Dem_00164]). ВызовомDem_Init, кроме того, снимается блокировка памяти событий после предшествующегоDem_Shutdown([SWS_Dem_00102]). - Взаимодействие и буферизация: если
DemTriggerFiMReportsустановлен вTrue,Dem_Initвызывает исключительно в этот момент времениFiM_DemInitдля инициализации прав в Function Inhibition Manager ([SWS_Dem_01189]). События, буферизованные доDem_Init([SWS_Dem_00167], [SWS_Dem_01079]), не вызывают колбэков изменения статуса монитора доDem_Init([SWS_Dem_01289]). Перезапуск цикла, запрошенный доDem_InitчерезDem_RestartOperationCycle, обрабатывается только послеDem_Init([SWS_Dem_01318]).
В отношении обработки ошибок действует следующее: если была вызвана Dem_Shutdown, DEM при активном обнаружении ошибок разработки подтверждает вызовы большинства API ошибкой DEM_E_UNINIT, пока снова не будет выполнена Dem_Init ([SWS_Dem_00368]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dem_Shutdown [SWS_Dem_00182] 📄 PDF
void Dem_Shutdown (void);
Shuts down this module.
Синхронная и нереентерабельная функция Dem_Shutdown служит для штатного останова модуля Diagnostic Event Manager ([SWS_Dem_00182]). Она не имеет ни входных, ни возвращаемых параметров ([SWS_Dem_00182]). Контекст вызова, предположительно, находится в рамках центральной последовательности выключения электронного блока управления. Вопрос Q-a0e6a5700c49d786 (открытый)
При вызове Dem_Shutdown завершает все незавершенные операции модуля DEM, чтобы подготовить внутренние состояния и данные для передачи в NVRAM ([SWS_Dem_00102]). Для измененных энергонезависимых данных DEM инициирует сохранение в NVRAM до или во время Dem_Shutdown ([SWS_Dem_00341]). При необходимости модуль использует для сохранения и восстановления данных между Dem_Init и Dem_Shutdown интерфейсы NvM_WriteBlock и NvM_ReadBlock менеджера NVRAM ([SWS_Dem_00164]). Если модуль DEM был сконфигурирован так, что предварительно сохраненные данные Freeze-Frame сохраняются энергонезависимо, это сохранение выполняется однократно и не позднее чем во время Dem_Shutdown ([SWS_Dem_01321]).
С выполнением останова память событий блокируется и не может изменяться вплоть до повторного вызова Dem_Init ([SWS_Dem_00102]). Кроме того, при включенном обнаружении ошибок разработки (Development Error Detection) действуют следующие условия ошибок:
- Если после
Dem_Shutdownвызывается DEM-API — за исключениемDem_SetEventStatus,Dem_ResetEventDebounceStatus,Dem_GetVersionInfoиDem_MainFunction—, модуль устанавливает код ошибкиDEM_E_UNINITдо следующегоDem_Init([SWS_Dem_00368]). - Если
Dem_SetEventStatusилиDem_ResetEventDebounceStatusвызываются послеDem_Shutdownдля событий, у которыхDemDebounceCounterStorageустановлено вTrue, DEM сообщает о коде ошибкиDEM_E_WRONG_CONDITION([SWS_Dem_00676]).
Этот текст сгенерирован ИИ и служит в качестве справочного материала. Обязательную силу имеют положения соответствующей спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dem_ClearDTC [SWS_Dem_00665] 📄 PDF
Std_ReturnType Dem_ClearDTC (uint8 ClientId);
Clears single DTCs, as well as groups of DTCs.
Асинхронная функция Dem_ClearDTC служит для удаления отдельных диагностических кодов неисправностей (DTC) или целых групп DTC в Diagnostic Event Manager [SWS_Dem_00665]. Перед вызовом целевой выбор из DTC, формата и места хранения должен быть определен с помощью Dem_SelectDTC для соответствующего ClientId [SWS_Dem_01253]. Функция реентерабельна для различных значений ClientId, однако нереентерабельна для одного и того же клиента [SWS_Dem_00665].
Процесс удаления подтверждается с помощью E_OK, как только он успешно завершен [SWS_Dem_00665]. Пока очистка выполняется, API возвращает DEM_PENDING, после чего вызывающая сторона должна вызвать функцию повторно в более поздний момент времени [SWS_Dem_00665]. Если для того же клиента параллельно активна другая операция, зависящая от Dem_SelectDTC, сообщается DEM_BUSY [SWS_Dem_00665]. Несколько параллельных клиентских запросов DEM обрабатывает внутренне [SWS_Dem_00661], при этом конкурирующие вызовы во время текущего процесса удаления могут получить DEM_PENDING [SWS_Dem_00664] или DEM_CLEAR_BUSY [SWS_Dem_00665].
Ошибочные вызовы API квитирует определенными возвращаемыми значениями:
E_NOT_OK: ранее не был выбран ни один DTC [SWS_Dem_00665].DEM_WRONG_DTC: DTC не существует [SWS_Dem_00665], подавлен [SWS_Dem_01100] или конфигурацияDemClearDTCLimitationпринудительно задаетDEM_ONLY_CLEAR_ALL_DTCS[SWS_Dem_00670].DEM_WRONG_DTCORIGIN: выбранное место хранения не существует [SWS_Dem_00665].DEM_CLEAR_FAILEDилиDEM_CLEAR_MEMORY_ERROR: удаление завершилось неудачно или произошла ошибка при удалении в энергонезависимой памяти [SWS_Dem_00665].
В рамках удаления в случае комбинированных DTC очищаются все связанные события [SWS_Dem_00440] и запускается их инициализация монитора через InitMonitorForEvent с DEM_INIT_MONITOR_CLEAR [SWS_Dem_00680]. При установленном DemTriggerMonitorInitBeforeClearOk возврат E_OK происходит только после этого триггера [SWS_Dem_00573]. Если удаляются все DTC памяти событий, DEM сбрасывает ее индикатор переполнения [SWS_Dem_00399]; кроме того, при выполнении службы OBD $04 сбрасываются неназначенные данные DTR [SWS_Dem_00764] и очищаются события, не привязанные к памяти [SWS_Dem_01249].
Этот текст был сгенерирован ИИ и служит для технической ориентации.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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)
Использование и контекст вызова
Синхронная функция Dem_ClearPrestoredFreezeFrame удаляет ранее сохраненный в буфере Freeze Frame для определенного диагностического события ([SWS_Dem_00193]). Вызов выполняется исключительно через RTE; объявление в заголовочном файле Dem.h не предоставляется ([SWS_Dem_00193]). API реализован в системе только тогда, когда как минимум одно событие было сконфигурировано для предварительного сохранения (параметр конфигурации DemFFPrestorageSupported) ([SWS_Dem_00193], [SWS_Dem_00334]). Функция возвращает E_OK при успешном удалении и E_NOT_OK, если операция завершилась неудачно ([SWS_Dem_00193]).
Параллелизм и ограничения
Интерфейс реентерабелен для различных ID событий (EventId), однако не должен выполняться параллельно для одного и того же EventId ([SWS_Dem_00193]). Вызов с событиями, сконфигурированными как Slave-события (DemMultiEventTriggeringSlaveEventRef) или как замещающие события (DemStorageConditionReplacementEventRef), не поддерживается; поведение DEM в этом случае неопределенно ([SWS_Dem_01339]). Если событие задано как недоступное, оно обрабатывается как несконфигурированное событие ([SWS_Dem_01108]); интерпретация: вызов в этом случае, вероятно, будет отклонен с E_NOT_OK. Вопрос Q-d8ebaf6883138fdf (открытый)
Взаимодействие при Multi-Event-Triggering
Если сконфигурирован DemMultiEventTriggering и функция вызывается для Master-события (DemMultiEventTriggeringMasterEventRef), DEM автоматически инициирует вызов удаления с идентичными параметрами для всех назначенных Slave-событий (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dem_GetComponentFailed [SWS_Dem_01115] 📄 PDF
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Gets the failed status of a DemComponent.
функция 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.
функция 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.
функция 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
функция Dem_GetMonitorStatus [SWS_Dem_91007] 📄 PDF
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);
Gets the current monitor status for an event.
функция 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.
функция Dem_GetDTCOfEvent [SWS_Dem_00198] 📄 PDF
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);
Gets the DTC of an event.
функция 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)
функция Dem_GetEventAvailable [SWS_Dem_91040] 📄 PDF
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);
Get the Event's availability.
функция 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.
функция 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)
функция 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.
функция 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.
функция Dem_GetEventMemoryOverflow [SWS_Dem_00559] 📄 PDF
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);
Gets the event memory overflow indication status.
функция 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.
функция 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).
Синхронная функция Dem_ResetEventDebounceStatus служит модулям BSW и программным компонентам (SW-C) для целенаправленного замораживания или сброса внутреннего счетчика либо таймера антидребезга диагностического события без влияния на квалификацию события [SWS_Dem_00683].
Использование и параметры
Через параметр DebounceResetStatus управляется желаемое действие: значение DEM_DEBOUNCE_STATUS_FREEZE замораживает внутренний таймер антидребезга [SWS_Dem_00685], в то время как DEM_DEBOUNCE_STATUS_RESET сбрасывает соответствующий счетчик обнаружения неисправностей (Fault Detection Counter) [SWS_Dem_00684] [SWS_Dem_00927]. Функция возвращает E_OK при успешном выполнении и E_NOT_OK исключительно в случае ошибки разработки [SWS_Dem_00683].
Обработка ошибок и жизненный цикл
API доступен для модулей BSW уже после завершения Dem_PreInit и поэтому исключен из общей проверки инициализации перед полной инициализацией [SWS_Dem_00124] [SWS_Dem_00683]. При активированном обнаружении ошибок разработки действуют следующие условия:
- Если функция вызывается до предварительной инициализации, DEM сообщает об ошибке
DEM_E_UNINIT[SWS_Dem_00364]. - Если вызов происходит для событий с персистентным счетчиком антидребезга (
DemDebounceCounterStorageустановлено в True) доDem_Initили послеDem_Shutdown, устанавливаетсяDEM_E_WRONG_CONDITION[SWS_Dem_00676]. - Если событие помечено как недоступное, оно обрабатывается как несконфигурированное событие [SWS_Dem_01108].
Параллелизм и ограничения
Dem_ResetEventDebounceStatus является реентерабельной для разных значений EventId, но нереентерабельной для одного и того же события [SWS_Dem_00683]. При сконфигурированном DemMultiEventTriggering вызов с мастер-событием инициирует идентичные вызовы для всех назначенных подчиненных событий (Slave-Events) [SWS_Dem_01250]. Прямые вызовы для чисто внутренних подчиненных событий или событий, на которые ссылаются через DemStorageConditionReplacementEventRef, не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Dem_ResetEventStatus служит для сброса статуса ошибки диагностического события и доступна исключительно через RTE [SWS_Dem_00185]. Вызов выполняется с EventId и имеет асинхронную семантику: при успешном приеме запроса функция возвращает E_OK [SWS_Dem_00185]. Модуль DEM затем со сдвигом по времени сбрасывает бит статуса 0 (TestFailed) в 0 и при соответствующей конфигурации сбрасывает внутренний алгоритм подавления дребезга в его начальные значения [SWS_Dem_00187].
Запрос завершается сбоем с возвращаемым значением E_NOT_OK, если событие уже было протестировано в текущем рабочем цикле (UDS-бит статуса 6 равен 0) [SWS_Dem_00185], [SWS_Dem_00638] или если событие сконфигурировано либо установлено как недоступное [SWS_Dem_01108]. Вызов до полной инициализации DEM даже при включенном обнаружении ошибок разработки (DemDevErrorDetect) не приводит к сообщению об ошибке DEM_E_UNINIT [SWS_Dem_00124].
Что касается параллелизма, Dem_ResetEventStatus является реентерабельной для различных значений EventId, но нереентерабельной для одного и того же EventId [SWS_Dem_00185]. Если сконфигурировано DemMultiEventTriggering и функция вызывается с мастер-событием, DEM автоматически запускает тот же вызов для всех связанных слейв-событий [SWS_Dem_01250]. Прямые вызовы с EventId, которое сконфигурировано как слейв-событие или как DemStorageConditionReplacementEventRef, не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Dem_RestartOperationCycle служит для перезапуска рабочего цикла ([SWS_Dem_00194]). Вызов выполняется исключительно через RTE, поэтому объявление через Dem.h не экспортируется ([SWS_Dem_00194]).
Семантика и параметры
Через входной параметр OperationCycleId идентифицируется перезапускаемый рабочий цикл (например, Power Cycle или Driving Cycle) ([SWS_Dem_00194]). Функция работает реентерабельно и асинхронно ([SWS_Dem_00194]):
E_OK: установка рабочего цикла была принята и будет обрабатываться асинхронно ([SWS_Dem_00194]).E_NOT_OK: запрос на установку цикла был отклонен ([SWS_Dem_00194]).
Взаимодействие и асинхронное выполнение
Асинхронное поведение предотвращает нарушения типичных временных требований, когда необходимо обработать большое количество событий и повторно инициализировать мониторы ([SWS_Dem_00194]). В качестве асинхронных уведомлений выступают соответствующие колбэки InitMonitorForEvent ([SWS_Dem_00194]). В процессе перезапуска DEM повторно инициализирует диагностические мониторы всех затронутых событий путем вызова их колбэка InitMonitorForEvent с параметром InitMonitorReason, установленным в DEM_INIT_MONITOR_RESTART ([SWS_Dem_00679]).
Если рабочий цикл перезапускается через Dem_RestartOperationCycle, все зависимые от него рабочие циклы также должны быть перезапущены при условии их квалификации ([SWS_Dem_01224]).
Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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)
Функция служит для синхронной фиксации и буферизации данных Freeze Frame для определенного диагностического события [SWS_Dem_00188]. Интерфейс предоставляется исключительно через RTE и не экспортируется через Dem.h [SWS_Dem_00188]. Он присутствует в модуле только тогда, когда для как минимум одного события сконфигурировано предварительное сохранение (DemFFPrestorageSupported) [SWS_Dem_00334].
Возвращаемые значения и обработка ошибок:
E_OK: Freeze Frame был успешно сохранен в буфере [SWS_Dem_00188].E_NOT_OK: буферизация завершилась неудачно [SWS_Dem_00188], в частности если больше нет свободного буфера (ограниченоDemMaxNumberPrestoredFF) [SWS_Dem_00808] или указанное событие задано как недоступное [SWS_Dem_01108].
Параллелизм и условия вызова: функция реентерабельна для различных ID событий, однако не для одного и того же EventId [SWS_Dem_00188].
Взаимодействие при Multi-Event-Triggering: если функция вызывается со сконфигурированным Master-событием (DemMultiEventTriggeringMasterEventRef), DEM автоматически инициирует идентичные вызовы для всех связанных Slave-событий (DemMultiEventTriggeringSlaveEventRef) [SWS_Dem_01250]. Прямые вызовы с ID Slave-события или с замещающим событием для условий сохранения (DemStorageConditionReplacementEventRef) не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронная функция Dem_SelectDTC выбирает DTC или группу DTC в определенном формате (DTCFormat) и памяти событий (DTCOrigin) для определенного ClientId в качестве цели для последующих операций [SWS_Dem_91016]. Она инициирует внутренний процесс выбора DEM в памяти событий, назначенной этому ClientId [SWS_Dem_01254].
Что касается параллелизма и контекста вызова, функция реентерабельна для различных ClientId, однако нереентерабельна для одного и того же ClientId [SWS_Dem_91016]. В качестве возвращаемых значений определены [SWS_Dem_91016]:
E_OK: DTC или группа успешно выбраны [SWS_Dem_91016].DEM_BUSY: другой вызовDem_SelectDTCили зависимая от него операция этого клиента уже выполняется в данный момент [SWS_Dem_91016].
Результат выбора отражается в возвращаемых значениях последующих вызовов API [SWS_Dem_01254]. DEM использует выбранный DTC или группу DTC в качестве цели для последующих вызовов функций того же клиента, таких как, помимо прочего, Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord, а также Dem_SetDTCSuppression [SWS_Dem_01253]. Кроме того, Dem_SelectFreezeFrameData и Dem_SelectExtendedDataRecord основаны на этом выбранном DTC [SWS_Dem_01268], [SWS_Dem_01272].
Если один из зависимых API вызывается без предварительного действительного выбора или переданный DTC недействителен в указанном формате, DEM возвращает DEM_WRONG_DTC [SWS_Dem_01261]. Если запрошенная область памяти (DTCOrigin) отсутствует или недействительна, последующие вызовы возвращают DEM_WRONG_DTCORIGIN [SWS_Dem_01258], [SWS_Dem_01262]. С помощью Dem_GetDTCSelectionResult можно явно проверить, был ли выбор с помощью E_OK успешным и готов ли DTC для дальнейшей обработки [SWS_Dem_01256], [SWS_Dem_01257].
Это указание по использованию сгенерировано ИИ и основано исключительно на данных спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dem_SetComponentAvailable [SWS_Dem_01117] 📄 PDF
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);
Set the availability of a specific DemComponent.
функция 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)
функция 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)
функция Dem_SetEventAvailable [SWS_Dem_01080] 📄 PDF
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);
Set the available status of a specific Event.
функция Dem_SetEventConfirmationThresholdCounter [SWS_Dem_91004] 📄 PDF
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);
Set the failure confirmation threshold of an event.
функция 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)
Функция Dem_SetEventStatus служит SW-C и BSW-модулям для передачи результатов тестов мониторов в DEM [SWS_Dem_00183], [SWS_Dem_00330]. Она доступна, если для события сконфигурировано STANDARD_REPORTING [SWS_Dem_00183]. В качестве значений статуса передаются квалифицированные результаты (DEM_EVENT_STATUS_PASSED, DEM_EVENT_STATUS_FAILED), предварительные квалификации для внутреннего дебаунсинга DEM (DEM_EVENT_STATUS_PREPASSED, DEM_EVENT_STATUS_PREFAILED) или факт достижения порога дебаунсинга DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED [SWS_Dem_00926].
Что касается параллелизма, API является реэнтрантным для различных значений EventId, однако для одного и того же EventId выполнен как нереэнтрантный [SWS_Dem_00183]. До предварительной инициализации через Dem_PreInit вызов при активном обнаружении ошибок разработки приводит к ошибке DEM_E_UNINIT [SWS_Dem_00364]. После Dem_PreInit, но ещё до Dem_Init, вызов, напротив, допустим [SWS_Dem_00124], [SWS_Dem_00180]; квалифицирующие события буферизуются в очереди, размер которой определяется через DemBswErrorBufferSize, тогда как пороги FDC не буферизуются [SWS_Dem_00167], [SWS_Dem_00207]. Даже после Dem_Shutdown функция не генерирует ошибки DEM_E_UNINIT [SWS_Dem_00368].
Возвращаемым значением является E_OK при успешном принятии или E_NOT_OK при ошибках либо если событие установлено как недоступное [SWS_Dem_00183], [SWS_Dem_01108]. Модули BSW могут игнорировать возвращаемое значение [SWS_Dem_00183]. Сообщения принимаются, как только выполнены назначенные условия включения (Enable Conditions) [SWS_Dem_00450]; если настройка DTC деактивирована, DEM игнорирует отчёт для статуса UDS [SWS_Dem_00626].
В контексте вызова могут запускаться синхронные действия:
- Оповещение FiM при изменении статуса через
FiM_DemTriggerOnEventStatus, если активноDemTriggerFiMReports[SWS_Dem_00029]. - Сбор синхронных данных стоп-кадра и записей расширенных данных (Extended Data Records) при сконфигурированной опции
DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING[SWS_Dem_00805], [SWS_Dem_01082]. - Каскадные вызовы для сконфигурированных slave-событий при активной конфигурации
DemMultiEventTriggering[SWS_Dem_01250].
Данное указание было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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)
Функция Dem_SetEventStatusWithMonitorData служит для сообщения результата теста монитора (EventStatus) для определенного диагностического события (EventId) вместе с дополнительными данными монитора (monitorData0 и monitorData1) в DEM [SWS_Dem_91037]. Она обладает той же функциональностью, что и Dem_SetEventStatus, однако передает дополнительные параметры для сохранения в данных, связанных с событием [SWS_Dem_01333].
Во взаимодействии с операциями считывания действует следующее: если операция Read-Data сконфигурирована для предоставления monitorData0, то DEM добавляет переданный monitorData0 из Dem_SetEventStatusWithMonitorData к параметру monitorData0 этой операции Read-Data [SWS_Dem_01330].
Для использования и параллелизма действуют следующие условия:
- Доступность: API доступен через
Dem.hтолько в том случае, еслиDemEventReportingTypeсконфигурирован наSTANDARD_REPORTING_WITH_MONITOR_DATA[SWS_Dem_91037]. - Выполнение и реентерабельность: выполнение является синхронным/асинхронным. Функция реентерабельна для различных
EventId, однако нереентерабельна для одного и того жеEventId[SWS_Dem_91037]. - Возвращаемые значения: она возвращает
E_OKпри успешной установке статуса события иE_NOT_OK, если установка или обработка завершились сбоем либо не смогли быть приняты [SWS_Dem_91037].
Это указание по использованию создано автоматически на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
функция 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.
Использование и контекст вызова
Асинхронная функция Dem_SetWIRStatus служит отказобезопасным программным компонентам (failsafe SW-C) для целенаправленного запроса бита состояния Warning-Indicator-Requested (WIR-бит) диагностического события [SWS_Dem_00839], [SWS_Dem_01303]. Поскольку вызов выполняется исключительно через RTE, объявление в заголовочном файле Dem.h отсутствует [SWS_Dem_00839].
Функциональное поведение и взаимодействие
Установка и сброс бита зависят от входного параметра WIRStatus, а также от статуса сконфигурированных индикаторов:
- Если передается
WIRStatus = TRUE, DEM устанавливает WIR-бит соответствующего события в 1 [SWS_Dem_00833]. - При
WIRStatus = FALSEWIR-бит сбрасывается в 0 только в том случае, если не установлен ни один из связанных индикаторов DEM [SWS_Dem_00834]. - Кроме того, установленный через
Dem_SetWIRStatusWIR-бит предотвращает автоматический сброс DEM бита состояния UDS 7 (WarningIndicatorRequested) в 0 при достижении циклов дебаунсинга или восстановления [SWS_Dem_00503], [SWS_Dem_01233].
Параллелизм и обработка ошибок
API является ревходабельным для различных событий, однако неревходабелен для одного и того же EventId [SWS_Dem_00839]. При успешном принятии функция возвращает E_OK [SWS_Dem_00839]. Возвращаемое значение E_NOT_OK сигнализирует о том, что запрос был отклонен и должен быть повторен; в частности, это происходит, если настройка DTC отключена (disabled ControlDTCSetting) или событие помечено как недоступное [SWS_Dem_00836], [SWS_Dem_01108], [SWS_Dem_00839].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
функция 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.
функция 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.
функция 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.
функция 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).
функция Dem_GetFunctionalUnitOfDTC [SWS_Dem_00594] 📄 PDF
Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);
Gets the functional unit of the requested DTC.
функция 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
функция Dem_GetNumberOfFilteredDTC [SWS_Dem_00214] 📄 PDF
Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);
Gets the number of a filtered DTC.
функция 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.
функция 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.
функция 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.
функция Dem_SetFreezeFrameRecordFilter [SWS_Dem_00209] 📄 PDF
Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);
Sets a freeze frame record filter.
функция 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.
функция 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.
функция 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).
Использование и последовательность действий
Асинхронная функция Dem_DisableDTCRecordUpdate ([SWS_Dem_00233]) деактивирует обновление памяти событий для DTC ([SWS_Dem_01253]), ранее заданного с помощью Dem_SelectDTC. Цель этого вызова состоит в том, чтобы защитить данные выбранной ошибки, относящиеся к событию, в соответствующем DTCOrigin от перезаписи или удаления, обеспечивая последующий согласованный доступ по чтению к данным Freeze Frame и Extended Data Records ([SWS_Dem_00270]). Вызывающий экземпляр модуля идентифицируется через параметр ClientId ([SWS_Dem_00233]).
Возвращаемые значения и обработка ошибок
Функция сообщает о статусе обработки через специфические возвращаемые значения ([SWS_Dem_00233]):
E_OK: обновление памяти событий успешно деактивировано.DEM_PENDING: деактивация выполняется асинхронно; вызывающая сторона должна вызвать функцию повторно позднее.DEM_BUSY: для этого клиента уже выполняется другая операция, зависящая отDem_SelectDTC.E_NOT_OK: предварительно DTC выбран не был.DEM_WRONG_DTC: выбранный DTC не существует в указанном формате либо была недопустимо выбрана группа DTC.DEM_WRONG_DTCORIGIN: указанный источник (DTCOrigin) не существует.
Параллелизм и ограничения
Dem_DisableDTCRecordUpdate является реэнтерабельной для вызовов с различными ClientId, однако нереэнтерабельна для одного и того же ClientId ([SWS_Dem_00233]). Одновременно может быть заблокировано обновление только для ровно одного DTC ([SWS_Dem_00233]). После считывания диагностических данных обновление записи данных должно быть снова разрешено через Dem_EnableDTCRecordUpdate ([SWS_Dem_00234], [SWS_Dem_00270]).
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Асинхронная функция Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]) служит для разрешения обновления памяти событий для ранее заблокированного DTC. Согласно [SWS_Dem_00271] функция снова освобождает DTC, защищенный в текущий момент с помощью Dem_DisableDTCRecordUpdate, чтобы его данные могли снова обновляться в DEM.
В качестве передаваемого параметра функция ожидает ClientId, который однозначно идентифицирует экземпляр вызывающего модуля ([SWS_Dem_00234]). Поскольку вызов Dem_EnableDTCRecordUpdate представляет собой завершающее действие в последовательности деактивации и активации DTC, вызывающая сторона не заинтересована в самом возвращаемом значении; поэтому согласно [SWS_Dem_00234] даже при асинхронном разрешении должно возвращаться E_OK.
В отношении обработки ошибок и возвращаемых значений определены следующие статусы ([SWS_Dem_00234]):
E_OK: обновление записи данных DTC было успешно разрешено.E_NOT_OK: никакой DTC не выбран.
В отношении параллелизма и ограничений Dem_EnableDTCRecordUpdate реентерабельна для вызовов с различными Client ID, однако нереентерабельна для одного и того же ClientId ([SWS_Dem_00234]).
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
функция 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.
функция 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.
функция 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.
функция 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.
Асинхронная функция Dem_SelectExtendedDataRecord инициализирует фильтр для считывания расширенных диагностических данных ранее заданного с помощью Dem_SelectDTC DTC [SWS_Dem_91017] [SWS_Dem_01253]. Она запускает внутренний процесс выбора в назначенной памяти событий клиента [SWS_Dem_01273] и определяет целевую запись данных для последующих запросов через Dem_GetSizeOfExtendedDataRecordSelection и Dem_GetNextExtendedDataRecord [SWS_Dem_01272].
В отношении параметризации и процесса действуют следующие положения:
- Параметры: помимо специфических номеров записей данных,
ExtendedDataNumberпринимает значения0xFE(общий размер всех записей OBD), а также0xFF(общий размер всех записей) [SWS_Dem_91017]. Чтобы избежать несогласованности данных во время считывания, запись данных можно предварительно защитить с помощьюDem_DisableDTCRecordUpdate[SWS_Dem_00270]. - Возвращаемые значения и ошибки: при успешном выборе возвращается
E_OK[SWS_Dem_91017]. Это справедливо и в том случае, когда запрашивается допустимый номер записи данных, для которого не сохранено ни одной записи; в этом случае последующее считывание возвращает размер буфера 0 [SWS_Dem_00631]. Если черезDem_SelectDTCбыл выбран не отдельный код неисправности, а группа DTC, либо если DTC не существует, вызов завершается с ошибкойDEM_WRONG_DTC[SWS_Dem_91017] [SWS_Dem_01349]. Если место хранения не существует, выдаетсяDEM_WRONG_DTCORIGIN[SWS_Dem_91017]. - Параллелизм: если выбор все еще находится в обработке,
DEM_PENDINGсигнализирует о необходимости повторного вызова [SWS_Dem_91017]. СтатусDEM_BUSYуказывает на то, что для этогоClientIdеще активна другая зависимая от DTC операция [SWS_Dem_91017]. Функция является ревходабельной для различных значенийClientId, однако для одного и того же экземпляра неревходабельна [SWS_Dem_91017].
Данное указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование и семантика
Асинхронная функция Dem_SelectFreezeFrameData устанавливает фильтр для последующего считывания данных стоп-кадра через Dem_GetSizeOfFreezeFrameSelection и Dem_GetNextFreezeFrameData [SWS_Dem_91015], [SWS_Dem_01268]. Через параметр ClientId идентифицируется вызывающий экземпляр модуля, тогда как RecordNumber задает номер записи снимка согласно ISO 14229-1; при этом 0xFF обозначает все записи снимков DTC, а 0x00 — специфичный для DTC снимок WWH-OBD [SWS_Dem_91015]. Вызов запускает внутренний выбор в назначенной памяти событий [SWS_Dem_01269].
Возвращаемые значения и обработка ошибок
Если процесс выбора был успешно инициирован, функция возвращает E_OK [SWS_Dem_91015]. Если выбор все еще находится в обработке, DEM_PENDING сигнализирует о том, что вызывающая сторона должна вызвать функцию повторно позднее [SWS_Dem_91015]. Если для клиента уже активна другая зависимая операция, API возвращает DEM_BUSY [SWS_Dem_91015], [SWS_Dem_01253]. Если целевой DTC в требуемом формате не существует или через Dem_SelectDTC была выбрана группа DTC вместо отдельного DTC, возвращается DEM_WRONG_DTC [SWS_Dem_91015], [SWS_Dem_01348]. При недопустимом месте хранения результатом является DEM_WRONG_DTCORIGIN [SWS_Dem_91015]. Если зависимые функции чтения вызываются без предварительного выбора, DEM сообщает об ошибке DET [SWS_Dem_01270], [SWS_Dem_01271].
Порядок вызовов и параллелизм
Функция является ревходабельной для различных вызывающих сторон (ClientId), однако неревходабельна для одного и того же клиента [SWS_Dem_91015]. Обязательным предварительным условием является предшествующий вызов Dem_SelectDTC для задания целевого DTC и места хранения [SWS_Dem_01253]. Чтобы гарантировать согласованное считывание, можно вызвать Dem_DisableDTCRecordUpdate для защиты связанных с событием данных от изменений или удаления [SWS_Dem_00270].
Это указание по использованию сгенерировано автоматически с помощью ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
функция 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.
Использование и семантика
Функция Dem_DisableDTCSetting деактивирует DTC-Setting для всех диагностических событий, назначенных DemEventMemorySet вызывающего клиента [SWS_Dem_00242], [SWS_Dem_01290]. Вызов выполняется асинхронно и требует передачи уникального ClientId [SWS_Dem_00242]. Помимо успешного завершения через E_OK, возвращаемое значение DEM_PENDING сигнализирует о том, что операция все еще находится в обработке; в этом случае вызывающая сторона должна вызвать функцию повторно позднее [SWS_Dem_00242].
Функциональные последствия
При вызове Dem_DisableDTCSetting модуль DEM предотвращает сохранение соответствующих событий, а также обновление байтов статуса UDS [SWS_Dem_00079]. Если параметр конфигурации DemDebounceBehavior дополнительно установлен в DEM_DEBOUNCE_RESET, вызов также приводит к сбросу соответствующих счетчиков обнаружения ошибок (Fault Detection Counters) [SWS_Dem_00677].
Параллелизм и ограничения
Функция является реэнтерабельной для вызовов с различными Client-ID, однако нереэнтерабельна для одного и того же ClientId [SWS_Dem_00242]. Деактивация влияет исключительно на события и байты статуса UDS для DemEventMemorySet, на который ссылается ClientId; DTC за пределами этой области памяти не затрагиваются [SWS_Dem_01290].
Данное указание по использованию основано на требованиях спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Асинхронная функция Dem_EnableDTCSetting активирует или повторно активирует DTC-Setting для всех DTC, назначенных DemEventMemorySet адресуемого клиента [SWS_Dem_00243]. При вызове передается уникальный идентификатор ClientId вызывающего экземпляра модуля [SWS_Dem_00243].
В качестве возвращаемых значений определены [SWS_Dem_00243]:
E_OK: операция успешно завершена.DEM_PENDING: операция выполняется асинхронно; вызывающая сторона должна вызвать функцию повторно позднее.
В отношении параллелизма Dem_EnableDTCSetting является реэнтерабельной для различных значений ClientId, однако не должна вызываться параллельно для одного и того же ClientId [SWS_Dem_00243].
Во взаимодействии с обработкой событий функция обеспечивает то, что DEM разрешает сохранение соответствующих событий и байта статуса UDS [SWS_Dem_00080]. При повторной активации DTC-Setting для событий Dem_EnableDTCSetting инициирует вызов callback-функции InitMonitorForEvent затронутых событий с параметром InitMonitorReason, установленным в DEM_INIT_MONITOR_REENABLED [SWS_Dem_00682].
Этот текст сгенерирован ИИ и служит для ознакомления. Обязательную силу имеют исключительно спецификации соответствующих релизов AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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
Использование
Синхронная функция Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) вызывается DCM для запроса данных IUMPR (In-Use Monitor Performance Ratio) для InfoType $08 в рамках службы OBD $09 ([SWS_Dem_00298]). Поскольку обработка выполняется синхронно, DCM передает для параметра OpStatus исключительно значение DCM_INITIAL ([SWS_Dem_00316]). Полезные данные, а также количество элементов данных согласно ISO-15031-5 записываются в буфер Iumprdata08, предоставляемый DCM; максимально доступный для записи размер буфера задается через параметр типа inout Iumprdata08BufferSize ([SWS_Dem_00316]).
Обработка ошибок
В качестве возвращаемого значения функция всегда возвращает E_OK ([SWS_Dem_00316]). Специфические коды ошибок или сообщения об ошибках разработки (DET) для этого вызова не специфицированы.
Параллелизм и конфигурация
Интерфейс является нереэнтерабельным (Non Reentrant) и объявлен через Dem_Dcm.h ([SWS_Dem_00316]). Он существует исключительно в блоках управления, относящихся к OBD, с активной поддержкой OBD (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) ([SWS_Dem_00316]), и предоставляется, если DemOBDEngineType сконфигурирован в DEM_IGNITION_SPARK для бензиновых двигателей ([SWS_Dem_00357]).
Взаимодействие
Подавленные коды ошибок (suppressed DTCs) не должны быть видимы при запросе и должны обрабатываться так, как если бы фильтр не подходил ([SWS_Dem_01101]). Совместно с Dem_DcmGetInfoTypeValue0B функция служит для поддержки запросов данных в службе $09 ([SWS_Dem_00298]).
Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование и интерфейс параметров
Синхронная функция Dem_DcmGetInfoTypeValue0B (Service-ID 0x6c, доступна через Dem_Dcm.h) служит DCM для запроса данных IUMPR (In-Use Performance Ratio) согласно InfoType $0B в рамках службы OBD $09 [SWS_Dem_00317] [SWS_Dem_00298]. Интерфейс функции выводится из прототипа DCM <Module>_GetInfotypeValueData(), поэтому она использует Dcm_OpStatusType и Std_ReturnType [SWS_Dem_00317]:
OpStatus(in): поскольку функция демонстрирует синхронное поведение, при вызове возникает исключительно состояниеDCM_INITIAL[SWS_Dem_00317].Iumprdata0BBufferSize(inout): определяет максимальное количество байтов данных, которое разрешено записать в буфер [SWS_Dem_00317].Iumprdata0B(out): буфер, предоставляемый DCM, который принимает количество элементов данных согласно ISO-15031-5 и содержимое InfoType $0B [SWS_Dem_00317].
В качестве возвращаемого значения всегда возвращается E_OK [SWS_Dem_00317].
Обработка ошибок и параллелизм
Специфические коды ошибок или реакции на ошибки (такие как сообщения DET) для этой функции в спецификации не определены; вызов формально всегда возвращает E_OK [SWS_Dem_00317]. API классифицирован как нереэнтерабельный (Non Reentrant) [SWS_Dem_00317]. Вызывающая сторона (DCM), следовательно, предположительно не должна выполнять эту службу параллельно для нескольких одновременных диагностических запросов. Вопрос Q-636518c23ec3801a (открытый)
Зависимость от конфигурации и взаимодействие
API существует исключительно в блоках управления, относящихся к OBD, для которых параметр конфигурации DemOBDSupport сконфигурирован не равным DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00317]. Кроме того, он предоставляется, если DemOBDEngineType установлен в DEM_IGNITION_COMPRESSION [SWS_Dem_00358]. Во взаимодействии с подавлением DTC действует правило: подавленные DTC невидимы для этой функции запроса и должны обрабатываться так, как если бы фильтр не подходил [SWS_Dem_01101].
Этот текст создан ИИ; правила требуют проверки пользователем по спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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)
Синхронная функция Dem_DcmReadDataOfPID01 служит для передачи вычисленного DEM содержимого OBD-параметра PID $01 в DCM [SWS_Dem_00318]. Интерфейс объявлен в заголовочном файле Dem_Dcm.h и доступен исключительно в электронных блоках управления с поддержкой OBD, в которых DemOBDSupport не установлено в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00318].
Через выходной параметр PID01value модуль DCM передает указатель на целевой буфер, в который DEM записывает данные [SWS_Dem_00318]. Модуль DCM отвечает за предоставление этого буфера достаточного размера; выбор размера осуществляется на этапе конфигурации на основе наибольшего встречающегося PID для настройки PIDBuffer [SWS_Dem_00318].
Функция реализована как нереентерабельная (Non Reentrant) [SWS_Dem_00318]. В качестве возвращаемого значения всегда возвращается E_OK, поскольку состояние ошибки с E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00318].
Во взаимодействии с запросами ошибок действует правило: подавленные коды ошибок (suppressed DTC) не должны быть видимы для Dem_DcmReadDataOfPID01 [SWS_Dem_01101]. При оценке DEM должен обрабатывать подавленные DTC так, как будто фильтр не совпадает [SWS_Dem_01101].
Примечание: эта документация была автоматически сгенерирована системой ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Использование и контекст вызова
Функция Dem_DcmReadDataOfPID1C предоставляет синхронный сервис Diagnostic Event Manager, через который Diagnostic Communication Module (DCM) запрашивает вычисленное содержимое OBD PID $1C [SWS_Dem_00325].
-
Параметры: через выходной параметр
PID1Cvalue(указатель наuint8) DEM записывает данные в буфер DCM. Требуемый размер буфера рассчитывается при конфигурации DCM на основе наибольшего PID, чтобы предоставить подходящийPIDBuffer[SWS_Dem_00325]. -
Возвращаемое значение: сервис всегда возвращает значение статуса
E_OK. Случай ошибки сE_NOT_OKсогласно спецификации никогда не возникает [SWS_Dem_00325].
Техническое содержание и взаимодействие
Согласно [SWS_Dem_00748] интерфейс возвращает требования OBD, по которым сертифицировано транспортное средство или двигатель (например, OBD, OBDII или JOBD). Значение, выводимое в PID1Cvalue, определяется конфигурационным параметром DemOBDCompliancy [SWS_Dem_00325] [SWS_Dem_00748].
Параллелизм и доступность
Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dem_00325]. Она объявлена в заголовочном файле Dem_Dcm.h и доступна исключительно в электронных блоках управления с активной поддержкой OBD, у которых DemGeneral.DemOBDSupport не установлено в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00325].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная функция Dem_DcmReadDataOfPID21 (Service-ID 0x64) служит Diagnostic Communication Manager (DCM) для запроса вычисленного DEM текущего значения параметра OBD PID $21 [SWS_Dem_00319], [SWS_Dem_01098]. Интерфейс объявляется через заголовочный файл Dem_Dcm.h и доступен исключительно в блоках управления, относящихся к OBD, если параметр конфигурации DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00319].
Для использования и оперативного взаимодействия действуют следующие положения:
- Предоставление буфера: в качестве выходного параметра передается указатель
PID21value[SWS_Dem_00319]. Вызывающая сторона (DCM) должна предоставить этот буфер и определяет его размер во время конфигурации в соответствии с наибольшим сконфигурированным PID [SWS_Dem_00319]. При вызове DEM записывает текущее значение PID $21 в этот буфер [SWS_Dem_01098]. - Возвращаемое значение: функция всегда возвращает
E_OK, так как значение ошибки, такое какE_NOT_OK, согласно спецификации никогда не возникает [SWS_Dem_00319]. - Начальное состояние / обработка ошибок: если
Dem_DcmReadDataOfPID21вызывается до того, как значения были установлены черезDem_SetDataOfPID21, DEM возвращает значение замещения0xFFFFв качестве содержимого PID $21 [SWS_Dem_01099]. - Параллелизм: функция специфицирована как нереэнтерабельная (Non Reentrant) [SWS_Dem_00319]. Параллельные вызовы из нескольких контекстов поэтому недопустимы.
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная функция Dem_DcmReadDataOfPID30 служит для передачи вычисленного DEM содержимого данных параметра PID $30 в DCM [SWS_Dem_00320]. Она объявляется через заголовочный файл Dem_Dcm.h и доступна исключительно в блоках управления, относящихся к OBD, если параметр конфигурации DemOBDSupport не равен DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00320].
Для использования интерфейса действуют следующие положения:
- Входные и выходные параметры: через выходной параметр
PID30valueвызывающая сторона предоставляет буфер, в который DEM записывает вычисленные данные PID $30 [SWS_Dem_00320]. DCM отвечает за предоставление этого буфера подходящего размера; требуемый размер DCM определяет во время конфигурации на основе наибольшего PID [SWS_Dem_00320]. - Возвращаемое значение и обработка ошибок: интерфейс всегда возвращает
E_OKв качествеStd_ReturnType[SWS_Dem_00320]. Значение ошибкиE_NOT_OKсогласно спецификации никогда не возникает, и специфических кодов ошибок или отдельных процедур обработки ошибок не предусмотрено [SWS_Dem_00320]. - Параллелизм: функция определена как нереэнтерабельная (
Non Reentrant) [SWS_Dem_00320]. Поскольку спецификация не предусматривает внутренних механизмов синхронизации, вызывающая сторона, вероятно, отвечает за исключение конкурирующих вызовов [SWS_Dem_00320]. Вопрос Q-976bc8dc189021a1 (открытый)
Этот совет по использованию был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
функция 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)
Синхронная функция Dem_DcmReadDataOfPID31 служит для передачи вычисленного DEM значения параметра OBD PID $31 в DCM [SWS_Dem_00321]. Интерфейс предоставляется через заголовочный файл Dem_Dcm.h и имеет Service-ID 0x66 [SWS_Dem_00321].
Использование и параметры
Вызов выполняется синхронно и определен как нереэнтерабельный [SWS_Dem_00321]:
- PID31value (выходной параметр): указатель на буфер (
uint8*), который принимает вычисленные данные для PID $31 [SWS_Dem_00321]. Предоставление буфера подходящего размера возлагается на вызывающий DCM; он определяет необходимый размер буфера во время конфигурации на основе наибольшего PID для компоновкиPIDBuffer[SWS_Dem_00321]. - Возвращаемое значение: служба всегда возвращает
E_OKв качествеStd_ReturnType; значение ошибкиE_NOT_OKсогласно спецификации никогда не возникает [SWS_Dem_00321].
Ограничения и конфигурация
API предусмотрен исключительно для блоков управления, относящихся к OBD [SWS_Dem_00321]. Он доступен только в том случае, если параметр конфигурации DemGeneral.DemOBDSupport установлен в значение DEM_OBD_MASTER_ECU [SWS_Dem_00321]. Поскольку функция не является реэнтерабельной, параллельные вызовы со стороны DCM выполняться не должны [SWS_Dem_00321].
Данное указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации из релиза R20-11.
функция 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)
Синхронная функция Dem_DcmReadDataOfPID41 служит для передачи вычисленного DEM содержимого PID $41 в DCM [SWS_Dem_00322]. Она объявляется через заголовочный файл Dem_Dcm.h и имеет Service-ID 0x67 [SWS_Dem_00322].
Использование и параметры
Вызов выполняется синхронно и специфицирован как нереэнтерабельный (Non Reentrant) [SWS_Dem_00322]. В качестве выходного параметра интерфейс ожидает указатель PID41value (uint8*):
PID41valueпринимает вычисленные данные PID $41 [SWS_Dem_00322].- Буфер должен быть предоставлен DCM подходящего размера; для этого DCM еще во время конфигурации на основе наибольшего встречающегося PID определяет необходимый размер для конфигурации
PIDBuffer[SWS_Dem_00322].
Возвращаемые значения и обработка ошибок
В качестве возвращаемого значения функция всегда возвращает E_OK, так как значение ошибки E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00322]. Специфических кодов ошибок или реакций на ошибки для этого интерфейса не предусмотрено [SWS_Dem_00322].
Зависимость от конфигурации и доступность
API требуется исключительно в блоках управления, относящихся к OBD [SWS_Dem_00322]. Он доступен только в том случае, если параметр конфигурации DemOBDSupport в DemGeneral сконфигурирован не равным DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00322].
Этот текст создан ИИ и опирается исключительно на спецификацию R20-11.
функция 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)
Использование и контекст вызова
Синхронная функция Dem_DcmReadDataOfPID4D служит для передачи вычисленного DEM значения OBD-параметра PID $4D в DCM [SWS_Dem_00323]. Сервис предоставляется через заголовочный файл Dem_Dcm.h с идентификатором сервиса 0x68 [SWS_Dem_00323].
Единственным передаваемым параметром служит выходной указатель PID4Dvalue, указывающий на целевой буфер, предоставляемый DCM [SWS_Dem_00323]. DCM предоставляет этот буфер подходящего размера, определяя требуемый размер для PIDBuffer еще на этапе конфигурации на основе наибольшего встречающегося PID [SWS_Dem_00323].
Возвращаемые значения и обработка ошибок
Функция имеет тип возвращаемого значения Std_ReturnType и без исключения возвращает E_OK [SWS_Dem_00323]. Возвращаемое значение E_NOT_OK согласно спецификации исключено и никогда не возникает [SWS_Dem_00323]. Специальная обработка ошибок или специфические коды ошибок для этого вызова отсутствуют.
Параллелизм и зависимость от конфигурации
Интерфейс объявлен как нереентерабельный (Non Reentrant) и поэтому не должен выполняться параллельно [SWS_Dem_00323].
Кроме того, функция требуется исключительно в OBD-релевантных электронных блоках управления [SWS_Dem_00323]. Она доступна только тогда, когда в конфигурации параметр DemOBDSupport внутри DemGeneral установлен в значение DEM_OBD_MASTER_ECU [SWS_Dem_00323].
Данное указание по использованию основано на спецификации Diagnostic Event Manager в AUTOSAR CP R20-11.
функция 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)
Синхронная функция Dem_DcmReadDataOfPID4E служит для передачи вычисленного DEM содержимого идентификатора OBD-параметра PID $4E в DCM [SWS_Dem_00324]. Функция имеет идентификатор сервиса 0x69 и объявляется через заголовочный файл Dem_Dcm.h [SWS_Dem_00324].
Вызов и управление буфером
Вызов выполняется синхронно и определен как нереентерабельный (Non Reentrant) [SWS_Dem_00324]. В качестве выходного параметра функция принимает указатель PID4Evalue (тип uint8*), через который DEM сохраняет вычисленные данные [SWS_Dem_00324]. Вызывающий DCM должен предоставить для этого буфер подходящего размера [SWS_Dem_00324]. Требуемый размер буфера DCM определяет во время конфигурации на основе наибольшего встречающегося PID, чтобы соответствующим образом рассчитать размер общего PIDBuffer [SWS_Dem_00324].
Возвращаемые значения и обработка ошибок
Интерфейс всегда возвращает E_OK типа Std_ReturnType, так как возвращаемое значение E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00324]. В объеме спецификации не указаны специфические коды ошибок для случая сбоя, а также сообщения об ошибках DET или DEM [SWS_Dem_00324].
Ограничения и доступность
API требуется исключительно в OBD-релевантных электронных блоках управления [SWS_Dem_00324]. Его доступность привязана к условию конфигурации DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU; в других конфигурациях функция недоступна [SWS_Dem_00324].
Этот текст был создан ИИ; он не заменяет изучение спецификации AUTOSAR.
функция 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)
Синхронная функция Dem_DcmReadDataOfPID91 (Service ID 0x6a) служит для передачи модулю DCM вычисленных модулем DEM данных параметра OBD PID $91 [SWS_Dem_01187]. Интерфейс объявляется через заголовочный файл Dem_Dcm.h и доступен исключительно в релевантных для OBD блоках управления ECU, в которых DemOBDSupport не сконфигурирован как DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_01187].
В качестве выходного параметра функции требуется указатель PID91value, ссылающийся на буфер, предоставленный DCM [SWS_Dem_01187]. Модуль DCM отвечает за предоставление этого буфера подходящего размера; требуемый размер определяется еще на этапе конфигурации по наибольшему PID для выделения буфера PIDBuffer [SWS_Dem_01187].
Функция специфицирована как нереентерабельная (Non Reentrant) и должна выполняться синхронно [SWS_Dem_01187]. Параллельный вызов из различных контекстов поэтому недопустим. Возвращаемое значение ошибки отсутствует: функция всегда возвращает E_OK в качестве Std_ReturnType, поскольку значение ошибки E_NOT_OK, согласно спецификации, никогда не возникает [SWS_Dem_01187].
Этот указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации AUTOSAR Classic R20-11.
функция 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)
Синхронная функция Dem_DcmReadDataOfOBDFreezeFrame считывает данные элемента данных для одного PID для наиболее важного стоп-кадра, выбранного для выдачи OBD-сервиса $02 [SWS_Dem_00327].
Контекст вызова и параметры
Вызов выполняется модулем DCM через заголовочный файл Dem_Dcm.h [SWS_Dem_00327]. В функцию передаются следующие параметры:
PID: идентификатор PID согласно ISO 15031-5 [SWS_Dem_00327].DataElementIndexOfPID: отсчитываемый от нуля сквозной индекс элемента данных внутри PID. Порядок определяется непосредственно позицией элементов данных в структуре PID конфигурации DCM [SWS_Dem_00327], [SWS_Dem_00597].DestBuffer: указатель на буфер, в который записывается элемент данных в шестнадцатеричном формате без информации заголовка [SWS_Dem_00327].BufSize: служит входным и выходным параметром; при вызове содержит максимальную емкость буфера и возвращает количество фактически записанных байтов данных [SWS_Dem_00327].
Ограничения и обработка ошибок
Функция нереентерабельна (Non Reentrant) и доступна исключительно в электронных блоках управления с активированной поддержкой OBD (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00327]. При успешном предоставлении данных возвращается E_OK, в противном случае — E_NOT_OK [SWS_Dem_00327]. Подавленный DTC невидим для этой функции опроса [SWS_Dem_01101]; предположительно, в таком случае функция возвращает E_NOT_OK. Вопрос Q-09c77cdccc138247 (открытый)
Этот текст был создан ИИ; определяющей является упомянутая спецификация.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная нереентерабельная функция Dem_DcmGetDTCOfOBDFreezeFrame считывает DTC для заданного номера записи Freeze Frame [SWS_Dem_00624]. Она служит главным образом DCM для вывода в рамках службы OBD $02 (PID $02), чтобы определить DTC наиболее релевантного выбранного Freeze Frame [SWS_Dem_00623].
Вызов и параметры
FrameNumber(IN): уникальный идентификатор записи Freeze Frame согласно ISO 15031-5. Значение0x00обозначает полный Freeze Frame OBD, остальные значения зарезервированы [SWS_Dem_00624].DTCFormat(IN): желаемый формат вывода значения DTC [SWS_Dem_00624].DTC(OUT): указатель на место в памяти для определенного кода неисправности в формате OBD [SWS_Dem_00624].
Возвращаемые значения и обработка ошибок
Функция возвращает E_OK, если DTC удалось успешно определить. Если подходящий DTC недоступен, вызов возвращает E_NOT_OK; в этом случае выходной параметр DTC не содержит допустимых данных [SWS_Dem_00624].
Условия и взаимодействие
Интерфейс доступен через заголовок Dem_Dcm.h и присутствует исключительно в блоках управления с поддержкой OBD (конфигурация DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00624]. Подавленные DTC (suppressed DTCs) обрабатываются функцией так, как если бы совпадение отсутствовало, и невидимы для этого запроса [SWS_Dem_01101].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная и реентерабельная функция Dem_DcmGetAvailableOBDMIDs (Service-ID 0xa3) вызывается DCM, чтобы в рамках запроса службы OBD $06 считывать значение запрошенного OBDMID доступности [SWS_Dem_00766]. Через входной параметр Obdmid (тип uint8) вызывающая сторона передает стандартизированный идентификатор доступности, такой как $00, $20 или $40. DEM возвращает поддерживаемые идентификаторы тестов в виде битово-кодированной информации через 32-битный выходной указатель Obdmidvalue [SWS_Dem_00766]. Из этих данных диагностический тестер определяет, какие проверки отображать персоналу мастерской для выбора [SWS_Dem_00766].
Функция объявляется через заголовок Dem_Dcm.h. Она предназначена исключительно для блоков управления, имеющих отношение к OBD, и доступна в модуле только тогда, когда параметр конфигурации DemGeneral.DemOBDSupport установлен отличным от DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00766].
При безошибочной передаче доступности DTR интерфейс возвращает E_OK [SWS_Dem_00766]. Если функция вызывается до того, как DEM был полностью инициализирован или после его завершения работы, срабатывает код ошибки DEM_E_UNINIT [SWS_Dem_00173]. Также вызовы с недействительным указателем (DEM_E_PARAM_POINTER) или с некорректными значениями параметров (DEM_E_PARAM_DATA) приводят к ошибкам разработки согласно [SWS_Dem_00173]. В таких случаях ошибок в качестве возвращаемого значения, предположительно, будет возвращено E_NOT_OK. Вопрос Q-b42d268116fb8df7 (открытый)
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная и реентерабельная функция Dem_DcmGetNumTIDsOfOBDMID (идентификатор сервиса 0xa4) объявляется через заголовочный файл Dem_Dcm.h [SWS_Dem_00767]. Она служит Diagnostic Communication Manager (DCM) для того, чтобы по запросу опрашивать количество назначенных тестовых идентификаторов (TID) для указанного функционального OBDMID [SWS_Dem_00761].
При вызове DCM передает идентификатор соответствующего OBDMID во входном параметре Obdmid и получает количество назначенных TID обратно через указатель numberOfTIDs [SWS_Dem_00767]. Это выходное значение служит для DCM верхней границей цикла со счетчиком от 0 до numberOfTIDs - 1, в котором затем последовательно через Dem_DcmGetDTRData запрашиваются отдельные значения результатов DTR, результаты тестов и предельные значения [SWS_Dem_00761] [SWS_Dem_00768].
Функция возвращает возвращаемое значение E_OK, если количество TID удалось успешно определить, и E_NOT_OK, если запрос завершился неудачно [SWS_Dem_00767]. Специфические ошибки разработки (DET) или детальные причины ошибок для случая сбоя в спецификации отдельно не указаны.
Вызов предусмотрен исключительно для OBD-релевантных электронных блоков управления. Интерфейс доступен в DEM только тогда, когда конфигурационный параметр DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00767].
Данное указание по использованию было сгенерировано ИИ и опирается исключительно на документы спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Синхронная и реентерабельная функция Dem_DcmGetDTRData служит Diagnostic Communication Manager (DCM) для запроса данных DTR (Diagnostic Test Results), включая значение TID, UaSID, а также текущий результат теста с нижним и верхним предельными значениями [SWS_Dem_00768]. Она доступна исключительно в электронных блоках управления с поддержкой OBD, если сконфигурировано DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00768].
Использование и взаимодействие
DCM вызывает функцию для получения доступных данных DTR для определенного Obdmid и TIDindex [SWS_Dem_00762]. Запрос обычно выполняется итеративно по индексу TIDindex от 0 до numberOfTIDs - 1, при этом общее количество предварительно определяется через Dem_DcmGetNumTIDsOfOBDMID() [SWS_Dem_00768], [SWS_Dem_00762]. Через выходные параметры TIDvalue, UaSID, Testvalue, Lowlimvalue и Upplimvalue предоставляются значения для ответа тестеру [SWS_Dem_00768].
Обработка ошибок и граничные условия
Функция возвращает E_OK при успешном определении результатов DTR и E_NOT_OK в случае ошибки [SWS_Dem_00768]. Ошибка возникает, в частности, если связанное диагностическое событие недоступно:
- Если событие установлено как недоступное, оно обрабатывается как несконфигурированное событие, и
Dem_DcmGetDTRDataзавершается сбоем [SWS_Dem_01108]. - Если функция вызывается для DTR, связанное через
DemDtrEventRefсобытие которого сконфигурировано сDemEventAvailable == FALSE, DEM обязательно возвращаетE_NOT_OK[SWS_Dem_01336]. В этом случае все выходные параметры не определены [SWS_Dem_01336].
Это указание по использованию было сгенерировано автоматически на основе требований спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование
Синхронная функция Dem_J1939DcmSetDTCFilter (service ID 0x90, объявлена в Dem_J1939Dcm.h) устанавливает атрибуты маски фильтра для выборки J1939-DTC для адресуемого через ClientId узла J1939 [SWS_Dem_00970], [SWS_Dem_00855]. В качестве критериев фильтрации служат фильтр статуса DTCStatusFilter (возможные значения: DEM_J1939DTC_ACTIVE, DEM_J1939DTC_PREVIOUSLY_ACTIVE, DEM_J1939DTC_PENDING, DEM_J1939DTC_PERMANENT или DEM_J1939DTC_CURRENTLY_ACTIVE), функциональная группа DTCKind, а также исходная память DTCOrigin [SWS_Dem_00970]. Через выходной параметр LampStatus вызов возвращает текущее комбинированное состояние ламп отфильтрованных DTC [SWS_Dem_00970], [SWS_Dem_00857]. Кроме того, внутренний счетчик сбрасывается на первое подходящее событие [SWS_Dem_00855]. Интерпретация: вызывающей стороной интерфейса, вероятно, является модуль J1939Dcm для подготовки диагностических операций чтения. Вопрос Q-5f25345851de686f (открытый)
Обработка ошибок и возвращаемые значения
В качестве возвращаемого значения функция выдает E_OK при успешной конфигурации фильтра или E_NOT_OK, если фильтр установить не удалось [SWS_Dem_00970]. Подавленные DTC не охватываются фильтрацией и обрабатываются так, как если бы критерий фильтра не выполнялся; они остаются невидимыми для запросов [SWS_Dem_01101].
Параллелизм и ограничения
Функция является реентерабельной для разных значений ClientId, но нереентерабельной для одной и той же ClientId [SWS_Dem_00970]. Поэтому следует избегать конкурирующих вызовов фильтрации к одной и той же памяти событий J1939.
Взаимодействие
Установка фильтра формирует основу для последующей обработки:
- определение количества подходящих путей ошибок через
Dem_J1939DcmGetNumberOfFilteredDTC[SWS_Dem_00855], [SWS_Dem_00874], [SWS_Dem_00972], - итеративное считывание подходящих событий через
Dem_J1939DcmGetNextFilteredDTC[SWS_Dem_00855], [SWS_Dem_00875], а также - предоставление количества активных или ранее активных DTC для сообщений о готовности (DM05) через
Dem_J1939DcmReadDiagnosticReadiness1[SWS_Dem_00909].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция [SWS_Dem_00972] асинхронно определяет количество DTC J1939, которые соответствуют критериям фильтрации, ранее заданным с помощью Dem_J1939DcmSetDTCFilter в первичной памяти событий переданного ClientId ([SWS_Dem_00874]). Предварительный вызов Dem_J1939DcmSetDTCFilter обязателен, поскольку он устанавливает атрибуты маски фильтра и сбрасывает внутренний счетчик на первое событие ([SWS_Dem_00855]).
Результат подсчета предоставляется через выходной параметр NumberOfFilteredDTC. Для процесса и возвращаемых значений действуют следующие правила:
- Успех: как только общее число подходящих DTC полностью определено, функция возвращает
E_OK([SWS_Dem_00874]). - Прерывание: если процесс поиска приходится прервать из-за внутренних ограничений, функция возвращает
DEM_PENDING. В этом случае выходной параметр еще не обязан быть действительным; последующий вызов возобновляет определение после прерванного элемента ([SWS_Dem_00874]). - Коды ошибок: спецификация предусматривает, кроме того, значения статуса
DEM_NO_SUCH_ELEMENTиDEM_BUFFER_TOO_SMALL([SWS_Dem_00972]).
Что касается видимости, [SWS_Dem_01101] предписывает, что подавленные ошибки (suppressed DTCs) должны обрабатываться так, как если бы критерий фильтрации не выполнялся. Функция определена как неревходабельная ([SWS_Dem_00972]), поэтому одновременных вызовов необходимо избегать.
Это указание по использованию создано ИИ и обобщает ключевые аспекты спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00973] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);
Gets the next filtered J1939 DTC.
Асинхронная и нереентерабельная функция Dem_J1939DcmGetNextFilteredDTC (Service-ID 0x92) считывает следующий отфильтрованный DTC J1939 из памяти событий J1939, адресуемой через ClientId [SWS_Dem_00973]. Она объявлена через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00973].
Если функция находит событие, соответствующее критерию фильтрации, она возвращает E_OK и предоставляет через выходные параметры соответствующий J1939DTC, а также сопутствующий OccurenceCounter [SWS_Dem_00877], [SWS_Dem_00973]. Если счётчик возникновения превышает 126 (0x7E), возвращаемое значение строго ограничивается величиной 126 (0x7E) [SWS_Dem_00877].
Если процесс поиска должен быть прерван из-за внутренних ограничений или особенностей реализации, функция возвращает DEM_PENDING [SWS_Dem_00877], [SWS_Dem_00973]. В этом случае выходные параметры не содержат достоверных данных; следующий вызов возобновляет поиск непосредственно после прерванного элемента [SWS_Dem_00877]. Если других подходящих элементов нет, возвращаемым значением является DEM_NO_SUCH_ELEMENT; если буфер слишком мал, возвращается DEM_BUFFER_TOO_SMALL [SWS_Dem_00973].
Подавленные диагностические события (suppressed DTCs) невидимы для функции запроса; они обрабатываются Dem_J1939DcmGetNextFilteredDTC так, как если бы критерий фильтра не выполнялся [SWS_Dem_01101].
Этот текст сгенерирован автоматически с помощью ИИ и не заменяет официальную спецификацию AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование
Синхронный интерфейс Dem_J1939DcmFirstDTCwithLampStatus инициализирует фильтрацию на первый подходящий диагностический код неисправности (DTC) для ответа DM31 конкретного узла [SWS_Dem_00974]. Единственным входным параметром служит ClientId типа uint8, с помощью которого адресуется соответствующая память событий J1939 [SWS_Dem_00974]. Функция не имеет ни входных, ни выходных параметров и не возвращает значения (void) [SWS_Dem_00974]. Она объявлена через заголовочный файл Dem_J1939Dcm.h с Service-ID 0x93 [SWS_Dem_00974]. Интерпретация: предполагается, что функция вызывается преимущественно модулем J1939Dcm для инициализации фильтрации перед передачей сообщений о статусе ламп DM31. Вопрос Q-064513be4f06584b (открытый)
Логика фильтрации и взаимодействие
Каждый вызов функции сбрасывает внутренний счётчик на первое событие, которому для указанного ClientId назначен J1939DTC [SWS_Dem_00880]. В отношении статуса диагностических событий спецификация предписывает, что подавленный DTC (suppressed DTC) должен оставаться невидимым для функций запроса DCM [SWS_Dem_01101]. Соответственно, Dem_J1939DcmFirstDTCwithLampStatus обрабатывает подавленные DTC так, как если бы критерий фильтра не был выполнен [SWS_Dem_01101].
Параллелизм и ограничения
Что касается параллельного выполнения, интерфейс реентерабелен для вызовов с различными значениями ClientId, но нереентерабелен для одного и того же значения ClientId [SWS_Dem_00974]. Следовательно, параллельные запросы с одинаковыми идентификаторами клиентов к одной и той же памяти событий J1939 недопустимы.
Этот текст сгенерирован автоматически ИИ-ассистентом курирования.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование и контекст вызова
Функция Dem_J1939DcmGetNextDTCwithLampStatus выполняется синхронно и является неревходабельной ([SWS_Dem_00975]). Она служит в рамках диагностической коммуникации J1939 (DM31) для итеративного запроса следующего отфильтрованного DTC J1939 вместе с соответствующим статусом ламп и счетчиком событий (OccurenceCounter) из памяти событий, адресуемой через ClientId ([SWS_Dem_00975]). Итерация предполагает, что память событий была предварительно подготовлена с помощью Dem_J1939DcmFirstDTCwithLampStatus ([SWS_Dem_00881]).
Последовательность выполнения и возвращаемые значения
Каждый вызов выполняет поиск в памяти следующего события с назначенным DTC J1939 ([SWS_Dem_00881]). Подавленные DTC (suppressed DTC) обрабатываются как неподходящие события и пропускаются ([SWS_Dem_01101]).
-
E_OK: подходящее событие найдено. ПараметрыLampStatus,J1939DTCиOccurenceCounterсодержат действительные значения ([SWS_Dem_00882]). Интерпретация: условиеDEM_FILTERED_OK, указанное в спецификации параметров, вероятно, относится кE_OK, посколькуDEM_FILTERED_OKне объявлен в качестве возвращаемого значения для этой функции ([SWS_Dem_00975]). Вопрос Q-5284fb30b98babf6 (открытый) -
DEM_PENDING: внутренний поиск пришлось прервать из-за ограничений реализации. Выходные параметры не содержат действительных данных, и следующий вызов возобновляет поиск за прерванным элементом ([SWS_Dem_00882]). -
DEM_NO_SUCH_ELEMENT: в памяти больше нет подходящих событий; выходные параметры недействительны ([SWS_Dem_00881]). -
DEM_BUFFER_TOO_SMALL: переданный буфер слишком мал ([SWS_Dem_00975]).
Статус ламп и диапазон значений
Для определения статуса ламп DEM проверяет бит состояния UDS 7 (WarningIndicator), а также соответствующую ссылку на индикатор: Malfunction Indicator Lamp ([SWS_Dem_00883]), Red Stop Lamp ([SWS_Dem_00887]) и Amber Warning Lamp ([SWS_Dem_00891]) устанавливаются в Lamp On, если бит активен и ссылка назначена; в противном случае они имеют значение Lamp Off. Значение OccurenceCounter при показаниях счетчика более 126 (0x7F) ограничивается ровно до 126 ([SWS_Dem_00882]).
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Использование
Функция Dem_J1939DcmClearDTC ([SWS_Dem_00976]) предоставляется модулю J1939Dcm через заголовочный файл Dem_J1939Dcm.h для удаления всех активных или ранее активных диагностических кодов неисправностей (DTC) из памяти событий ([SWS_Dem_00878]). Вызов работает асинхронно. В качестве входных параметров интерфейс ожидает тип фильтра DTCTypeFilter для определения удаляемых DTC, DTCOrigin для выбора исходной памяти, а также ClientId для адресации памяти событий J1939.
Обработка ошибок и возвращаемые значения
Результат выполнения сигнализируется через возвращаемый тип Std_ReturnType:
E_OK: операция удаления успешно завершена.DEM_PENDING: очистка выполняется; вызывающая сторона должна вызвать функцию повторно позднее.DEM_CLEAR_BUSY: другой клиент одновременно выполняет операцию удаления; операция не запускается и должна быть повторена позже.DEM_WRONG_DTC: выбранный DTC не существует в выбранном формате или удаление ограничено группами согласно конфигурации.DEM_WRONG_DTCORIGIN: указанная исходная память не существует.DEM_CLEAR_FAILEDилиDEM_CLEAR_MEMORY_ERROR: удаление завершилось сбоем либо возникла ошибка при удалении области памяти (например, при неполном удалении энергонезависимой памяти).
Параллелизм и ограничения
Согласно [SWS_Dem_00976] функция является реентерабельной для различных Client-ID, однако нереентерабельной для одного и того же ClientId. Поэтому параллельные вызовы удаления через идентичные клиенты недопустимы.
Взаимодействие
Согласно [SWS_Dem_00879] удаление сбрасывает статус всех затронутых событий и удаляет соответствующие записи памяти событий. Кроме того, операция удаления согласно [SWS_Dem_00878] инициирует повторную инициализацию затронутых SW-C и BSW-модулей в соответствии с [SWS_Dem_00003].
Этот текст был автоматически сгенерирован на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронная функция Dem_J1939DcmSetFreezeFrameFilter служит для установки фильтра стоп-кадров для конкретного узла через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00977]. Она конфигурирует атрибуты маски фильтра для последующих запросов с помощью Dem_J1939DcmGetNextFreezeFrame и при этом сбрасывает внутренний счетчик на первый стоп-кадр [SWS_Dem_00899].
Параметры и возвращаемые значения
FreezeFrameKind: определяет тип фильтра [SWS_Dem_00977]. Доступными типами являютсяDEM_J1939DCM_FREEZEFRAME(фильтрация данных вDemJ1939FreezeFrameClassRef),DEM_J1939DCM_EXPANDED_FREEZEFRAME(фильтрация данных вDemJ1939ExpandedFreezeFrameClassRef), а такжеDEM_J1939DCM_SPNS_IN_EXPANDED_FREEZEFRAME([SWS_Dem_00977], [SWS_Dem_00899]).ClientId: передает идентификатор для адресации памяти событий J1939 [SWS_Dem_00977].- Возвращаемое значение: возвращает
E_OKпри успешном выполнении илиE_NOT_OK, если фильтр не удалось установить [SWS_Dem_00977].
Параллелизм и валидность
С точки зрения параллелизма функция является ревходабельной для различных значений ClientId, однако неревходабельна для идентичных значений ClientId [SWS_Dem_00977]. Установленные атрибуты маски фильтра остаются в силе после вызова до тех пор, пока не будет выполнен повторный вызов Dem_J1939DcmSetFreezeFrameFilter или модуль DEM не будет повторно инициализирован [SWS_Dem_00899].
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование
Асинхронная и нереентерабельная функция Dem_J1939DcmGetNextFreezeFrame пошагово считывает данные Freeze Frame для конкретной памяти событий [SWS_Dem_00978]. Итерация ориентируется на критерии фильтрации FreezeFrameKind и ClientId, предварительно установленные через Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00900]. Полезные данные копируются в буфер DestBuffer (для Expanded Freeze Frames без информации SPN и с заполнением нулями неиспользуемых битов), в то время как BufSize передаёт размер буфера и возвращает фактически записанное количество байтов [SWS_Dem_00978], [SWS_Dem_00903]. Кроме того, вызов возвращает соответствующий J1939DTC, а также OccurenceCounter, который при значениях более 126 ограничивается значением 0x7F [SWS_Dem_00903].
Возвращаемые значения и обработка ошибок
Возвращаемые значения управляют ходом итерации:
E_OK: набор данных успешно найден и передан [SWS_Dem_00978], [SWS_Dem_00903]. УпоминаниеDEM_FILTERED_OKв описании параметров, по всей видимости, следует понимать как редакционный синоним дляE_OK. Вопрос Q-e941066640c694b9 (открытый)DEM_NO_SUCH_ELEMENT: больше нет наборов данных, соответствующих критериям фильтрации [SWS_Dem_00900].DEM_PENDING: внутренний поиск был прерван; последующий вызов возобновляет поиск с места прерывания [SWS_Dem_00902].DEM_BUFFER_TOO_SMALLилиDEM_FILTERED_BUFFER_TOO_SMALL: размера буфера недостаточно; операция прерывается без переноса данных [SWS_Dem_00978], [SWS_Dem_00903].
При передаче неподдерживаемого типа фильтра функция сообщает об ошибке DET DEM_E_WRONG_CONDITION; допустимыми являются исключительно DEM_J1939DCM_FREEZEFRAME и DEM_J1939DCM_EXPANDED_FREEZEFRAME [SWS_Dem_00901]. Если возвращаемое значение не равно успеху, выходные параметры не содержат корректных данных [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].
Ограничения и взаимодействие
Подавленные DTC игнорируются запросом и обрабатываются как несоответствующие критериям фильтра [SWS_Dem_01101].
Это указание по использованию сгенерировано автоматически и опирается исключительно на спецификацию AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);
Gets next SPN.
Использование и семантика
Функция Dem_J1939DcmGetNextSPNInFreezeFrame пошагово считывает следующий SPN (Suspect Parameter Number) из расширенного Freeze Frame ([SWS_Dem_00979]). Каждый вызов выполняет итерацию к следующему элементу определения SPN для памяти событий, адресуемой через ClientId ([SWS_Dem_00904]). При успешном нахождении вызов возвращает E_OK, а также найденный SPN через SPNSupported и длину его данных через SPNDataLength ([SWS_Dem_00979], [SWS_Dem_00907]).
Асинхронная обработка и возвращаемые значения
Операция специфицирована как асинхронная ([SWS_Dem_00979]). Если процесс поиска должен быть прерван из-за внутренних ограничений, функция возвращает DEM_PENDING; в этом случае выходные параметры не обязательно валидны, а последующий вызов продолжает поиск с места прерывания ([SWS_Dem_00905]). Если в определении больше нет SPN, возвращается DEM_NO_SUCH_ELEMENT, при этом выходные параметры также не обязательно являются валидными ([SWS_Dem_00904]). Если предоставленного буфера недостаточно, интерфейс возвращает DEM_BUFFER_TOO_SMALL ([SWS_Dem_00979]).
Обработка ошибок и параллелизм
Если запрошен неподдерживаемый тип Freeze Frame, модуль генерирует ошибку DET DEM_E_WRONG_CONDITION; допустимым является исключительно Dem_SPNsInExpandedFreezeFrame ([SWS_Dem_00906]). Поскольку функция определена как нереентерабельная ([SWS_Dem_00979]), она не должна вызываться параллельно для одного и того же контекста. Заголовочный файл Dem_J1939Dcm.h предоставляет данный интерфейс ([SWS_Dem_00979]).
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронная функция Dem_J1939DcmSetRatioFilter устанавливает фильтр соотношений для конкретного узла J1939 и инициализирует фильтрацию соотношений IUMPR в соответствии с [SWS_Dem_00980]. При этом она сбрасывает внутренний счётчик на первый действительный SPN с определённым DemRatioId, чтобы подготовить последующий пошаговый опрос через Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00912].
Через выходные параметры функция предоставляет вышестоящие значения счётчиков:
IgnitionCycleCounter: возвращает счётчик циклов зажигания в соответствии с SAE J1939-73 (раздел 5.7.20.1) [SWS_Dem_00912].OBDMonitoringConditionsEncountered: возвращает счётчик наступивших условий мониторинга OBD в соответствии с SAE J1939-73 (раздел 5.7.20.2), определённый CARB как General Denominator [SWS_Dem_00912].ClientId: идентифицирует вызывающий клиент для адресации памяти событий J1939 [SWS_Dem_00980].
С точки зрения параллелизма функция является реентерабельной для различных значений ClientId, однако нереентерабельна для одного и того же ClientId [SWS_Dem_00980]. Интерпретация: вызов обычно должен выполняться синхронно из контекста выполнения J1939 Diagnostic Communication Manager (J1939Dcm) для запроса диагностических данных IUMPR. Вопрос Q-e577651b88f64132 (открытый) При успешной установке фильтра функция возвращает E_OK; в случае сбоя установки возвращается E_NOT_OK [SWS_Dem_00980].
При взаимодействии с диагностическими событиями действует правило: подавленные DTC не должны быть видны для таких функций запроса, как Dem_J1939DcmSetRatioFilter, и должны обрабатываться так, как если бы фильтр не подошел [SWS_Dem_01101].
Это указание по использованию было автоматически сгенерировано на основе AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00981] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);
Gets the next filtered Ratio.
Использование
Синхронная и нереентерабельная функция Dem_J1939DcmGetNextFilteredRatio ([SWS_Dem_00981]) служит для итеративного считывания следующего отфильтрованного соотношения (Ratio) IUMPR. Через параметр ClientId адресуется соответствующая память событий J1939. При успешном вызове функция через выходные параметры SPN, Numerator и Denominator возвращает Suspect Parameter Number, а также числитель и знаменатель соответствующего системного монитора ([SWS_Dem_00981]).
Порядок выполнения и взаимодействие
Для корректной итерации фильтр необходимо предварительно инициализировать с помощью Dem_J1939DcmSetRatioFilter ([SWS_Dem_00912]). Этот вызов сбрасывает внутренний счетчик на первый действительный SPN с определенным DemRatioId, на который опираются последующие вызовы Dem_J1939DcmGetNextFilteredRatio. Подавленный DTC не виден для запроса и обрабатывается так, как если бы фильтр не подошел ([SWS_Dem_01101]).
Возвращаемые значения и обработка ошибок
Согласно [SWS_Dem_00981] определены следующие возвращаемые значения:
E_OK: операция прошла успешно. Только в этом случаеSPN,NumeratorиDenominatorсодержат действительные данные (упоминаниеDEM_FILTERED_OKв описании параметров, вероятно, следует интерпретировать какE_OK). Вопрос Q-57774bbc88fe3c0b (открытый)DEM_NO_SUCH_ELEMENT: больше нет подходящих элементов.DEM_PENDING: операция прошла успешно, однако результат еще не готов.DEM_BUFFER_TOO_SMALL: переданный буфер слишком мал.
Параллелизм
Поскольку функция объявлена как нереентерабельная ([SWS_Dem_00981]), ее нельзя вызывать параллельно для одного и того же ClientId.
Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Преимущественную силу имеют упомянутые спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронный интерфейс Dem_J1939DcmReadDiagnosticReadiness1 (в стандарте Classic приводится под Dem_J1939DcmReadDiagnosticReadiness) служит для запроса вычисленного Diagnostic Event Manager значения Diagnostic Readiness 1 (DM05) [SWS_Dem_00982]. Он объявлен через заголовочный файл Dem_J1939Dcm.h и имеет Service-ID 0x9b [SWS_Dem_00982].
Использование и параметры
Вызов выполняется синхронно и использует следующие параметры функции [SWS_Dem_00982]:
ClientId(IN,uint8): идентифицирует адресуемую память событий J1939 (J1939 event memory) [SWS_Dem_00982].DataValue(OUT, указатель наDem_J1939DcmDiagnosticReadiness1Type): указывает на буфер размером 8 байт, в который DEM записывает вычисленное содержимое Diagnostic Readiness 1 (DM05) [SWS_Dem_00982].
Возвращаемые значения и обработка ошибок
Функция возвращает статус типа Std_ReturnType [SWS_Dem_00982]:
E_OK: сервис был успешно выполнен, и данные готовности были помещены в выходной буфер [SWS_Dem_00982].E_NOT_OK: операция завершилась сбоем [SWS_Dem_00982]. Специфические коды ошибок, события DEM или сообщения DET в спецификации функции не указаны [SWS_Dem_00982].
Параллелизм и ограничения
Что касается одновременного доступа, сервис специфицирован как ревходабельный для различных ClientId, однако явно определен как неревходабельный для одного и того же ClientId [SWS_Dem_00982].
Это указание по использованию было создано автоматически на основе данных спецификации AUTOSAR R20-11.
функция 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.
Синхронная функция Dem_J1939DcmReadDiagnosticReadiness2 (Service-ID 0x9c) служит для запроса вычисленного DEM значения Diagnostic Readiness 2 (DM21) [SWS_Dem_00983]. Интерфейс предоставляется через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00983].
Для вызова определены два параметра [SWS_Dem_00983]:
ClientId(вход): адресует соответствующую память событий J1939 [SWS_Dem_00983].DataValue(выход): указатель на 8-байтовый буфер типаDem_J1939DcmDiagnosticReadiness2Typeдля приема вычисленных данных DM21 [SWS_Dem_00983].
В качестве возвращаемого значения функция выдает Std_ReturnType; при успешном запросе возвращается E_OK, тогда как в случае ошибки сообщается E_NOT_OK [SWS_Dem_00983]. Специфические причины ошибок не указаны отдельно; вызывающей стороне при E_NOT_OK, вероятно, следует исходить из того, что буфер не содержит действительных данных. Вопрос Q-97b94d15a8634712 (открытый)
Что касается параллелизма, сервис является ревходабельным для различных значений ClientId, однако неревходабелен для одного и того же ClientId [SWS_Dem_00983]. Поэтому одновременные вызовы для одного и того же ClientId должны быть сериализованы в вызывающем контексте.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
функция 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.
Служба Dem_J1939DcmReadDiagnosticReadiness (специфицированная в сигнатуре как Dem_J1939DcmReadDiagnosticReadiness3) служит для синхронного считывания определенных DEM данных о Diagnostic Readiness 3 (DM26) [SWS_Dem_00770]. Объявление предоставляется через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00770]. Судя по имени интерфейса, вызов, вероятно, выполняется преимущественно модулем J1939Dcm. Вопрос Q-dc204541dfc23d6b (открытый)
Интерфейс ожидает два параметра [SWS_Dem_00770]:
ClientId(in): адресует соответствующую память событий J1939 [SWS_Dem_00770].DataValue(out): указатель на 8-байтовый буфер типаDem_J1939DcmDiagnosticReadiness3Typeдля приема вычисленных данных DM26 [SWS_Dem_00770].
В качестве возвращаемого значения функция возвращает E_OK, если операция была успешной, или E_NOT_OK при ошибке во время выполнения [SWS_Dem_00770].
С точки зрения параллелизма функция является ревходабельной для различных значений ClientId, однако неревходабельна для идентичных значений ClientId [SWS_Dem_00770]. Поэтому параллельные вызовы для одного и того же клиента должны исключаться или синхронизироваться вызывающей стороной.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
функция 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)
функция 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)
Использование
Синхронная функция Dem_RepIUMPRFaultDetect служит для сообщения о том, что OBD-монитор выполнил все условия выполнения и, следовательно, мог бы обнаружить потенциальные неисправности [SWS_Dem_00313]. Интерфейс предоставляется через заголовок Dem.h и доступен исключительно в блоках управления с поддержкой OBD, если DemOBDSupport не сконфигурирован как DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00313], [SWS_Dem_00360].
В качестве параметра передается идентификатор RatioID типа Dem_RatioIdType, если выбрана опция интерфейса «API» [SWS_Dem_00313]. При успешной фиксации результата IUMPR функция возвращает статус E_OK [SWS_Dem_00313].
Параллелизм и поведение при ошибках
В отношении параллелизма служба реентерабельна для различных идентификаторов RatioID, однако нереентерабельна для одного и того же значения RatioID [SWS_Dem_00313]. Поэтому вызывающая сторона должна избегать параллельных вызовов с идентичным идентификатором.
Если соответствующее событие устанавливается как недоступное, модуль DEM обрабатывает его так, как если бы оно не было сконфигурировано в системе [SWS_Dem_01108]. Эта деактивация также явно затрагивает Dem_RepIUMPRFaultDetect [SWS_Dem_01108]; интерпретация: в этом состоянии вызов аналогично остальным затронутым API статуса, предположительно, вернет E_NOT_OK. Вопрос Q-6d1775c9bff08f42 (открытый)
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
функция 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)
функция 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)
Синхронная и реентерабельная функция Dem_RepIUMPRDenRelease служит для разрешения знаменателя конкретного монитора по физическим причинам, таким как достижение определенных температурных условий или минимальной активности [SWS_Dem_00315]. DEM предоставляет этот интерфейс для программных компонентов (SW-C), имеющих отношение к IUMPR, чтобы целенаправленно управлять знаменателем, относящимся к соответствующему RatioID [SWS_Dem_00308].
Предоставление и поведение функции подчиняются фиксированным условиям конфигурации и времени выполнения:
- Доступность и конфигурация: API доступен исключительно в блоках управления, имеющих отношение к OBD, если
DemOBDSupportсконфигурирован отличным отDEM_OBD_NO_OBD_SUPPORT[SWS_Dem_00315]. Кроме того, интерфейс для разрешения при специальных условиях предоставляется в том случае, еслиDemIUMPRDenGroupсконфигурирован какDEM_IUMPR_DEN_PHYS_API[SWS_Dem_00362]. - Параметры и возвращаемые значения: в качестве входного параметра передается идентификатор
RatioID. Функция возвращаетE_OK, если статус знаменателя IUMPR был успешно сообщен, в противном случаеE_NOT_OK[SWS_Dem_00315]. - Поведение при ошибках для неактивных событий: если соответствующее событие задано как недоступное, оно обрабатывается так, как если бы оно не было сконфигурировано в системе; вызов
Dem_RepIUMPRDenReleaseнепосредственно затронут этим и возвращаетE_NOT_OK[SWS_Dem_01108].
Благодаря реентерабельному исполнению функция при необходимости может вызываться параллельно из различных контекстов SW-C [SWS_Dem_00315].
Этот текст был создан ИИ и не заменяет официальную спецификацию AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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)
Использование
Синхронная функция Dem_SetPtoStatus ([SWS_Dem_00627]) служит для установки статуса механизма отбора мощности (Power Take-Off, PTO) в Diagnostic Event Manager (DEM). Интерфейс объявлен в заголовочном файле Dem.h и имеет идентификатор сервиса 0x79 ([SWS_Dem_00627]).
- Параметры: входной параметр
PtoStatus(типboolean) передает статус механизма отбора мощности, гдеTRUEозначает активен, аFALSE— неактивен ([SWS_Dem_00627]). Входные/выходные или выходные параметры отсутствуют. - Возвращаемое значение: тип возвращаемого значения —
Std_ReturnType. Функция возвращаетE_OK, если новый статус PTO был принят DEM, иE_NOT_OKво всех остальных случаях ([SWS_Dem_00627]).
Параллелизм и ограничения
Функция работает синхронно и специфицирована как нереентерабельная (Non Reentrant) ([SWS_Dem_00627]).
Системный контекст и конфигурация
Интерфейс требуется исключительно в OBD-релевантных электронных блоках управления ([SWS_Dem_00627]). Он доступен только тогда, когда конфигурационный параметр DemGeneral.DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT ([SWS_Dem_00627]).
Этот текст был сгенерирован ИИ и основан на спецификациях модуля DEM в AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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
Использование и параметры
Синхронная функция Dem_ReadDataOfPID01 (Service ID 0xb3) служит для запроса вычисленного модулем Diagnostic Event Manager (DEM) значения PID $01 [SWS_Dem_01167]. Интерфейс предоставляется через заголовочный файл Dem.h [SWS_Dem_01167]. В качестве выходного параметра функция ожидает PID01value, который передается как указатель на буфер [SWS_Dem_01167]. Этот буфер обязательно должен быть выделен и предоставлен вызывающим приложением с фиксированным размером 4 байта для приема вычисленных данных [SWS_Dem_01167].
Обработка ошибок и возвращаемые значения
В качестве типа возвращаемого значения интерфейс формально предоставляет Std_ReturnType, однако, согласно спецификации, без исключений возвращает E_OK [SWS_Dem_01167]. Значение ошибки E_NOT_OK не возникает никогда [SWS_Dem_01167]. Для этого интерфейса не специфицированы ни специфические коды ошибок, ни сообщения в DET или DEM [SWS_Dem_01167].
Параллелизм и ограничения
Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dem_01167]. Поэтому вызывающие компоненты должны гарантировать отсутствие одновременных вызовов. Кроме того, API функционально ограничен и требуется исключительно в ECU с релевантностью к OBD [SWS_Dem_01167].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
функция 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)
функция 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)
функция 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)
функция 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)
функция 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)
функция 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)
функция 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.
функция Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF
Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);
Gets the DTC Severity availability mask.
функция 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
функция 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)
функция 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
Функция обратного вызова Dem_CallbackEventSyncStorageProcessed синхронно вызывается Diagnostic Event Manager (DEM), как только завершается внутренняя обработка Dem_SetEventFailedWithSyncFreezeFrame ([SWS_Dem_91042]). Она уведомляет вызывающий компонент о том, что дальнейший вызов Dem_SetEventFailedWithSyncFreezeFrame для того же ID события может быть обработан DEM ([SWS_Dem_91042]).
Для использования и интеграции действуют следующие свойства интерфейса и выполнения:
- Параметры и возвращаемое значение: интерфейс не имеет ни входных, ни выходных, ни входных/выходных параметров ([SWS_Dem_91042]). Тип возвращаемого значения —
Std_ReturnType, при этом из соображений совместимости с RTE допустимо и возвращается исключительно возвращаемое значениеE_OK([SWS_Dem_91042]). - Параллелизм: функция специфицирована как ревходабельная ([SWS_Dem_91042]).
- Обработка ошибок: специфических кодов ошибок или сообщений в систему отслеживания ошибок разработки (DET) не предусмотрено ([SWS_Dem_91042]).
Что касается взаимодействия и конфигурации, существует строгое предварительное условие: Dem_CallbackEventSyncStorageProcessed разрешается конфигурировать исключительно для диагностических событий, параметр DemEventReportingType которых установлен в IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING ([SWS_Dem_01356]). Кроме того, в релизе R20-11 этот элемент снабжен аннотацией со статусом draft ([SWS_Dem_91042], [SWS_Dem_01356]).
Это указание по использованию было сгенерировано автоматически на основе требований спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dem_MainFunction [SWS_Dem_00266] 📄 PDF
void Dem_MainFunction (void);
Processes all not event based Dem internal functions.
Базовая функция Dem_MainFunction имеет сигнатуру void Dem_MainFunction(void) с Service-ID 0x55 и предоставляется через заголовочный файл SchM_Dem.h ([SWS_Dem_00266]). Она не принимает параметров, не возвращает значения и служит для выполнения всех не основанных на событиях внутренних процессов модуля DEM ([SWS_Dem_00266], [SWS_Dem_00125]).
Для контекста вызова и обработки ошибок действуют особые исключения в жизненном цикле модуля: если обнаружение ошибок разработки DemDevErrorDetect установлено в TRUE, вызов регулярных интерфейсов DEM до полной инициализации приводит к сообщению об ошибке DEM_E_UNINIT; однако Dem_MainFunction явно исключена из этой генерации ошибок ([SWS_Dem_00124]). Аналогичным образом после вызова Dem_Shutdown функция освобождается от сообщения об ошибке DEM_E_UNINIT до тех пор, пока Dem_Init не будет вызван повторно ([SWS_Dem_00368]).
Во взаимодействии с памятью ошибок функция решающим образом управляет сбором и буферизацией диагностических данных:
- Если
DemEnvironmentDataCaptureсконфигурирован вDEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING(применительно кDemPrimaryMemoryилиDemUserDefinedMemory), специфичные для события данные Freeze Frame ([SWS_Dem_00461]) и записи данных Extended Data ([SWS_Dem_01081]) должны собираться не позднее следующего циклаDem_MainFunction. - Если
DemEnvironmentDataCaptureустановлен вDEM_CAPTURE_SYNCHRONOUS_TO_REPORTING, модуль DEM ставит данные окружения в очередь до следующего вызоваDem_MainFunction([SWS_Dem_01083]). Модуль при этом буферизует как минимум сконфигурированное количество согласноDemMaxNumberEventEntryEventBuffer; при переполнении очереди данные собираются при обработке события внутриDem_MainFunction([SWS_Dem_01083]).
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_ComponentIdType [SWS_Dem_01114] 📄 PDF
Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.
тип Dem_ConfigType [SWS_Dem_00924] 📄 PDF
This type of the external data structure shall contain the post build initialization data for the Dem.
тип Dem_DTCKindType [SWS_Dem_00932] 📄 PDF
This type is used to filter DTCs for their kind.
тип Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF
This type is used to request a DTC with specific attributes.
Использование и диапазон значений
Тип данных Dem_DTCRequestType является производным от uint8 и доступен через заголовочный файл Dem.h [SWS_Dem_00935]. Он служит для того, чтобы запрашивать Diagnostic Trouble Code (DTC) на основе специфических временных атрибутов [SWS_Dem_00935].
Допустимый диапазон значений включает следующие значения перечисления [SWS_Dem_00935]:
DEM_FIRST_FAILED_DTC(0x01): запрашивает DTC, который по времени завершился сбоем первым.DEM_MOST_RECENT_FAILED_DTC(0x02): запрашивает DTC, который завершился сбоем последним.DEM_FIRST_DET_CONFIRMED_DTC(0x03): запрашивает DTC, который первым был распознан как подтвержденный.DEM_MOST_REC_DET_CONFIRMED_DTC(0x04): запрашивает DTC, который последним был распознан как подтвержденный.
Взаимодействие, параллелизм и обработка ошибок
Тип передается в качестве входного параметра DTCRequest синхронной функции Dem_GetDTCByOccurrenceTime [SWS_Dem_00218]. Через этот параметр задается, по какому критерию должен опрашиваться DTC [SWS_Dem_00218]. Результат возвращается в формате UDS через выходной параметр DTC [SWS_Dem_00218].
Интерфейс реентерабелен для различных вызывающих сторон через разные значения ClientId, однако нереентерабелен для одного и того же ClientId [SWS_Dem_00218]. Возможными возвращаемыми значениями являются E_OK при успешном запросе, E_NOT_OK при ошибках, а также DEM_NO_SUCH_ELEMENT, если соответствующая запись не сохранена [SWS_Dem_00218]. Если результат функции отличается от DEM_OCCURR_OK, параметр DTC не содержит действительных данных [SWS_Dem_00218].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
тип Dem_DTCTranslationFormatType [SWS_Dem_00936] 📄 PDF
DTC translation format as defined in ISO14229-1.
тип Dem_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF
The type to distinguish which DTCs should be filtered.
Использование и диапазон значений
Тип Dem_J1939DcmDTCStatusFilterType представляет собой тип перечисления, основанный на uint8 и предоставляемый через заголовочный файл Dem.h [SWS_Dem_00945]. Он служит для определения того, по какому статусу J1939 следует различать и выбирать диагностические коды неисправностей (DTC) при операциях фильтрации [SWS_Dem_00945].
Специфицированы следующие значения фильтра статуса:
DEM_J1939DTC_ACTIVE(0): фильтрует по активным кодам неисправностей [SWS_Dem_00945].DEM_J1939DTC_PREVIOUSLY_ACTIVE(1): фильтрует по ранее активным кодам неисправностей [SWS_Dem_00945].DEM_J1939DTC_PENDING(2): фильтрует по ожидающим подтверждения кодам неисправностей [SWS_Dem_00945].DEM_J1939DTC_PERMANENT(3): фильтрует по постоянным кодам неисправностей [SWS_Dem_00945].DEM_J1939DTC_CURRENTLY_ACTIVE(4): выполняет фильтрацию по текущим активным диагностическим кодам неисправностей [SWS_Dem_00945].
Взаимодействие и контекст вызова
Тип фильтра используется в качестве входного параметра DTCStatusFilter в интерфейсе Dem_J1939DcmSetDTCFilter [SWS_Dem_00970]. Функция работает синхронно и настраивает фильтр с учётом категории неисправности (DTCKind), источника памяти (DTCOrigin) и соответствующего ClientId для памяти событий J1939 [SWS_Dem_00970]. В качестве интерпретации предполагается, что вызов обычно выполняется из менеджера диагностической связи для J1939.
Вопрос Q-898d508b7b341ef8 (открытый)
Параллелизм и обработка ошибок
Служба Dem_J1939DcmSetDTCFilter является реентерабельной для различных значений ClientId, однако явно нереентерабельна для одного и того же ClientId [SWS_Dem_00970]. Успешная конфигурация фильтра подтверждается службой возвращаемым значением E_OK [SWS_Dem_00970].
Этот текст был создан ИИ на основе документов спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_J1939DcmSetClearFilterType [SWS_Dem_00946] 📄 PDF
The type to distinguish which DTCs gets cleared
тип Dem_J1939DcmSetFreezeFrameFilterType [SWS_Dem_00947] 📄 PDF
The type to distinguish which DTCs gets cleared
тип Dem_J1939DcmLampStatusType [SWS_Dem_00948] 📄 PDF
For details refer SAE J1939-73
Тип структуры Dem_J1939DcmLampStatusType объявлен согласно [SWS_Dem_00948] в Dem.h и служит для сбора статуса ламп J1939 в соответствии с SAE J1939-73. Структура данных объединяет два информационных поля статуса в виде элементов uint8: LampStatus для текущего состояния лампы и FlashLampStatus для соответствующего режима мигания.
При фильтрации DTC J1939 в Diagnostic Event Manager данный тип выступает в роли выходного параметра-указателя в двух синхронных интерфейсах:
- Через
Dem_J1939DcmSetDTCFilter([SWS_Dem_00970]) при инициализации фильтра DTC для конкретной памяти событий J1939 (адресуемой черезClientId) запрашивается начальный статус ламп. - Через
Dem_J1939DcmGetNextDTCwithLampStatus([SWS_Dem_00975]) структура итеративно заполняется соответствующим статусом ламп для каждой подходящей записи в памяти неисправностей.
При обработке ошибок обязательно следует учитывать, что Dem_J1939DcmGetNextDTCwithLampStatus согласно [SWS_Dem_00975] записывает валидные значения в выходной параметр только в том случае, если возвращаемым значением функции является DEM_FILTERED_OK. Если вызов возвращает другое значение, структура не содержит корректных данных.
С точки зрения параллелизма и условий вызова сама структура не имеет внутренней защиты. Реентерабельность зависит от конкретного контекста вызова: Dem_J1939DcmSetDTCFilter реентерабельна для различных идентификаторов клиентов, но нереентерабельна для одного и того же ClientId ([SWS_Dem_00970]). Итеративный опрос через Dem_J1939DcmGetNextDTCwithLampStatus специфицирован как полностью нереентерабельный ([SWS_Dem_00975]).
Этот текст сгенерирован ИИ и основан на спецификациях AUTOSAR релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип 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
Структура Dem_J1939DcmDiagnosticReadiness1Type отображает все элементы данных диагностического сообщения J1939 DM05 и определена согласно [SWS_Dem_00949] в заголовочном файле Dem.h. Кодирование полей выполняется в соответствии с SAE J1939-73 [SWS_Dem_00949].
Структура включает восемь полей данных типа uint8, которые вместе представляют собой 8-байтовый буфер для готовности диагностики 1 (Diagnostic Readiness 1) [SWS_Dem_00949], [SWS_Dem_00982]:
ActiveTroubleCodes: количество активных DTC [SWS_Dem_00949].PreviouslyActiveDiagnosticTroubleCodes: количество ранее активных DTC [SWS_Dem_00949].OBDCompliance: соответствие OBD [SWS_Dem_00949].ContinuouslyMonitoredSystemsSupport_Status: поддержка и статус непрерывно контролируемых систем [SWS_Dem_00949].NonContinuouslyMonitoredSystemsSupport5иNonContinuouslyMonitoredSystemsSupport6: поддержка не непрерывно контролируемых систем (байты 5 и 6) [SWS_Dem_00949].NonContinuouslyMonitoredSystemsStatus7иNonContinuouslyMonitoredSystemsStatus8: статус не непрерывно контролируемых систем (байты 7 и 8) [SWS_Dem_00949].
Основное взаимодействие осуществляется с синхронным API Dem_J1939DcmReadDiagnosticReadiness1 (доступным через Dem_J1939Dcm.h) [SWS_Dem_00982]. Вызывающие стороны передают указатель на экземпляр Dem_J1939DcmDiagnosticReadiness1Type через выходной параметр DataValue вместе с соответствующим ClientId для памяти событий J1939 [SWS_Dem_00982].
В отношении параллелизма и обработки ошибок при доступе на чтение действует следующее: опрашивающая функция возвращает E_OK при успешном расчёте и предоставлении значений DM05 модулем DEM, а также E_NOT_OK в случае ошибки [SWS_Dem_00982]. Доступ является реентерабельным для различных значений ClientId, но нереентерабельным для одного и того же ClientId [SWS_Dem_00982]. Поэтому, вероятно, необходимо защищать экземпляры этого типа от одновременных вызовов в контексте одного и того же клиента. Вопрос Q-7613ded1aa18fd2b (открытый)
Этот текст создан ИИ. Источники взяты исключительно из спецификаций релиза R20-11.
тип 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
Тип структуры Dem_J1939DcmDiagnosticReadiness2Type представляет элементы данных диагностического сообщения DM21 (Diagnostic Readiness 2) согласно SAE J1939-73 и объявляется через заголовочный файл Dem.h [SWS_Dem_00950]. Структура объединяет четыре 16-битных счётчика (uint16) в 8-байтовом буфере [SWS_Dem_00950], [SWS_Dem_00983]:
DistanceTraveledWhileMILisActivated: суммарный пробег в километрах при включённом индикаторе неисправности (MIL) [SWS_Dem_00950].DistanceSinceDTCsCleared: суммарный пробег с момента сброса связанных с выбросами диагностических кодов неисправностей (DTC) [SWS_Dem_00950].MinutesRunbyEngineWhileMILisActivated: суммарное время работы двигателя в минутах при активном MIL [SWS_Dem_00950].TimeSinceDiagnosticTroubleCodesCleared: суммарное время работы двигателя с момента сброса связанных с выбросами DTC [SWS_Dem_00950].
Этот тип используется в качестве выходного буфера DataValue синхронной службы Dem_J1939DcmReadDiagnosticReadiness2, определённой в Dem_J1939Dcm.h [SWS_Dem_00983]. При вызове J1939-DCM передаёт ClientId для адресации конкретной памяти событий в DEM [SWS_Dem_00983]. Функция определяет текущие показания счётчиков и подтверждает успешное предоставление возвращаемым значением E_OK либо сообщает об ошибке с помощью E_NOT_OK [SWS_Dem_00983].
Что касается параллелизма, считывающая служба реентерабельна для различных значений ClientId, однако нереентерабельна для идентичных значений ClientId [SWS_Dem_00983].
Это указание по использованию сгенерировано автоматически с помощью ИИ. Все утверждения основаны исключительно на предоставленном объёме спецификаций AUTOSAR R20-11.
тип 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
Тип структуры Dem_J1939DcmDiagnosticReadiness3Type отображает согласно [SWS_Dem_00951] все элементы данных диагностического сообщения DM26 (Diagnostic Readiness 3). Кодирование содержащихся полей строго регламентируется SAE J1939-73 [SWS_Dem_00951].
Структура включает буфер данных размером 8 байт и состоит из следующих отдельных полей [SWS_Dem_00951]:
TimeSinceEngineStart(uint16): время работы двигателя с момента включения зажигания.NumberofWarmupsSinceDTCsCleared(uint8): количество циклов прогрева OBD с момента сброса всех диагностических кодов неисправностей.ContinuouslyMonitoredSystemsEnableCompletedStatus(uint8): статус включения и завершения непрерывно контролируемых систем.NonContinuouslyMonitoredSystemsEnableStatus5иNonContinuouslyMonitoredSystemsEnableStatus6(каждоеuint8): статус разрешения прерывистых мониторов в текущем цикле (байты 5 и 6).NonContinuouslyMonitoredSystems7иNonContinuouslyMonitoredSystems8(каждоеuint8): статус завершения прерывистых мониторов в текущем цикле (байты 7 и 8).
Использование и взаимодействие: экземпляр этого типа передаётся в качестве выходного параметра DataValue синхронной функции Dem_J1939DcmReadDiagnosticReadiness3 [SWS_Dem_00770]. DEM определяет значения DM26 для переданного ClientId памяти событий J1939 и возвращает значение E_OK при успешном выполнении или E_NOT_OK в случае ошибки [SWS_Dem_00770].
Параллелизм и ограничения: вызов функции считывания является реентерабельным для различных значений ClientId, однако не должен выполняться параллельно для одного и того же ClientId [SWS_Dem_00770]. Предполагается, что в качестве основного вызывающего модуля выступает J1939Dcm. Вопрос Q-e001ad1880fee789 (открытый) Тип объявлен в Dem.h [SWS_Dem_00951], в то время как соответствующая служба считывания предоставляется через Dem_J1939Dcm.h [SWS_Dem_00770].
Это указание по использованию основано на положениях спецификации AUTOSAR для Diagnostic Event Manager.
тип Dem_DataType [SWS_Dem_91026] 📄 PDF
Data type definition for external data elements
тип Dem_DataPrimitiveType [SWS_Dem_91033] 📄 PDF
тип Dem_DataArrayType [SWS_Dem_91034] 📄 PDF
Array data type definition for external data elements
тип 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.
тип Dem_DebounceResetStatusType [SWS_Dem_00927] 📄 PDF
This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().
Тип данных Dem_DebounceResetStatusType управляет поведением внутренних счетчиков и таймеров дебаунсинга в Diagnostic Event Manager [SWS_Dem_00927]. Он определен как uint8, доступен через заголовочный файл Rte_Dem_Type.h и предоставляет два определенных состояния управления [SWS_Dem_00927]:
DEM_DEBOUNCE_STATUS_FREEZE(0x00): замораживает внутренний счетчик или таймер дебаунсинга адресуемого события [SWS_Dem_00927].DEM_DEBOUNCE_STATUS_RESET(0x01): сбрасывает внутренний счетчик или таймер дебаунсинга [SWS_Dem_00927].
Значения в диапазоне от 0x02 до 0xFF зарезервированы [SWS_Dem_00927]. Тип передается в качестве параметра DebounceResetStatus в сервисную функцию Dem_ResetEventDebounceStatus() [SWS_Dem_00683]. Этот вызов выполняется синхронно и управляет внутренним состоянием дебаунсинга, не влияя напрямую на квалификацию соответствующего события [SWS_Dem_00683].
Что касается параллелизма, Dem_ResetEventDebounceStatus() является ревходабельной для различных значений EventId, однако не должна вызываться параллельно для одного и того же EventId [SWS_Dem_00683]. BSW-модули могут использовать интерфейс, как только завершится базовая инициализация Dem_PreInit [SWS_Dem_00683]. Для программных компонентов предоставление, вероятно, осуществляется через специфичные для портов интерфейсы, такие как DiagnosticMonitor, позволяющие модифицировать информацию о событиях [SWS_Dem_00598]. Вопрос Q-32468003718a4933 (открытый) В случае ошибки вызывающая функция возвращает E_NOT_OK, что, согласно спецификации, происходит исключительно при ошибках разработки [SWS_Dem_00683].
Это указание по использованию было сгенерировано автоматически на основе требований спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_DTRControlType [SWS_Dem_00941] 📄 PDF
Control parameter for the interpretation of the reported test results.
тип 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.
тип Dem_EventStatusType [SWS_Dem_00926] 📄 PDF
This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().
Тип данных Dem_EventStatusType является производным от uint8 и доступен через заголовочный файл Rte_Dem_Type.h ([SWS_Dem_00926]). Он служит Software-Components (SW-C), а также BSW-модулям для сообщения результатов тестирования диагностического монитора в DEM ([SWS_Dem_00926], [SWS_Dem_00183]).
Тип определяет следующие значения результатов монитора ([SWS_Dem_00926]):
DEM_EVENT_STATUS_PASSED(0x00) иDEM_EVENT_STATUS_FAILED(0x01): передача квалифицированных результатов теста (пройден или не пройден соответственно).DEM_EVENT_STATUS_PREPASSED(0x02) иDEM_EVENT_STATUS_PREFAILED(0x03): предварительные, неквалифицированные результаты теста монитора, подавление дребезга которых выполняется внутри DEM.DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED(0x04): запускает сохранение FreezeFrame и ExtendedDataRecord при достижении порогового значения FDC (ON_FDC_THRESHOLD).- Диапазоны значений от 0x05 до 0xFF зарезервированы.
Тип используется в качестве входного параметра EventStatus в BSW-API Dem_SetEventStatus() ([SWS_Dem_00183]) и Dem_SetEventStatusWithMonitorData() ([SWS_Dem_91037]), а также через интерфейсы DiagnosticMonitor ([SWS_Dem_00598]) и DiagnosticMonitor_MonitorData ([SWS_Dem_91038]). Вызов выполняется синхронно или асинхронно ([SWS_Dem_00183], [SWS_Dem_91037]).
Функции возвращают Std_ReturnType (E_OK при успехе, E_NOT_OK при ошибках или отклонении), при этом вызывающие BSW-модули могут игнорировать возвращаемое значение Dem_SetEventStatus() ([SWS_Dem_00183]). Что касается параллелизма, вызовы для различных EventId являются реентерабельными, однако для одного и того же EventId — нереентерабельными ([SWS_Dem_00183], [SWS_Dem_91037]). Кроме того, доступность целевых API зависит от конфигурации параметра DemEventReportingType ([SWS_Dem_00183], [SWS_Dem_91037]).
Этот текст сгенерирован ИИ и служит в качестве справочного материала. Обязательную силу имеет спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_DTCFormatType [SWS_Dem_00933] 📄 PDF
This type is used to select the format of the DTC value.
тип Dem_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF
(Re-)Initialization reason returned by the callback
Использование и диапазон значений
Тип данных Dem_InitMonitorReasonType основан на uint8 и доступен через Rte_Dem_Type.h [SWS_Dem_00942]. Он обозначает конкретную причину для (ре-)инициализации диагностического монитора, чтобы тот мог выбрать и выполнить соответствующую процедуру инициализации для затронутого события [SWS_Dem_00942] [SWS_Dem_00256].
Для этого типа определены следующие значения [SWS_Dem_00942]:
DEM_INIT_MONITOR_CLEAR(0x01): диагностическое событие было удалено; все внутренние значения и состояния сбрасываются.DEM_INIT_MONITOR_RESTART(0x02): рабочий цикл события был перезапущен.DEM_INIT_MONITOR_REENABLED(0x03): условия разрешения (Enable Conditions) или настройки DTC были снова активированы.DEM_INIT_MONITOR_STORAGE_REENABLED(0x04): условие сохранения (Storage Condition) было снова активировано.
Контекст вызова и интерфейсы
Значение передается синхронно и реентерабельно в качестве входного параметра InitMonitorReason через специфический для события C-callback <Module>_DemInitMonitorFor<EventName>(), объявленный в Dem_Externals.h [SWS_Dem_00256]. При наличии интерфейса порта к программному компоненту передача выполняется в операцию InitMonitorForEvent сервисного интерфейса CallbackInitMonitorForEvent [SWS_Dem_00613].
Обработка ошибок и возвращаемые значения
У C-callback возвращаемое значение типа Std_ReturnType не используется и служит исключительно для совместимости с соответствующей операцией RTE [SWS_Dem_00256]. Если интерфейс вызывается через RTE, операция InitMonitorForEvent возвращает значения ошибок E_OK (успешно) или E_NOT_OK (сбой) [SWS_Dem_00613]. Собственные коды ошибок или сообщения DET/DEM для этого типа данных не определены.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_IumprDenomCondIdType [SWS_Dem_00943] 📄 PDF
This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.
тип 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.
Использование
Тип Dem_IumprDenomCondStatusType основан на uint8 и определяет возможные состояния дополнительного условия знаменателя IUMPR для распределения между OBD-релевантными электронными блоками управления [SWS_Dem_00944]. Тип доступен через Rte_Dem_Type.h и включает следующие значения [SWS_Dem_00944]:
DEM_IUMPR_DEN_STATUS_NOT_REACHED(0x00): условие (пока) не выполнено.DEM_IUMPR_DEN_STATUS_REACHED(0x01): условие выполнено.DEM_IUMPR_DEN_STATUS_INHIBITED(0x02): условие заблокировано и не может быть достигнуто.
Значения в диапазоне от 0x03 до 0xFF зарезервированы [SWS_Dem_00944].
Взаимодействие и сервисные интерфейсы
В рамках сервисного интерфейса IUMPRDenominatorCondition передается статус для таких условий, как General Denominator, Cold start, EVAP или 500mi [SWS_Dem_00733] [SWS_Dem_00742]. Существуют две центральные сервисные функции:
Dem_SetIUMPRDenCondition: синхронно или асинхронно перенаправляет статус через входной параметрConditionStatusв DEM электронного блока управления [SWS_Dem_00733].Dem_GetIUMPRDenCondition: синхронно опрашивает статус через выходной параметр-указательConditionStatusот электронного блока управления, на котором вычисляются условия [SWS_Dem_00734].
Обработка ошибок и параллелизм
Обе функции специфицированы как реентерабельные [SWS_Dem_00733] [SWS_Dem_00734]. При успешном выполнении эти API возвращают E_OK; если установка или опрос завершаются неудачно либо условие не может быть принято, они возвращают E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734].
Данное указание по использованию было автоматически сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_MaxDataValueType [SWS_Dem_01072] 📄 PDF
тип Dem_MonitorDataType [SWS_Dem_91036] 📄 PDF
This type is used to pass monitoring data to the Dem.
тип Dem_IndicatorStatusType [SWS_Dem_00930] 📄 PDF
Indicator mode used by Dem_GetIndicatorStatus().
Тип данных Dem_IndicatorStatusType базируется на uint8 и предоставляется через Rte_Dem_Type.h [SWS_Dem_00930]. Он отражает производные от состояния UDS режимы работы предупредительных индикаторов [SWS_Dem_00205]. Спектр состояний простирается от DEM_INDICATOR_OFF (0x00) через DEM_INDICATOR_CONTINUOUS (0x01), DEM_INDICATOR_BLINKING (0x02), DEM_INDICATOR_BLINK_CONT (0x03), DEM_INDICATOR_SLOW_FLASH (0x04), DEM_INDICATOR_FAST_FLASH (0x05) и DEM_INDICATOR_ON_DEMAND (0x06) вплоть до DEM_INDICATOR_SHORT (0x07) [SWS_Dem_00930].
Этот тип используется в качестве выходного параметра в синхронной C-функции Dem_GetIndicatorStatus() [SWS_Dem_00205], а также в операции GetIndicatorStatus сервисного порта IndicatorStatus [SWS_Dem_00606]. Для каждого сконфигурированного индикатора сервисный компонент DEM предоставляет собственный порт, при этом соответствующий IndicatorId выступает в качестве определяемого портом аргумента [SWS_Dem_00606]. Опрашивающий программный компонент, как правило, использует определенное состояние для управления оптическими или акустическими индикаторными приборами. Вопрос Q-6bfabb33805bd0e8 (открытый)
Вызывающие стороны должны учитывать, что Dem_GetIndicatorStatus() специфицирована как неревходабельная (Non Reentrant) [SWS_Dem_00205]. Кроме того, опрашивающий API доступен только в том случае, если в конфигурации задан как минимум один индикатор в DemIndicator [SWS_Dem_00205]. Операция сообщает о статусе выполнения через возвращаемое значение Std_ReturnType с E_OK при успешной обработке или E_NOT_OK в случае ошибки [SWS_Dem_00205][SWS_Dem_00606].
Этот текст сгенерирован ИИ и служит в качестве ориентировочного руководства в среде AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dem_PID21valueType [SWS_Dem_01073] 📄 PDF
тип Dem_PID31valueType [SWS_Dem_01074] 📄 PDF
тип 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.
тип Dem_PID4DvalueType [SWS_Dem_91028] 📄 PDF
тип 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#62971306- Content hash
62971306- 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 · Немецкий оригинал