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لا تُشغّل عمليات استدعاء راجع (Callbacks) لتغيير حالة المراقب ([SWS_Dem_01289]). - التحكم في حالة إزالة الارتداد: تتوفر الدالة
Dem_ResetEventDebounceStatusلإعادة ضبط عدادات إزالة الارتداد أو تجميدها لوحدات BSW بعد اكتمالDem_PreInit([SWS_Dem_00180]، [SWS_Dem_00683]). - عتبات التأكيد ودورات التشغيل: يدعم DEM بعد
Dem_PreInitاستدعاءاتDem_SetEventConfirmationThresholdCounter([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 تمرير مؤشر إلى مجموعة بيانات تهيئة ما بعد البناء ([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]). وبالمثل، يتم تحميل بيانات Freeze-Frame المهيأة مسبقًا من NVM قبل عودة الدالة ([SWS_Dem_01322])، وتعتمد DEM في ذلك على واجهات برمجة تطبيقات 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 تؤكد عند تفعيل اكتشاف التطوير استدعاءات معظم واجهات برمجة التطبيقات بالخطأ 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]). يُرجح vermutlich أن يكون سياق الاستدعاء في إطار تسلسل إيقاف التشغيل المركزي لوحدة التحكم الإلكترونية. سؤال Q-a0e6a5700c49d786 (مفتوح)
عند الاستدعاء، تنهي Dem_Shutdown جميع العمليات التي لا تزال معلقة لوحدة DEM لإعداد الحالات الداخلية والبيانات للنقل إلى NVRAM ([SWS_Dem_00102]). بالنسبة للبيانات غير المتطايرة المعدلة، تبدأ DEM الحفظ في NVRAM قبل أو أثناء Dem_Shutdown ([SWS_Dem_00341]). بقدر ما يلزم، تستخدم الوحدة واجهتي مدير NVRAM المسَميين NvM_WriteBlock وNvM_ReadBlock لحفظ واستعادة البيانات بين Dem_Init وDem_Shutdown ([SWS_Dem_00164]). إذا تم تكوين DEM لتخزين بيانات Freeze-Frame المحفوظة مسبقًا بشكل غير متطاير، فسيتم هذا التخزين لمرة واحدة وعلى أقصى تقدير أثناء Dem_Shutdown ([SWS_Dem_01321]).
مع تنفيذ الإغلاق (Shutdown)، يتم قفل ذاكرة الأحداث ولا يجوز تعديلها بعد ذلك حتى استدعاء جديد لـ Dem_Init ([SWS_Dem_00102]). بالإضافة إلى ذلك، تسري شروط الأخطاء التالية عند تفعيل ميزة كشف أخطاء التطوير (Development Error Detection):
- إذا تم استدعاء إحدى واجهات API الخاصة بـ DEM بعد
Dem_Shutdown– باستثناء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 لحذف أكواد أعطال التشخيص (DTCs) الفردية أو مجموعات 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]).
التزامن والقيود
الواجهة قابلة لإعادة الدخول لمعرفات أحداث مختلفة (EventId)، ولكن لا يجوز تنفيذها بشكل متزامن لنفس EventId ([SWS_Dem_00193]). لا يتم دعم الاستدعاء مع أحداث تم تكوينها كأحداث تابعة (DemMultiEventTriggeringSlaveEventRef) أو كأحداث بديلة (DemStorageConditionReplacementEventRef)؛ ويكون سلوك DEM في هذه الحالة غير محدد ([SWS_Dem_01339]). إذا تم ضبط حدث على أنه غير متاح، فسيتم التعامل معه كحدث غير مكوّن ([SWS_Dem_01108])؛ تفسير: من المحتمل أن يتم رفض الاستدعاء في هذه الحالة مع E_NOT_OK. سؤال Q-d8ebaf6883138fdf (مفتوح)
التفاعل عند إطلاق الأحداث المتعددة (Multi-Event-Triggering)
إذا تم تكوين DemMultiEventTriggering واستُدعيت الدالة لحدث رئيسي (DemMultiEventTriggeringMasterEventRef)، يُطلق DEM استدعاء الحذف بنفس المعلمات تلقائياً لجميع الأحداث التابعة المرتبطة (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).
أُنشئت ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR Classic الإصدار 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-Cs) لتجميد عداد أو مؤقت إزالة الارتداد الداخلي لحدث تشخيصي أو إعادة تعيينه بصورة مستهدفة، دون التأثير على تأهيل الحدث [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، يؤدي استدعاء يتضمن حدثًا رئيسيًا (Master-Event) إلى تشغيل استدعاءات متطابقة لجميع الأحداث التابعة (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 لا يؤدي إلى الإبلاغ عن الخطأ DEM_E_UNINIT، حتى مع تفعيل كشف أخطاء التطوير (DemDevErrorDetect) [SWS_Dem_00124].
فيما يتعلق بالتزامن، فإن Dem_ResetEventStatus قابلة لإعادة الدخول (reentrant) لقيم EventId المختلفة، ولكنها غير قابلة لإعادة الدخول لنفس EventId [SWS_Dem_00185]. إذا كانت DemMultiEventTriggering مهيأة وتم استدعاء الدالة باستخدام حدث رئيسي (Master-Event)، يقوم DEM تلقائيًا بإطلاق نفس الاستدعاء لجميع الأحداث التابعة (Slave-Events) المرتبطة [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].
التزامن وشروط الاستدعاء: الدالة قابلة لإعادة الدخول من أجل معرفات أحداث مختلفة، ولكن ليس لنفس EventId [SWS_Dem_00188].
التفاعل في حالة Multi-Event-Triggering: إذا تم استدعاء الدالة مع حدث رئيسي تم تكوينه (DemMultiEventTriggeringMasterEventRef)، يُطلق DEM تلقائياً استدعاءات متطابقة لجميع الأحداث التابعة المرتبطة (DemMultiEventTriggeringSlaveEventRef) [SWS_Dem_01250]. الاستدعاءات المباشرة باستخدام معرف حدث تابع أو باستخدام حدث بديل لشروط التخزين (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].
إذا تم استدعاء إحدى واجهات برمجة التطبيقات المعتمدة دون وجود تحديد صالح مسبقًا، أو إذا كان رمز 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-Cs ووحدات 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) تُعد قابلة لإعادة الدخول (reentrant) لقيم EventId المختلفة، ولكنها غير قابلة لإعادة الدخول لنفس EventId [SWS_Dem_00183]. قبل التهيئة المسبقة عبر Dem_PreInit، يؤدي أي استدعاء عند تنشيط اكتشاف أخطاء التطوير إلى الخطأ DEM_E_UNINIT [SWS_Dem_00364]. بعد Dem_PreInit، ولكن قبل Dem_Init، يكون الاستدعاء مسموحًا به في المقابل [SWS_Dem_00124]، [SWS_Dem_00180]؛ ويتم تخزين الأحداث المؤهلة مؤقتًا في قائمة انتظار (Queue) يُحدد حجمها عبر 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-Setting، تتجاهل DEM التقرير الخاص بحالة UDS [SWS_Dem_00626].
يمكن إطلاق إجراءات متزامنة في سياق الاستدعاء:
- إخطار FiM عند تغيير الحالة عبر
FiM_DemTriggerOnEventStatus، بشرط أن يكونDemTriggerFiMReportsنشطًا [SWS_Dem_00029]. - تسجيل بيانات Freeze-Frame المتزامنة وExtended-Data-Records عند تكوين الخيار
DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING[SWS_Dem_00805]، [SWS_Dem_01082]. - استدعاءات متتالية لأحداث تابعة مهيأة عند تفعيل تكوين
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-Cs) لطلب بت حالة 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 = FALSE، لا يُعاد تعيين بت WIR إلى 0 إلا إذا لم تكن هناك مؤشرات DEM مشار إليها معينة [SWS_Dem_00834]. - بالإضافة إلى ذلك، فإن تعيين بت WIR عبر
Dem_SetWIRStatusيمنع 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 محدد مسبقًا عبر Dem_SelectDTC ([SWS_Dem_01253]). الهدف من هذا الاستدعاء هو حماية البيانات المرتبطة بالحدث للعطل المحدد في 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 قابلة لإعادة الدخول (reentrant) للاستدعاءات ذات ClientId مختلفة، ولكنها غير قابلة لإعادة الدخول لنفس ClientId ([SWS_Dem_00233]). ولا يمكن قفل التحديث إلا لـ DTC واحد فقط في الوقت نفسه ([SWS_Dem_00233]). وبعد قراءة بيانات التشخيص، يجب إعادة تمكين تحديث سجل البيانات عبر Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]، [SWS_Dem_00270]).
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
الغرض وسياق الاستخدام
تُستخدم الدالة [SWS_Dem_00233] لتعطيل تحديث ذاكرة الأحداث لرمز DTC محدد بشكل مؤقت، مع قصر التعطيل على رمز واحد فقط في كل مرة. وتعمل هذه الخدمة بنمط غير متزامن (Asynchronous) وتستقبل المعامل ClientId الذي يعرّف العميل المستدعي المخصص لنسخة الوحدة المستدعية [SWS_Dem_00233].
التكامل والتسلسل الوظيفي
يتطلب استخدام هذه الخدمة تحديد رمز DTC وأصل DTCOrigin المستهدف مسبقاً عبر استدعاء Dem_SelectDTC استناداً إلى المتطلب [SWS_Dem_01253]. وتعمل الدالة على حماية البيانات المرتبطة بالحدث للرمز المحدد ضمن أصل DTCOrigin المختار من التحديث أو الحذف، بهدف إتاحة قراءة متسقة وغير متغيرة للبيانات التشخيصية عبر واجهات برمجة التطبيقات اللاحقة [SWS_Dem_00270]:
- بيانات FreezeFrame عبر استدعاء Dem_SelectFreezeFrameData متبوعاً بدالتي Dem_GetSizeOfFreezeFrameSelection وDem_GetNextFreezeFrameData [SWS_Dem_00270].
- سجلات البيانات الموسعة عبر استدعاء Dem_SelectExtendedDataRecord متبوعاً بدالتي Dem_GetSizeOfExtendedDataRecordSelection وDem_GetNextExtendedDataRecord [SWS_Dem_00270].
وعقب إتمام عمليات القراءة المطلوبة، يتعين على المستدعي استدعاء Dem_EnableDTCRecordUpdate لإعادة السماح بتحديث سجلات DTC المعطلة مسبقاً [SWS_Dem_00234].
التزامن وإدارة الأخطاء
الدالة قابلة لإعادة الدخول (Reentrant) لمعرفات ClientId المختلفة، في حين أنها غير قابلة لإعادة الدخول لنفس المعرف 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 المحدد غير موجود.
تم إنشاء هذه التوجيهات آلياً بالاستناد إلى مواصفات 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 قابلة لإعادة الدخول للاستدعاءات ذات معرفات عملاء مختلفة، ولكنها ليست قابلة لإعادة الدخول لنفس 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 بتهيئة المرشح لقراءة بيانات التشخيص الموسعة لكود DTC تم تحديده مسبقًا باستخدام Dem_SelectDTC [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أن هناك عملية أخرى معتمدة على DTC لا تزال نشطة لهذاClientId[SWS_Dem_91017]. تكون الدالة قابلة لإعادة الدخول (reentrant) لقيم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 بتعيين المرشح لقراءة بيانات Freeze-Frame لاحقاً عبر Dem_GetSizeOfFreezeFrameSelection وDem_GetNextFreezeFrameData [SWS_Dem_91015]، [SWS_Dem_01268]. ويتم عبر المعامِل ClientId تحديد مثيل الوحدة المستدعية، بينما يحدد RecordNumber رقم سجل اللقطة وفقاً للمواصفة ISO 14229-1؛ حيث يمثل 0xFF جميع سجلات اللقطات الخاصة برمز DTC، بينما يمثل 0x00 لقطة WWH-OBD الخاصة برمز DTC [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 الهدف موجودًا بالتنسيق المطلوب، أو إذا تم اختيار مجموعة DTC بدلاً من DTC فردي عبر Dem_SelectDTC، فسيتم إرجاع DEM_WRONG_DTC [SWS_Dem_91015]، [SWS_Dem_01348]. وفي حالة وجود موقع تخزين غير صالح، ينتج DEM_WRONG_DTCORIGIN [SWS_Dem_91015]. وإذا تم استدعاء دوال قراءة تابعة دون اختيار مسبق، يبلغ DEM عن خطأ DET [SWS_Dem_01270]، [SWS_Dem_01271].
الترتيب والتزامن
تتميز الدالة بأنها قابلة لإعادة الدخول (reentrant) لجهات اتصال مختلفة (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-IDs) مختلفة، ولكنها غير قابلة لإعادة الدخول لنفس 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
الاستخدام
يستدعي DCM الدالة المتزامنة Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) للاستعلام عن بيانات IUMPR (In-Use Monitor Performance Ratio) لـ InfoType $08 ضمن نطاق خدمة OBD المسماة $09 ([SWS_Dem_00298]). وبما أن المعالجة تتم بشكل متزامن، يمرر DCM القيمة DCM_INITIAL حصريًا للمعامل OpStatus ([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 (معرّف الخدمة 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 لتسليم محتوى معلمة OBD وهي PID $01 والمحسوب بواسطة DEM إلى 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 معالجة DTCs المحجوبة أثناء التقييم كما لو أن المرشح لا ينطبق [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 (معرّف الخدمة 0x64) لتمكين Diagnostic Communication Manager (DCM) من الاستعلام عن القيمة الحالية لمعامل OBD المسمى PID $21 والمحسوبة بواسطة DEM [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 لتمرير محتوى البيانات لمعامل PID $30 المحسوب بواسطة DEM إلى 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 لتمرير قيمة معامل OBD المسمى PID $31 والمحسوبة بواسطة DEM إلى DCM [SWS_Dem_00321]. ويتم توفير الواجهة عبر ملف الترويسة Dem_Dcm.h وتمتلك معرّف الخدمة 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 لتمرير محتوى PID $41 المحسوب بواسطة DEM إلى DCM [SWS_Dem_00322]. ويتم التصريح عنها عبر الترويسة Dem_Dcm.h وتمتلك معرّف الخدمة 0x67 [SWS_Dem_00322].
الاستخدام والمعلمات
يتم الاستدعاء بشكل متزامن ومُحدد بأنه غير قابل لإعادة الدخول (Non Reentrant) [SWS_Dem_00322]. وتتوقع الواجهة المؤشر PID41value كمعامل إخراج (uint8*):
- يستقبل
PID41valueالبيانات المحسوبة لـ PID $41 [SWS_Dem_00322]. - يجب توفير المخزن المؤقت بحجم مناسب من قِبل DCM؛ ولهذا الغرض يحدد DCM بالفعل أثناء التكوين الحجم المطلوب لتكوين
PIDBufferاستنادًا إلى أكبر PID متكرر [SWS_Dem_00322].
قيم الإرجاع ومعالجة الأخطاء
تُرجع الدالة دائمًا E_OK كقيمة إرجاع، حيث إن قيمة الخطأ E_NOT_OK لا تحدث أبدًا وفقًا للمواصفة [SWS_Dem_00322]. ولم يتم النص على أي أكواد أخطاء محددة أو ردود أفعال على الأخطاء لهذه الواجهة [SWS_Dem_00322].
الاعتماد على التكوين والتوافر
تكون واجهة برمجة التطبيقات (API) مطلوبة حصريًا في وحدات التحكم (ECU) ذات الصلة بـ 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 لنقل قيمة بارامتر OBD المسمى PID $4D والمحسوبة بواسطة DEM إلى 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 لنقل محتوى معرّف بارامتر OBD المسمى PID $4E والمحسوب بواسطة DEM إلى 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 (معرف الخدمة 0x6a) لتمرير بيانات معلمة OBD المسماة PID $91 والمحسوبة بواسطة DEM إلى DCM [SWS_Dem_01187]. يتم الإعلان عن الواجهة عبر ملف الترويسة Dem_Dcm.h وتتوفر حصرياً في وحدات التحكم الإلكترونية ذات الصلة بـ OBD والتي لم يتم فيها تكوين 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 (معرف الخدمة 0xa3) بواسطة DCM لقراءة قيمة OBDMID التوافر المطلوبة في إطار طلب خدمة OBD رقم $06 [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) من الاستعلام عند الطلب عن عدد معرّفات الاختبار (TIDs) المعينة لـ OBDMID وظيفية محددة [SWS_Dem_00761].
عند الاستدعاء، يمرر DCM معرّف OBDMID المعنية في بارامتر الإدخال Obdmid ويسترجع عدد TIDs المعينة عبر المؤشر numberOfTIDs [SWS_Dem_00767]. وتُستخدم قيمة الإخراج هذه من قبل DCM كحد أقصى لحلقة عدّ من 0 إلى numberOfTIDs - 1، يتم فيها بعد ذلك بشكل تسلسلي عبر Dem_DcmGetDTRData الاستعلام عن قيم نتائج DTR الفردية ونتائج الاختبار والقيم الحدية [SWS_Dem_00761] [SWS_Dem_00768].
تُرجع الدالة قيمة الإرجاع E_OK إذا أمكن تحديد عدد TIDs بنجاح، و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 (معرّف الخدمة 0x90، المصرَّح عنها في Dem_J1939Dcm.h) سمات قناع المرشح لاختيار أكواد J1939-DTC لعقدة J1939 المعنونة عبر ClientId [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 (معرّف الخدمة 0x92) رمز J1939-DTC المصفّى التالي من ذاكرة أحداث 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 بمعرّف الخدمة 0x93 [SWS_Dem_00974]. تفسير: يُرجَّح أن يتم استدعاء الدالة أساسًا بواسطة الوحدة J1939Dcm لتهيئة التصفية قبل إرسال رسائل حالة مصباح DM31. سؤال Q-064513be4f06584b (مفتوح)
منطق التصفية والتفاعل
يعيد كل استدعاء للدالة ضبط العداد الداخلي إلى أول حدث تم تعيين J1939DTC له لـ ClientId المحددة [SWS_Dem_00880]. وفيما يتعلق بحالة أحداث التشخيص، تنص المواصفة على أن رمز DTC المحجوب (suppressed DTC) يجب أن يظل غير مرئي لدوال استعلام DCM [SWS_Dem_01101]. وبناءً على ذلك، يتعامل Dem_J1939DcmFirstDTCwithLampStatus مع رموز DTC المحجوبة كما لو لم يكن معيار التصفية مستوفى [SWS_Dem_01101].
التزامن والقيود
فيما يتعلق بسلوك التزامن، فإن الواجهة قابلة لإعادة الدخول للاستدعاءات ذات قيم ClientId المختلفة، ولكنها غير قابلة لإعادة الدخول لنفس قيمة ClientId [SWS_Dem_00974]. وبالتالي، فإن الاستعلامات المتوازية عبر معرّفات عملاء (Client-IDs) متطابقة على نفس ذاكرة أحداث 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، وذلك لمسح جميع رموز أخطاء التشخيص (DTCs) النشطة أو التي كانت نشطة سابقًا من ذاكرة الأحداث ([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]، فإن الدالة قابلة لإعادة الدخول لمعرفات العملاء المختلفة، ولكنها غير قابلة لإعادة الدخول لنفس ClientId. وبالتالي، فإن استدعاءات المسح المتوازية عبر عملاء متطابقين غير مسموح بها.
تفاعل
وفقًا لـ [SWS_Dem_00879]، تعيد عملية المسح تعيين حالة جميع الأحداث المعنية وتزيل المداخل المرتبطة بها في ذاكرة الأحداث. بالإضافة إلى ذلك، تطلق عملية المسح وفقًا لـ [SWS_Dem_00878] إعادة تهيئة أولية لـ SW-Cs وأنماط 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 لتعيين مرشح Freeze-Frame لعقدة محددة عبر الرأس Dem_J1939Dcm.h [SWS_Dem_00977]. وتقوم بتهيئة سمات قناع التصفية للاستعلامات اللاحقة بواسطة Dem_J1939DcmGetNextFreezeFrame مع إعادة تعيين عداد داخلي إلى أول Freeze-Frame [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 بيانات إطار التجميد تدريجيًا لذاكرة أحداث محددة [SWS_Dem_00978]. يسترشد التكرار بمعايير التصفية FreezeFrameKind وClientId التي تم ضبطها مسبقًا عبر Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00900]. تُنسخ البيانات المفيدة إلى المخزن المؤقت DestBuffer (في أطر التجميد الموسعة بدون معلومات SPN ومع ملء البتات غير المستخدمة بـ 0)، بينما تمرر BufSize حجم المخزن المؤقت وتبلغ عن كمية البايتات المكتوبة فعليًا [SWS_Dem_00978]، [SWS_Dem_00903]. بالإضافة إلى ذلك، يقدّم الاستدعاء J1939DTC المقترن وكذلك OccurenceCounter، والذي يتم حده عند 0x7F في حال زادت القيم عن 126 [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) التالي من إطار التجميد الموسع ([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]).
معالجة الأخطاء والتزامن
إذا طُلب نوع إطار تجميد غير مدعوم، تطلق الوحدة خطأ 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].
فيما يتعلق بالتزامن، تُعد الدالة قابلة لإعادة الدخول (reentrant) لقيم 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 (المدرجة في المعيار الكلاسيكي تحت Dem_J1939DcmReadDiagnosticReadiness) للاستعلام عن قيمة Diagnostic Readiness 1 (DM05) المحسوبة بواسطة Diagnostic Event Manager [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: تم تنفيذ الخدمة بنجاح وتخزين بيانات الجاهزية (Readiness) في المخزن المؤقت للإخراج [SWS_Dem_00982].E_NOT_OK: فشلت العملية [SWS_Dem_00982]. لم يتم تحديد رموز خطأ معينة أو أحداث DEM أو رسائل DET في مواصفة الدالة [SWS_Dem_00982].
التزامن والقيود
فيما يتعلق بالوصول المتزامن، تم تحديد الخدمة على أنها قابلة لإعادة الدخول لـ ClientIds المختلفة، ولكن تم تعريفها صراحة على أنها غير قابلة لإعادة الدخول لنفس 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 (معرّف الخدمة 0x9c) للاستعلام عن قيمة Diagnostic Readiness 2 (DM21) المحسوبة بواسطة DEM [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].
فيما يتعلق بإمكانية إعادة الدخول (reentrancy)، فإن الدالة قابلة لإعادة الدخول (reentrant) لقيم 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]؛ تفسير: في هذه الحالة، من المحتمل أن يعيد الاستدعاء E_NOT_OK قياساً على باقي واجهات API الخاصة بالحالة المتأثرة. سؤال 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 لتمكين مقام (Denominator) مراقب محدد لأسباب فيزيائية، مثل الوصول إلى شروط حرارة معينة أو الحد الأدنى من النشاط [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 (معرف الخدمة 0xb3) للاستعلام عن قيمة PID $01 المحسوبة بواسطة Diagnostic Event Manager (DEM) [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) مقيدة وظيفياً وتُطلب حصرياً في وحدات التحكم الإلكترونية ذات الصلة بـ 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
يتم استدعاء دالة الرد (Callback) Dem_CallbackEventSyncStorageProcessed بشكل متزامن بواسطة Diagnostic Event Manager (DEM) بمجرد اكتمال المعالجة الداخلية لـ Dem_SetEventFailedWithSyncFreezeFrame ([SWS_Dem_91042]). وهي تخطر المكون المستدعي بإمكانية معالجة استدعاء آخر لـ Dem_SetEventFailedWithSyncFreezeFrame لنفس معرف الحدث من قِبل DEM ([SWS_Dem_91042]).
بالنسبة للاستخدام والتكامل، تسري خصائص الواجهة والتنفيذ التالية:
- المعلمات وقيمة الإرجاع: لا تحتوي الواجهة على معلمات إدخال أو إخراج أو إدخال/إخراج ([SWS_Dem_91042]). نوع الإرجاع هو
Std_ReturnType، حيث يُسمح فقط بقيمة الإرجاعE_OKويتم توفيرها لأسباب تتعلق بالتوافق مع RTE ([SWS_Dem_91042]). - التزامن: تم تحديد الدالة على أنها قابلة لإعادة الدخول ([SWS_Dem_91042]).
- معالجة الأخطاء: لم يتم تخصيص أكواد أخطاء محددة أو رسائل لتعقب أخطاء التطوير (DET) ([SWS_Dem_91042]).
فيما يتعلق بالتفاعل والتهيئة، يوجد شرط أساسي ثابت: يجب تكوين Dem_CallbackEventSyncStorageProcessed حصريًا لأحداث التشخيص التي تم تعيين المعلمة DemEventReportingType الخاصة بها على IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING ([SWS_Dem_01356]). بالإضافة إلى ذلك، تم تزويد العنصر بتعليق توضيحي بالحالة draft في الإصدار R20-11 ([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) مع معرّف الخدمة 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 الإصدار 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 التي ينبغي تمييز واختيار رموز الأعطال التشخيصية (DTCs) بناءً عليها أثناء عمليات التصفية [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 لسلوك الوميض المقترن به.
في تصفية J1939-DTC لـ 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 قابل لإعادة الدخول لمعرّفات عملاء (Client-IDs) مختلفة، ولكنه غير قابل لإعادة الدخول لنفس 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: عدد DTCs النشطة [SWS_Dem_00949].PreviouslyActiveDiagnosticTroubleCodes: عدد DTCs التي كانت نشطة سابقًا [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: المسافة المقطوعة التراكمية منذ إعادة تعيين رموز أعطال التشخيص (DTCs) المرتبطة بالانبعاثات [SWS_Dem_00950].MinutesRunbyEngineWhileMILisActivated: وقت تشغيل المحرك التراكمي بالدقائق أثناء تنشيط MIL [SWS_Dem_00950].TimeSinceDiagnosticTroubleCodesCleared: وقت تشغيل المحرك التراكمي منذ محو DTCs المرتبطة بالانبعاثات [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]). ويُستخدم لمساعدة مكونات البرمجيات (SW-Cs) وأنماط 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): يطلق تخزين FreezeFrames وExtendedDataRecords عند الوصول إلى قيمة عتبة FDC (ON_FDC_THRESHOLD).- نطاقات القيم من 0x05 إلى 0xFF محجوزة.
يُستخدم النوع كمعلمة إدخال EventStatus في واجهات برمجة تطبيقات BSW وهي 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]). علاوة على ذلك، يعتمد توفر واجهات برمجة التطبيقات الهدف على تهيئة المعلمة 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 الخاص بالحدث <Module>_DemInitMonitorFor<EventName>()، المُصرّح عنه في Dem_Externals.h [SWS_Dem_00256]. وإذا وجدت واجهة منفذ (Port-Interface) لمكوّن البرنامج، يتم التمرير إلى العملية InitMonitorForEvent الخاصة بواجهة الخدمة CallbackInitMonitorForEvent [SWS_Dem_00613].
معالجة الأخطاء وقيم الإرجاع
في رد النداء C، تكون قيمة الإرجاع من النوع 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#7f1c3c9f- Content hash
7f1c3c9f- 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 · الأصل الألماني