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은(는) 시스템 시작 중에 BSW 모듈로부터의 이벤트 보고를 조기에 처리하는 데 필요한 DEM 모듈의 내부 상태를 사전 초기화하는 역할을 합니다([SWS_Dem_00179], [SWS_Dem_00180]). 호출은 동기식으로 수행되고 재진입이 불가능하며 전달 매개변수나 반환값이 없습니다([SWS_Dem_00179]).
Dem_PreInit을(를) 호출하면 카운터 및 타이머를 포함한 내부 디바운스 메커니즘이 초기화됩니다([SWS_Dem_01213]). DEM 내부 디바운스가 구성된 경우 모듈은 해당 디바운스 알고리즘을 재설정합니다([SWS_Dem_00438]).
Dem_PreInit이(가) 성공적으로 완료된 후 및 Dem_Init을(를) 호출하기 전에 선택된 인터페이스 및 동작이 활성화됩니다:
- 이벤트 상태 및 디바운스: 디바운스를 위해 상태
DEM_EVENT_STATUS_PREPASSED및DEM_EVENT_STATUS_PREFAILED(으)로의Dem_SetEventStatus호출이 지원됩니다([SWS_Dem_01212]). 그러나Dem_Init이전에 보고된 모든 이벤트는 모니터의 상태 변경을 위한 콜백을 트리거하지 않습니다([SWS_Dem_01289]). - 디바운스 상태 제어: 디바운스 카운터를 재설정하거나 고정하기 위한 함수
Dem_ResetEventDebounceStatus은(는)Dem_PreInit완료 후 BSW 모듈에서 사용할 수 있습니다([SWS_Dem_00180], [SWS_Dem_00683]). - 확인 임계값 및 작동 주기: DEM은
Dem_PreInit이후Dem_SetEventConfirmationThresholdCounter의 호출을 지원합니다([SWS_Dem_01242]).Dem_RestartOperationCycle의 호출 역시 이 시점부터만 허용됩니다.Dem_Init이전에 작동 주기가 재시작되면 재시작의 실제 처리는Dem_Init이후에만 발생합니다([SWS_Dem_01318]).
이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Dem_Init [SWS_Dem_00181] 📄 PDF
void Dem_Init (const Dem_ConfigType* ConfigPtr);
Initializes or reinitializes this module.
동기식 비재진입 함수 Dem_Init은(는) [SWS_Dem_00181]에 따라 Diagnostic Event Manager(DEM) 모듈을 완전히 초기화하거나 재초기화합니다. 이 호출이 완료되면 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]). 마찬가지로 사전 구성된 프리즈 프레임 데이터는 함수가 반환되기 전에 NVM에서 로드되며([SWS_Dem_01322]), 이를 위해 DEM은NvM_ReadBlock와 같은 NvM API를 사용합니다([SWS_Dem_00164]). 또한Dem_Init호출을 통해 이전Dem_Shutdown이후 이벤트 메모리의 잠금이 해제됩니다([SWS_Dem_00102]). - 상호작용 및 버퍼링:
DemTriggerFiMReports이True(으)로 설정된 경우,Dem_Init은(는) Function Inhibition Manager의 권한을 초기화하기 위해 이 시점에만 독점적으로FiM_DemInit을(를) 호출합니다([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_Init이(가) 다시 실행될 때까지 대부분의 API 호출을 오류 DEM_E_UNINIT(으)로 응답합니다([SWS_Dem_00368]).
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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]). 호출 컨텍스트는 중앙 ECU 전원 차단 시퀀스의 범위 내에 있을 것으로 추정됩니다. 질문 Q-a0e6a5700c49d786 (열림)
호출 시 Dem_Shutdown은(는) 내부 상태 및 데이터를 NVRAM으로 전송하기 위해 준비할 목적으로 DEM 모듈의 보류 중인 모든 연산을 완료합니다([SWS_Dem_00102]). 변경된 비휘발성 데이터에 대해 DEM은 Dem_Shutdown 이전 또는 진행 중에 NVRAM에 저장을 트리거합니다([SWS_Dem_00341]). 필요한 경우 모듈은 Dem_Init와(과) Dem_Shutdown 사이의 데이터 저장 및 복원을 위해 NVRAM Manager의 인터페이스 NvM_WriteBlock 및 NvM_ReadBlock을(를) 사용합니다([SWS_Dem_00164]). 사전에 저장된 프리즈 프레임 데이터를 비휘발성으로 보관하도록 DEM이 구성된 경우, 이 저장은 1회 수행되며 늦어도 Dem_Shutdown 동안에는 수행됩니다([SWS_Dem_01321]).
셧다운이 수행되면 이벤트 메모리가 잠기며 Dem_Init이(가) 다시 호출될 때까지 더 이상 수정할 수 없습니다([SWS_Dem_00102]). 또한 개발 오류 감지(Development Error Detection)가 활성화된 경우 다음 오류 조건이 적용됩니다:
Dem_Shutdown이후에 DEM API가 호출되는 경우(Dem_SetEventStatus,Dem_ResetEventDebounceStatus,Dem_GetVersionInfo및Dem_MainFunction제외), 모듈은 다음Dem_Init까지 오류 코드DEM_E_UNINIT을(를) 설정합니다([SWS_Dem_00368]).DemDebounceCounterStorage이(가)True(으)로 설정된 이벤트에 대해Dem_Shutdown이후에Dem_SetEventStatus또는Dem_ResetEventDebounceStatus이(가) 호출되는 경우, DEM은 오류 코드DEM_E_WRONG_CONDITION을(를) 보고합니다([SWS_Dem_00676]).
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 각 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은 Diagnostic Event Manager에서 개별 진단 결함 코드(DTC) 또는 전체 DTC 그룹을 삭제하는 데 사용됩니다 [SWS_Dem_00665]. 호출 전에 해당 ClientId에 대해 Dem_SelectDTC를 사용하여 DTC, 형식 및 메모리 위치로 구성된 대상 선택이 정의되어 있어야 합니다 [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].
이 텍스트는 AI에 의해 생성되었으며 기술적 오리엔테이션을 목적으로 합니다.
구현자 가이드 준비 중 (복잡도 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은 특정 진단 이벤트([SWS_Dem_00193])에 대해 이전에 임시 저장된 동결 프레임을 삭제합니다. 호출은 전적으로 RTE를 통해서만 이루어지며, 헤더 파일 Dem.h에서의 선언은 제공되지 않습니다([SWS_Dem_00193]). 이 API는 하나 이상의 이벤트에 대해 사전 저장이 구성된 경우(구성 매개변수 DemFFPrestorageSupported)에만 시스템에 구현됩니다([SWS_Dem_00193], [SWS_Dem_00334]). 이 함수는 성공적으로 삭제된 경우 E_OK을 반환하고, 작업이 실패한 경우 E_NOT_OK을 반환합니다([SWS_Dem_00193]).
동시성 및 제약사항
이 인터페이스는 서로 다른 이벤트 ID(EventId)에 대해서는 재진입 가능하지만, 동일한 EventId에 대해서는 동시에 실행되지 않아야 합니다([SWS_Dem_00193]). 슬레이브 이벤트(DemMultiEventTriggeringSlaveEventRef) 또는 대체 이벤트(DemStorageConditionReplacementEventRef)로 구성된 이벤트를 사용한 호출은 지원되지 않으며, 이 경우 DEM의 동작은 정의되지 않습니다([SWS_Dem_01339]). 이벤트가 사용 불가능으로 설정된 경우 구성되지 않은 이벤트처럼 처리됩니다([SWS_Dem_01108]). 해석: 이 경우 호출은 E_NOT_OK로 거부될 것으로 추정됩니다. 질문 Q-d8ebaf6883138fdf (열림)
멀티 이벤트 트리거링 시 상호작용
DemMultiEventTriggering이 구성되어 있고 마스터 이벤트(DemMultiEventTriggeringMasterEventRef)에 대해 함수가 호출되는 경우, DEM은 연관된 모든 슬레이브 이벤트(DemMultiEventTriggeringSlaveEventRef)에 대해 동일한 매개변수를 사용하는 삭제 호출을 자동으로 트리거합니다([SWS_Dem_01250]).
이 사용 지침은 AUTOSAR Classic 릴리스 R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_GetComponentFailed [SWS_Dem_01115] 📄 PDF
Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Gets the failed status of a DemComponent.
함수 Dem_GetDTCSelectionResult [SWS_Dem_91023] 📄 PDF
Std_ReturnType Dem_GetDTCSelectionResult (uint8 ClientId);
Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.
함수 Dem_GetDTCSelectionResultForClearDTC [SWS_Dem_91020] 📄 PDF
Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);
Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs, respecting the settings if the Dem shall clear only all DTCs.
함수 Dem_GetEventUdsStatus [SWS_Dem_91008] 📄 PDF
Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);
Gets the current UDS status byte assigned to the DTC for the event
함수 Dem_GetMonitorStatus [SWS_Dem_91007] 📄 PDF
Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);
Gets the current monitor status for an event.
함수 Dem_GetDebouncingOfEvent [SWS_Dem_00730] 📄 PDF
Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);
Gets the debouncing status of an event. This function shall not be used for EventId with native debouncing within their functions. It is rather for EventIds using debouncing within the Dem.
함수 Dem_GetDTCOfEvent [SWS_Dem_00198] 📄 PDF
Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);
Gets the DTC of an event.
함수 Dem_GetDTCSuppression [SWS_Dem_91025] 📄 PDF
Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);
Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)
함수 Dem_GetEventAvailable [SWS_Dem_91040] 📄 PDF
Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);
Get the Event's availability.
함수 Dem_GetFaultDetectionCounter [SWS_Dem_00203] 📄 PDF
Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);
Gets the fault detection counter of an event. This API can only be used through the RTE, and therefore no declaration is exported via Dem.h.
함수 Dem_GetIndicatorStatus [SWS_Dem_00205] 📄 PDF
Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);
Gets the indicator status derived from the UDS status. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEventMemory Set/DemIndicator)} != NULL)
함수 Dem_GetEventFreezeFrameDataEx [SWS_Dem_01191] 📄 PDF
Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);
Gets the data of a freeze frame by event.
함수 Dem_GetEventExtendedDataRecordEx [SWS_Dem_01190] 📄 PDF
Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);
Gets the data of an extended data record by event.
함수 Dem_GetEventMemoryOverflow [SWS_Dem_00559] 📄 PDF
Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);
Gets the event memory overflow indication status.
함수 Dem_GetNumberOfEventMemoryEntries [SWS_Dem_00652] 📄 PDF
Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);
Returns the number of entries currently stored in the requested event memory.
함수 Dem_ResetEventDebounceStatus [SWS_Dem_00683] 📄 PDF
Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);
Control the internal debounce counter/timer by BSW modules and SW-Cs. The event qualification will not be affected by these debounce state changes. This API is available for BSW modules as soon as Dem_PreInit has been completed (refer to SWS_Dem_00438 and SWS_Dem_00167).
동기식 함수 Dem_ResetEventDebounceStatus은 BSW 모듈 및 소프트웨어 컴포넌트(SW-C)가 이벤트 자격에 영향을 주지 않고 진단 이벤트의 내부 디바운스 카운터 또는 타이머를 선택적으로 고정하거나 재설정하는 데 사용됩니다 [SWS_Dem_00683].
사용법 및 매개변수
원하는 동작은 매개변수 DebounceResetStatus을 통해 제어됩니다. 값 DEM_DEBOUNCE_STATUS_FREEZE은 내부 디바운스 타이머를 고정하는 [SWS_Dem_00685] 반면, DEM_DEBOUNCE_STATUS_RESET은 연관된 고장 감지 카운터(Fault Detection Counter)를 재설정합니다 [SWS_Dem_00684] [SWS_Dem_00927]. 이 함수는 성공적인 실행 시 E_OK을 반환하고, 개발 오류의 경우에만 배타적으로 E_NOT_OK을 반환합니다 [SWS_Dem_00683].
오류 처리 및 수명 주기
해당 API는 Dem_PreInit 완료 후 BSW 모듈에서 이미 사용 가능하므로 완전한 초기화 이전의 일반적인 초기화 검사에서 제외됩니다 [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 값에 대해 재진입 가능(reentrant)하지만 동일한 이벤트에 대해서는 재진입할 수 없습니다 [SWS_Dem_00683]. DemMultiEventTriggering이 구성된 경우 마스터 이벤트로 호출하면 할당된 모든 슬레이브 이벤트에 대해 동일한 호출이 트리거됩니다 [SWS_Dem_01250]. 순수 내부 슬레이브 이벤트 또는 DemStorageConditionReplacementEventRef를 통해 참조된 이벤트에 대한 직접 호출은 지원되지 않으며 정의되지 않은 동작을 초래합니다 [SWS_Dem_01339].
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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].
현재 작동 주기에서 해당 이벤트가 이미 테스트되었거나(UDS 상태 비트 6이 0임)[SWS_Dem_00185], [SWS_Dem_00638], 이벤트가 사용할 수 없도록 구성 또는 설정된 경우[SWS_Dem_01108] 요청은 반환값 E_NOT_OK(으)로 실패합니다. DEM의 전체 초기화 전에 호출하더라도 개발 오류 감지(DemDevErrorDetect)가 활성화되어 있는 경우에도 오류 DEM_E_UNINIT의 보고로 이어지지 않습니다[SWS_Dem_00124].
동시성과 관련하여 Dem_ResetEventStatus은(는) 서로 다른 EventId 값에 대해서는 재진입 가능하지만, 동일한 EventId에 대해서는 재진입이 불가능합니다[SWS_Dem_00185]. DemMultiEventTriggering이(가) 구성되어 있고 이 함수가 마스터 이벤트와 함께 호출되는 경우, DEM은 연결된 모든 슬레이브 이벤트에 대해 동일한 호출을 자동으로 트리거합니다[SWS_Dem_01250]. 슬레이브 이벤트 또는 DemStorageConditionReplacementEventRef(으)로 구성된 EventId(으)로 직접 호출하는 것은 지원되지 않으며 정의되지 않은 동작을 유발합니다[SWS_Dem_01339].
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은 매개변수 InitMonitorReason이(가) DEM_INIT_MONITOR_RESTART(으)로 설정된 콜백 InitMonitorForEvent을(를) 호출하여 영향을 받는 모든 이벤트의 진단 모니터를 재초기화합니다([SWS_Dem_00679]).
Dem_RestartOperationCycle을(를) 통해 작동 주기가 재시작되는 경우, 자격이 충족된다면 그에 종속된 모든 작동 주기 또한 재시작되어야 합니다([SWS_Dem_01224]).
이 텍스트는 AI에 의해 생성되었으며 가이드 역할을 합니다. 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)
이 함수는 특정 진단 이벤트에 대한 동결 프레임 데이터를 동기식으로 수집하고 임시 저장하는 데 사용됩니다[SWS_Dem_00188]. 이 인터페이스는 오직 RTE를 통해서만 제공되며 Dem.h을 통해 내보내지지 않습니다[SWS_Dem_00188]. 이 함수는 하나 이상의 이벤트에 대해 사전 저장이 구성된 경우(DemFFPrestorageSupported)에만 모듈에 존재합니다[SWS_Dem_00334].
반환값 및 오류 처리:
E_OK: 동결 프레임이 성공적으로 임시 저장되었습니다[SWS_Dem_00188].E_NOT_OK: 특히 더 이상 사용 가능한 버퍼가 없거나(DemMaxNumberPrestoredFF에 의해 제한됨)[SWS_Dem_00808] 지정된 이벤트가 사용 불가능으로 설정된 경우[SWS_Dem_01108] 임시 저장에 실패합니다[SWS_Dem_00188].
동시성 및 호출 조건: 이 함수는 서로 다른 이벤트 ID에 대해서는 재진입 가능하지만, 동일한 이벤트 ID에 대해서는 그렇지 않습니다EventId[SWS_Dem_00188].
멀티 이벤트 트리거링 시의 상호작용: 구성된 마스터 이벤트(DemMultiEventTriggeringMasterEventRef)로 함수가 호출되면, DEM은 연관된 모든 슬레이브 이벤트(DemMultiEventTriggeringSlaveEventRef)에 대해 동일한 호출을 자동으로 트리거합니다[SWS_Dem_01250]. 슬레이브 이벤트 ID를 사용하거나 스토리지 조건 대체 이벤트(DemStorageConditionReplacementEventRef)를 사용하는 직접 호출은 지원되지 않으며 정의되지 않은 동작을 초래합니다[SWS_Dem_01339].
이 텍스트는 AUTOSAR Classic R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은(는) 후속 연산의 대상으로 특정 ClientId을(를) 위해 정의된 형식(DTCFormat) 및 이벤트 메모리(DTCOrigin)에서 DTC 또는 DTC 그룹을 선택합니다[SWS_Dem_91016]. 이 함수는 해당 ClientId에 할당된 이벤트 메모리에서 DEM의 내부 선택 프로세스를 트리거합니다[SWS_Dem_01254].
동시성 및 호출 컨텍스트와 관련하여 이 함수는 서로 다른 ClientId에 대해서는 재진입 가능하지만, 동일한 ClientId에 대해서는 재진입이 불가능합니다[SWS_Dem_91016]. 반환값으로는 다음이 정의되어 있습니다[SWS_Dem_91016]:
E_OK: DTC 또는 그룹이 성공적으로 선택되었습니다[SWS_Dem_91016].DEM_BUSY: 이 클라이언트의Dem_SelectDTC에 대한 추가 호출 또는 이에 종속된 연산이 현재 이미 실행 중입니다[SWS_Dem_91016].
선택 결과는 후속 API 호출의 반환값에 반영됩니다[SWS_Dem_01254]. DEM은 선택된 DTC 또는 DTC 그룹을 특히 Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord 및 Dem_SetDTCSuppression과(와) 같은 동일 클라이언트의 후속 함수 호출을 위한 대상으로 사용합니다[SWS_Dem_01253]. 또한 Dem_SelectFreezeFrameData 및 Dem_SelectExtendedDataRecord은(는) 이렇게 선택된 DTC를 기반으로 구축됩니다[SWS_Dem_01268], [SWS_Dem_01272].
유효한 선택이 사전에 존재하지 않는 상태에서 종속 API 중 하나가 호출되거나 전달된 DTC가 지정된 형식에서 유효하지 않은 경우, DEM은 DEM_WRONG_DTC을(를) 반환합니다[SWS_Dem_01261]. 요청된 메모리 영역(DTCOrigin)이 존재하지 않거나 유효하지 않으면 후속 호출에서 DEM_WRONG_DTCORIGIN을(를) 보고합니다[SWS_Dem_01258], [SWS_Dem_01262]. Dem_GetDTCSelectionResult을(를) 사용하면 E_OK을(를) 통한 선택이 성공했는지 그리고 DTC가 추가 처리를 위해 준비되었는지를 명시적으로 확인할 수 있습니다[SWS_Dem_01256], [SWS_Dem_01257].
이 사용 지침은 AI에 의해 작성되었으며 전적으로 AUTOSAR Classic R20-11의 명세 데이터를 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Dem_SetComponentAvailable [SWS_Dem_01117] 📄 PDF
Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);
Set the availability of a specific DemComponent.
함수 Dem_SetDTCSuppression [SWS_Dem_01047] 📄 PDF
Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);
Set the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppression Support)} == DEM_DTC_SUPPRESSION)
함수 Dem_SetEnableCondition [SWS_Dem_00201] 📄 PDF
Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);
Sets an enable condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEnable Condition)} != NULL)
함수 Dem_SetEventAvailable [SWS_Dem_01080] 📄 PDF
Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);
Set the available status of a specific Event.
함수 Dem_SetEventConfirmationThresholdCounter [SWS_Dem_91004] 📄 PDF
Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);
Set the failure confirmation threshold of an event.
함수 Dem_SetEventStatus [SWS_Dem_00183] 📄 PDF
Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);
Called by SW-Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEventReportingType} == STANDARD_REPORTING)
함수 Dem_SetEventStatus은(는) SW-C 및 BSW 모듈이 모니터 테스트 결과를 DEM에 전달하는 데 사용됩니다[SWS_Dem_00183], [SWS_Dem_00330]. 이 함수는 해당 이벤트에 대해 STANDARD_REPORTING이(가) 구성된 경우에 사용할 수 있습니다[SWS_Dem_00183]. 상태 값으로는 인증된 결과(DEM_EVENT_STATUS_PASSED, DEM_EVENT_STATUS_FAILED), DEM 내부 디바운싱을 위한 사전 인증(DEM_EVENT_STATUS_PREPASSED, DEM_EVENT_STATUS_PREFAILED) 또는 디바운스 임계값 도달 DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED이(가) 전달됩니다[SWS_Dem_00926].
동시성과 관련하여 이 API는 서로 다른 EventId 값에 대해서는 재진입 가능하지만, 동일한 EventId에 대해서는 재진입 불가능하게 구현되어 있습니다[SWS_Dem_00183]. Dem_PreInit을(를) 통한 사전 초기화 이전에는 개발 감지가 활성화된 상태에서 호출 시 오류 DEM_E_UNINIT이(가) 발생합니다[SWS_Dem_00364]. 반면 Dem_PreInit 이후이지만 Dem_Init 이전인 경우에는 호출이 허용되며[SWS_Dem_00124], [SWS_Dem_00180], 인증 이벤트는 DemBswErrorBufferSize을(를) 통해 크기가 결정되는 큐에 버퍼링되는 반면 FDC 임계값은 버퍼링되지 않습니다[SWS_Dem_00167], [SWS_Dem_00207]. Dem_Shutdown 이후에도 이 함수는 DEM_E_UNINIT 오류를 생성하지 않습니다[SWS_Dem_00368].
반환값은 성공적으로 승인된 경우 E_OK이며, 오류가 발생했거나 이벤트가 사용할 수 없음으로 설정된 경우에는 E_NOT_OK입니다[SWS_Dem_00183], [SWS_Dem_01108]. BSW 모듈은 반환값을 무시할 수 있습니다[SWS_Dem_00183]. 할당된 활성화 조건이 충족되는 즉시 보고가 수락됩니다[SWS_Dem_00450]. DTC-Setting이 비활성화된 경우 DEM은 UDS 상태에 대한 보고를 무시합니다[SWS_Dem_00626].
호출 컨텍스트에서 동기식 동작이 트리거될 수 있습니다:
DemTriggerFiMReports이(가) 활성화된 경우 상태 변경 시FiM_DemTriggerOnEventStatus을(를) 통한 FiM 알림[SWS_Dem_00029].- 옵션
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은(는) 모니터별 추가 데이터(monitorData0 및 monitorData1)와 함께 특정 진단 이벤트(EventId)에 대한 모니터 테스트 결과(EventStatus)를 DEM에 보고하는 데 사용됩니다[SWS_Dem_91037]. Dem_SetEventStatus과(와) 동일한 기능을 갖지만 이벤트 관련 데이터에 저장하기 위한 추가 매개변수를 전달합니다[SWS_Dem_01333].
판독 연산과의 상호작용에서, Read-Data 연산이 monitorData0을(를) 제공하도록 구성된 경우 DEM은 Dem_SetEventStatusWithMonitorData에서 전달된 monitorData0을(를) 이 Read-Data 연산의 매개변수 monitorData0에 추가합니다[SWS_Dem_01330].
사용 및 동시성에 대해 다음 조건이 적용됩니다:
- 가용성: 이 API는
DemEventReportingType이(가)STANDARD_REPORTING_WITH_MONITOR_DATA(으)로 구성된 경우에만Dem.h을(를) 통해 사용할 수 있습니다[SWS_Dem_91037]. - 실행 및 재진입성: 실행은 동기식/비동기식입니다. 이 함수는 서로 다른
EventId에 대해서는 재진입 가능하지만 동일한EventId에 대해서는 재진입이 불가능합니다[SWS_Dem_91037]. - 반환값: 이벤트 상태를 성공적으로 설정한 경우
E_OK을(를) 반환하고, 설정 또는 처리에 실패했거나 수락할 수 없는 경우E_NOT_OK을(를) 반환합니다[SWS_Dem_91037].
이 사용 지침은 사양을 바탕으로 자동 작성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_SetStorageCondition [SWS_Dem_00556] 📄 PDF
Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);
Sets a storage condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemStorage Condition)} != NULL)
함수 Dem_SetWIRStatus [SWS_Dem_00839] 📄 PDF
Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);
Sets the WIR status bit via failsafe SW-Cs. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.
사용법 및 호출 컨텍스트
비동기 함수 Dem_SetWIRStatus은 페일세이프 소프트웨어 컴포넌트(failsafe SW-C)가 진단 이벤트의 Warning-Indicator-Requested 상태 비트(WIR 비트)를 목표에 맞게 요청하는 데 사용됩니다 [SWS_Dem_00839], [SWS_Dem_01303]. 호출은 RTE를 통해서만 이루어지므로 헤더 파일 Dem.h에는 선언이 존재하지 않습니다 [SWS_Dem_00839].
기능적 동작 및 상호 작용
비트의 설정 및 리셋은 전달 매개변수 WIRStatus과 구성된 표시기의 상태에 따라 달라집니다:
WIRStatus = TRUE이 전달되면 DEM은 해당 이벤트의 WIR 비트를 1로 설정합니다 [SWS_Dem_00833].WIRStatus = FALSE의 경우, 참조된 DEM 표시기가 설정되어 있지 않은 경우에만 WIR 비트가 0으로 리셋됩니다 [SWS_Dem_00834].- 또한
Dem_SetWIRStatus을 통해 설정된 WIR 비트는 디바운스 주기 또는 힐링 주기에 도달했을 때 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])은 이전에 Dem_SelectDTC를 통해 정의된 DTC([SWS_Dem_01253])에 대해 이벤트 메모리의 업데이트를 비활성화합니다. 이 호출의 목적은 후속 Freeze Frame 데이터 및 Extended Data Records에 대한 일관된 읽기 액세스를 보장하기 위해 해당 DTCOrigin에서 선택된 오류의 이벤트 관련 데이터를 덮어쓰기 또는 삭제로부터 보호하는 것입니다([SWS_Dem_00270]). ClientId 매개변수를 통해 호출하는 모듈 인스턴스가 식별됩니다([SWS_Dem_00233]).
반환값 및 오류 처리
이 함수는 특정 반환값([SWS_Dem_00233])을 통해 처리 상태를 알립니다:
E_OK: 이벤트 메모리의 업데이트가 성공적으로 비활성화되었습니다.DEM_PENDING: 비활성화가 비동기적으로 실행되며, 호출자는 나중에 이 함수를 다시 호출해야 합니다.DEM_BUSY: 이 클라이언트에 대해Dem_SelectDTC에 종속된 다른 작업이 이미 진행 중입니다.E_NOT_OK: 사전에 선택된 DTC가 없습니다.DEM_WRONG_DTC: 선택된 DTC가 선택된 포맷에 존재하지 않거나 유효하지 않게 DTC 그룹이 선택되었습니다.DEM_WRONG_DTCORIGIN: 지정된 오리진(DTCOrigin)이 존재하지 않습니다.
동시성 및 제약사항
Dem_DisableDTCRecordUpdate은 서로 다른 ClientId을 갖는 호출에 대해 reentrant하지만, 동일한 ClientId에 대해서는 reentrant하지 않습니다([SWS_Dem_00233]). 동일한 시점에는 항상 정확히 하나의 DTC에 대해서만 업데이트를 잠글 수 있습니다([SWS_Dem_00233]). 진단 데이터를 읽은 후에는 Dem_EnableDTCRecordUpdate를 통해 데이터 레코드의 업데이트를 다시 활성화해야 합니다([SWS_Dem_00234], [SWS_Dem_00270]).
이 사용 지침은 AUTOSAR 사양을 바탕으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_EnableDTCRecordUpdate [SWS_Dem_00234] 📄 PDF
Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);
Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before. Note: As the call to Dem_EnableDTCRecordUpdate is the last action in the sequence of disabling/enabling a DTC, the caller is not interested in the return value. Therefore E_OK should be returned even if the DTC is enabled asynchronously.
비동기 함수 Dem_EnableDTCRecordUpdate([SWS_Dem_00234])은 이전에 잠긴 DTC에 대한 이벤트 메모리 업데이트를 해제하는 데 사용됩니다. [SWS_Dem_00271]에 따라 이 함수는 현재 Dem_DisableDTCRecordUpdate에 의해 보호된 DTC를 다시 해제하여 해당 데이터가 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은 서로 다른 클라이언트 ID를 사용한 호출에 대해서는 재진입 가능(reentrant)하지만, 동일한 ClientId에 대해서는 재진입 불가능(non-reentrant)합니다([SWS_Dem_00234]).
본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_GetSizeOfExtendedDataRecordSelection [SWS_Dem_00240] 📄 PDF
Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);
Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.
함수 Dem_GetSizeOfFreezeFrameSelection [SWS_Dem_00238] 📄 PDF
Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);
Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.
함수 Dem_GetNextExtendedDataRecord [SWS_Dem_00239] 📄 PDF
Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);
Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.
함수 Dem_GetNextFreezeFrameData [SWS_Dem_00236] 📄 PDF
Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);
Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.
함수 Dem_SelectExtendedDataRecord [SWS_Dem_91017] 📄 PDF
Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);
Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.
비동기 함수 Dem_SelectExtendedDataRecord은 이전에 Dem_SelectDTC로 설정된 DTC의 확장 진단 데이터를 판독하기 위한 필터를 초기화합니다 [SWS_Dem_91017] [SWS_Dem_01253]. 이 함수는 클라이언트의 할당된 이벤트 메모리에서 내부 선택 프로세스를 시작하고 [SWS_Dem_01273] Dem_GetSizeOfExtendedDataRecordSelection 및 Dem_GetNextExtendedDataRecord을 통한 후속 조회를 위한 대상 레코드를 결정합니다 [SWS_Dem_01272].
매개변수화 및 진행 과정과 관련하여 다음 규정이 적용됩니다:
- 매개변수:
ExtendedDataNumber은 특정 레코드 번호 외에도0xFE(모든 OBD 레코드의 전체 크기) 및0xFF(모든 레코드의 전체 크기) 값을 허용합니다 [SWS_Dem_91017]. 판독 중 데이터 불일치를 방지하기 위해 사전에Dem_DisableDTCRecordUpdate로 레코드를 보호할 수 있습니다 [SWS_Dem_00270]. - 반환값 및 오류: 성공적으로 선택되면
E_OK이 반환됩니다 [SWS_Dem_91017]. 이는 유효한 레코드 번호가 요청되었지만 저장된 항목이 없는 경우에도 적용되며, 이 경우 이후의 판독 시 버퍼 크기 0이 반환됩니다 [SWS_Dem_00631].Dem_SelectDTC을 통해 개별 결함 코드가 아닌 DTC 그룹이 선택되었거나 DTC가 존재하지 않는 경우 호출은DEM_WRONG_DTC와 함께 실패합니다 [SWS_Dem_91017] [SWS_Dem_01349]. 메모리 위치가 존재하지 않는 경우DEM_WRONG_DTCORIGIN이 보고됩니다 [SWS_Dem_91017]. - 동시성: 선택이 아직 진행 중인 경우
DEM_PENDING은 재호출이 필요함을 나타냅니다 [SWS_Dem_91017]. 상태DEM_BUSY는 해당ClientId에 대해 다른 DTC 종속 작업이 여전히 활성 상태임을 나타냅니다 [SWS_Dem_91017]. 이 함수는 서로 다른ClientId값에 대해서는 재진입 가능하지만, 동일한 인스턴스에 대해서는 재진입 불가능합니다 [SWS_Dem_91017].
이 사용 지침은 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Dem_SelectFreezeFrameData [SWS_Dem_91015] 📄 PDF
Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);
Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.
사용법 및 의미론
비동기 함수 Dem_SelectFreezeFrameData은 Dem_GetSizeOfFreezeFrameSelection 및 Dem_GetNextFreezeFrameData를 통한 향후 프리즈 프레임 데이터 판독을 위한 필터를 설정합니다 [SWS_Dem_91015], [SWS_Dem_01268]. 매개변수 ClientId를 통해 호출 모듈 인스턴스가 식별되며, RecordNumber은 ISO 14229-1에 따른 스냅샷 레코드 번호를 지정합니다. 여기서 0xFF은 DTC의 모든 스냅샷 레코드를 나타내고 0x00은 DTC 전용 WWH-OBD 스냅샷을 나타냅니다 [SWS_Dem_91015]. 이 호출은 할당된 이벤트 메모리에서 내부 선택 프로세스를 시작합니다 [SWS_Dem_01269].
반환값 및 오류 처리
선택 프로세스가 성공적으로 시작되면 함수는 E_OK을 반환합니다 [SWS_Dem_91015]. 선택이 아직 진행 중인 경우 DEM_PENDING는 호출자가 이후 시점에 함수를 다시 호출해야 함을 알립니다 [SWS_Dem_91015]. 클라이언트에 대해 이미 다른 종속 작업이 활성 상태인 경우 API는 DEM_BUSY를 반환합니다 [SWS_Dem_91015], [SWS_Dem_01253]. 대상 DTC가 원하는 형식으로 존재하지 않거나, Dem_SelectDTC을 통해 개별 DTC 대신 DTC 그룹이 선택된 경우 DEM_WRONG_DTC이 반환됩니다 [SWS_Dem_91015], [SWS_Dem_01348]. 메모리 위치가 유효하지 않은 경우 DEM_WRONG_DTCORIGIN이 발생합니다 [SWS_Dem_91015]. 사전 선택 없이 종속 판독 함수가 호출되면 DEM은 DET 오류를 보고합니다 [SWS_Dem_01270], [SWS_Dem_01271].
순서 및 동시성
이 함수는 서로 다른 호출자(ClientId)에 대해서는 재진입 가능하지만, 동일한 클라이언트에 대해서는 재진입 불가능합니다 [SWS_Dem_91015]. 대상 DTC 및 메모리 위치를 설정하기 위해 사전에 Dem_SelectDTC를 호출하는 것이 필수 전제 조건입니다 [SWS_Dem_01253]. 일관된 판독을 보장하기 위해 Dem_DisableDTCRecordUpdate를 호출하여 이벤트 관련 데이터가 변경되거나 삭제되지 않도록 보호할 수 있습니다 [SWS_Dem_00270].
이 사용 지침은 사양을 기반으로 AI에 의해 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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 함수는 호출 클라이언트의 DemEventMemorySet에 할당된 모든 진단 이벤트에 대해 DTC-Setting을 비활성화합니다 [SWS_Dem_00242], [SWS_Dem_01290]. 호출은 비동기적으로 수행되며 고유한 ClientId의 전달이 필요합니다 [SWS_Dem_00242]. E_OK을 통한 성공적인 완료 외에도, 반환값 DEM_PENDING은 작업이 아직 진행 중임을 나타내며, 이 경우 호출자는 나중에 이 함수를 다시 호출해야 합니다 [SWS_Dem_00242].
기능적 영향
Dem_DisableDTCSetting이 호출되면 DEM은 관련 이벤트의 저장 및 UDS 상태 바이트의 업데이트를 차단합니다 [SWS_Dem_00079]. 또한 구성 매개변수 DemDebounceBehavior가 DEM_DEBOUNCE_RESET으로 설정된 경우, 이 호출은 해당 오류 감지 카운터(Fault Detection Counters)의 리셋도 유발합니다 [SWS_Dem_00677].
동시성 및 제약사항
이 함수는 서로 다른 Client ID를 갖는 호출에 대해 reentrant하지만, 동일한 ClientId에 대해서는 reentrant하지 않습니다 [SWS_Dem_00242]. 비활성화는 ClientId에 의해 참조되는 DemEventMemorySet의 이벤트 및 UDS 상태 바이트에만 영향을 미치며, 이 메모리 영역 외부의 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은 주소 지정된 클라이언트의 DemEventMemorySet에 할당된 모든 DTC에 대해 DTC-Setting을 활성화하거나 재활성화합니다 [SWS_Dem_00243]. 호출 시 호출하는 모듈 인스턴스의 고유 식별자 ClientId이 전달됩니다 [SWS_Dem_00243].
반환값으로 다음이 정의되어 있습니다 [SWS_Dem_00243]:
E_OK: 오퍼레이션이 성공적으로 완료되었습니다.DEM_PENDING: 작업이 비동기적으로 실행되며, 호출자는 나중에 이 함수를 다시 호출해야 합니다.
동시성과 관련하여 Dem_EnableDTCSetting은 서로 다른 ClientId 값에 대해 reentrant하지만, 동일한 ClientId에 대해 동시에 호출되어서는 안 됩니다 [SWS_Dem_00243].
이벤트 처리와의 상호작용에서 이 함수는 DEM이 관련 이벤트 및 UDS 상태 바이트의 저장을 활성화하도록 보장합니다 [SWS_Dem_00080]. 이벤트에 대한 DTC-Setting이 다시 활성화되면, Dem_EnableDTCSetting은 매개변수 InitMonitorReason을 DEM_INIT_MONITOR_REENABLED로 설정하여 영향받는 이벤트의 콜백 함수 InitMonitorForEvent를 트리거합니다 [SWS_Dem_00682].
이 텍스트는 AI에 의해 생성되었으며 참조용으로 제공됩니다. 해당 AUTOSAR 릴리스의 사양만이 구속력을 갖습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_DcmGetInfoTypeValue08 [SWS_Dem_00316] 📄 PDF
Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);
Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype
사용
동기 함수 Dem_DcmGetInfoTypeValue08([SWS_Dem_00316])은 OBD 서비스 $09의 프레임워크 내에서 InfoType $08에 대한 IUMPR(In-Use Monitor Performance Ratio) 데이터를 쿼리하기 위해 DCM에 의해 호출됩니다([SWS_Dem_00298]). 처리가 동기적으로 수행되므로 DCM은 매개변수 OpStatus에 대해 오직 DCM_INITIAL 값만 전달합니다([SWS_Dem_00316]). 페이로드 및 ISO-15031-5에 따른 데이터 요소 수는 DCM이 제공한 버퍼 Iumprdata08에 기록되며, 기록 가능한 최대 버퍼 크기는 Inout 매개변수 Iumprdata08BufferSize을 통해 지정됩니다([SWS_Dem_00316]).
오류 처리
이 함수는 반환값으로 항상 E_OK을 반환합니다([SWS_Dem_00316]). 이 호출에 대해 특정 오류 코드나 개발 오류 알림(DET)은 지정되지 않았습니다.
동시성 및 구성
이 인터페이스는 non-reentrant이며(Non Reentrant), Dem_Dcm.h을 통해 선언됩니다([SWS_Dem_00316]). 활성 OBD 지원(DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT)을 갖춘 OBD 관련 ECU에만 존재하며([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(서비스 ID 0x6c, Dem_Dcm.h를 통해 사용 가능)은 DCM이 OBD 서비스 $09 [SWS_Dem_00317] [SWS_Dem_00298]의 프레임워크 내에서 InfoType $0B에 따른 IUMPR(In-Use Performance Ratio) 데이터를 쿼리하는 역할을 합니다. 함수 인터페이스는 DCM 프로토타입 <Module>_GetInfotypeValueData()에서 파생되므로 Dcm_OpStatusType 및 Std_ReturnType을 사용합니다 [SWS_Dem_00317]:
OpStatus(in): 함수가 동기적 동작을 나타내므로 호출 시 오직DCM_INITIAL상태만 발생합니다 [SWS_Dem_00317].Iumprdata0BBufferSize(inout): 버퍼에 기록할 수 있는 최대 데이터 바이트 수를 정의합니다 [SWS_Dem_00317].Iumprdata0B(out): ISO-15031-5에 따른 데이터 요소 수와 InfoType $0B의 내용을 수신하는 DCM이 제공하는 버퍼입니다 [SWS_Dem_00317].
반환값으로 항상 E_OK이 제공됩니다 [SWS_Dem_00317].
오류 처리 및 동시성
특정 오류 코드 또는 오류 반응(예: DET 알림)은 사양에서 이 함수에 대해 정의되지 않았으며, 호출은 형식적으로 항상 E_OK을 반환합니다 [SWS_Dem_00317]. API는 non-reentrant(Non Reentrant)로 분류됩니다 [SWS_Dem_00317]. 따라서 호출자(DCM)는 추정상 여러 진단 요청에 대해 이 서비스를 병렬로 동시에 실행해서는 안 됩니다. 질문 Q-636518c23ec3801a (열림)
구성 의존성 및 상호작용
이 API는 구성 매개변수 DemOBDSupport이 DEM_OBD_NO_OBD_SUPPORT이 아니도록 구성된 OBD 관련 ECU에만 존재합니다 [SWS_Dem_00317]. 또한 DemOBDEngineType이 DEM_IGNITION_COMPRESSION로 설정된 경우 제공됩니다 [SWS_Dem_00358]. DTC 억제와의 상호작용과 관련하여, 억제된 DTC는 이 쿼리 기능에 보이지 않아야 하며 필터가 적용되지 않은 것처럼 처리되어야 합니다 [SWS_Dem_01101].
이 텍스트는 AI에 의해 작성되었습니다. 지침에 따라 사용자는 AUTOSAR 사양을 기반으로 검토해야 합니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Dem_DcmReadDataOfPID01 [SWS_Dem_00318] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);
Service to report the value of PID $01 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
동기식 함수 Dem_DcmReadDataOfPID01은(는) DEM이 계산한 OBD 매개변수 PID $01의 콘텐츠를 DCM에 전달하는 역할을 합니다[SWS_Dem_00318]. 이 인터페이스는 헤더 파일 Dem_Dcm.h에 선언되어 있으며, DemOBDSupport이(가) DEM_OBD_NO_OBD_SUPPORT(으)로 설정되지 않은 OBD 관련 ECU에서만 독점적으로 사용할 수 있습니다[SWS_Dem_00318].
DCM은 출력 매개변수 PID01value을(를) 통해 DEM이 데이터를 기록할 대상 버퍼에 대한 포인터를 전달합니다[SWS_Dem_00318]. DCM은 이 버퍼를 충분한 크기로 제공할 책임이 있으며, 버퍼 크기 지정은 PIDBuffer 설정을 위해 발생하는 가장 큰 PID를 기반으로 구성 중에 수행됩니다[SWS_Dem_00318].
이 함수는 비재진입(Non Reentrant)으로 구현되어 있습니다[SWS_Dem_00318]. 명세에 따르면 E_NOT_OK을(를) 수반하는 오류 상태는 발생하지 않으므로 반환값으로는 항상 E_OK이(가) 반환됩니다[SWS_Dem_00318].
오류 조회와의 상호작용에서 억제된 오류 코드(suppressed DTC)는 Dem_DcmReadDataOfPID01에 표시되지 않아야 합니다[SWS_Dem_01101]. DEM은 평가 시 억제된 DTC를 필터가 일치하지 않는 것처럼 처리해야 합니다[SWS_Dem_01101].
참고: 이 문서는 AUTOSAR Classic R20-11 명세를 기반으로 AI 시스템에 의해 자동으로 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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 Communication Module(DCM)이 OBD PID $1C의 계산된 내용을 조회할 수 있도록 Diagnostic Event Manager의 동기식 서비스를 제공합니다 [SWS_Dem_00325].
-
매개변수: 출력 매개변수
PID1Cvalue(uint8에 대한 포인터)을 통해 DEM은 데이터를 DCM의 버퍼에 씁니다. 필요한 버퍼 크기는 적절한PIDBuffer를 제공하기 위해 DCM 구성 시 가장 큰 PID를 기준으로 산정됩니다 [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에 선언되어 있으며, DemGeneral.DemOBDSupport가 DEM_OBD_NO_OBD_SUPPORT으로 설정되지 않은 활성 OBD 지원 기능이 있는 전자 제어 장치에서만 독점적으로 사용할 수 있습니다 [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(서비스 ID 0x64)은 Diagnostic Communication Manager(DCM)가 DEM에 의해 계산된 OBD 매개변수 PID $21의 현재 값을 쿼리하는 데 사용됩니다 [SWS_Dem_00319], [SWS_Dem_01098]. 이 인터페이스는 헤더 Dem_Dcm.h를 통해 선언되며, 구성 매개변수 DemOBDSupport가 DEM_OBD_NO_OBD_SUPPORT으로 설정되지 않은 경우 OBD 관련 ECU에서만 사용할 수 있습니다 [SWS_Dem_00319].
사용 및 작동 상호작용에 대해 다음 규정이 적용됩니다:
- 버퍼 제공: 출력 매개변수로 포인터
PID21value이 전달됩니다 [SWS_Dem_00319]. 호출자(DCM)는 이 버퍼를 제공해야 하며, 구성 중에 구성된 가장 큰 PID에 맞게 크기를 지정합니다 [SWS_Dem_00319]. 호출 시 DEM은 PID $21의 현재 값을 이 버퍼에 기록합니다 [SWS_Dem_01098]. - 반환값: 사양에 따라
E_NOT_OK과 같은 오류 값은 결코 발생하지 않으므로 함수는 항상E_OK을 반환합니다 [SWS_Dem_00319]. - 초기 상태 / 오류 처리:
Dem_SetDataOfPID21을 통해 값이 설정되기 전에Dem_DcmReadDataOfPID21이 호출되면 DEM은 PID $21의 내용으로 대체 값0xFFFF를 반환합니다 [SWS_Dem_01099]. - 동시성: 이 함수는 non-reentrant(Non Reentrant)로 지정되어 있습니다 [SWS_Dem_00319]. 따라서 여러 컨텍스트에 의한 동시 호출은 허용되지 않습니다.
이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_DcmReadDataOfPID30 [SWS_Dem_00320] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);
Service to report the value of PID $30 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
동기 함수 Dem_DcmReadDataOfPID30은 DEM에 의해 계산된 매개변수 PID $30의 데이터 내용을 DCM에 전달하는 역할을 합니다 [SWS_Dem_00320]. 헤더 파일 Dem_Dcm.h를 통해 선언되며 구성 매개변수 DemOBDSupport이 DEM_OBD_NO_OBD_SUPPORT와 같지 않은 경우 OBD 관련 ECU에서만 사용할 수 있습니다 [SWS_Dem_00320].
인터페이스 사용에 대해 다음 규정이 적용됩니다:
- 전달 매개변수: 호출자는 출력 매개변수
PID30value을 통해 DEM이 PID $30의 계산된 데이터를 기록할 버퍼를 제공합니다 [SWS_Dem_00320]. DCM은 적절한 크기로 이 버퍼를 제공할 책임이 있으며, DCM은 구성 중에 가장 큰 PID를 기반으로 크기를 결정합니다 [SWS_Dem_00320]. - 반환값 및 오류 처리: 인터페이스는
Std_ReturnType으로 항상E_OK을 반환합니다 [SWS_Dem_00320]. 사양에 따르면 오류 값E_NOT_OK은 절대 발생하지 않으며, 특정 오류 코드나 별도의 오류 처리 루틴은 제공되지 않습니다 [SWS_Dem_00320]. - 동시성: 이 함수는 non-reentrant(
Non Reentrant)로 정의됩니다 [SWS_Dem_00320]. 사양에 내부 동기화 메커니즘이 제공되지 않으므로, 호출자가 경쟁 호출을 배제할 책임이 있는 것으로 보입니다 [SWS_Dem_00320]. 질문 Q-976bc8dc189021a1 (열림)
이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 AI에 의해 생성되었습니다.
함수 Dem_DcmReadDataOfPID31 [SWS_Dem_00321] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);
Service to report the value of PID $31 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
동기 함수 Dem_DcmReadDataOfPID31은 DEM에 의해 계산된 OBD 매개변수 PID $31의 값을 DCM에 전달하는 역할을 합니다 [SWS_Dem_00321]. 이 인터페이스는 헤더 파일 Dem_Dcm.h를 통해 제공되며 서비스 ID 0x66을 가집니다 [SWS_Dem_00321].
사용법 및 매개변수
호출은 동기적으로 수행되며 non-reentrant로 정의됩니다 [SWS_Dem_00321]:
- PID31value (출력 매개변수): PID $31의 계산된 데이터를 수신하는 버퍼에 대한 포인터(
uint8*)입니다 [SWS_Dem_00321]. 적절한 크기의 버퍼를 제공하는 것은 호출하는 DCM의 책임이며, DCM은PIDBuffer의 설계를 위해 구성 중에 가장 큰 PID를 기반으로 필요한 버퍼 크기를 결정합니다 [SWS_Dem_00321]. - 반환값: 이 서비스는
Std_ReturnType으로 항상E_OK을 반환하며, 사양에 따르면 오류 값E_NOT_OK는 결코 발생하지 않습니다 [SWS_Dem_00321].
제한사항 및 구성
이 API는 OBD 관련 ECU 전용으로 제공됩니다 [SWS_Dem_00321]. 구성 매개변수 DemGeneral.DemOBDSupport이 DEM_OBD_MASTER_ECU 값으로 설정된 경우에만 사용할 수 있습니다 [SWS_Dem_00321]. 함수가 non-reentrant이므로 DCM에 의한 병렬 호출은 수행되어서는 안 됩니다 [SWS_Dem_00321].
이 사용 지침은 자동으로 생성되었으며 릴리스 R20-11의 사양 데이터만을 기반으로 합니다.
함수 Dem_DcmReadDataOfPID41 [SWS_Dem_00322] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);
Service to report the value of PID $41 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
동기 함수 Dem_DcmReadDataOfPID41은 DEM에 의해 계산된 PID $41의 내용을 DCM에 전달하는 역할을 합니다 [SWS_Dem_00322]. 이 함수는 헤더 Dem_Dcm.h를 통해 선언되며 서비스 ID 0x67을 가집니다 [SWS_Dem_00322].
사용법 및 매개변수
호출은 동기적으로 수행되며 non-reentrant(Non Reentrant)로 지정됩니다 [SWS_Dem_00322]. 인터페이스는 출력 매개변수로 포인터 PID41value(uint8*)를 기대합니다:
PID41value은 PID $41의 계산된 데이터를 수신합니다 [SWS_Dem_00322].- 버퍼는 DCM에 의해 적절한 크기로 제공되어야 합니다. 이를 위해 DCM은 구성 중에 발생하는 가장 큰 PID를 기반으로
PIDBuffer의 구성에 필요한 크기를 이미 결정합니다 [SWS_Dem_00322].
반환값 및 오류 처리
규격에 따르면 오류 값 E_NOT_OK은 결코 발생하지 않으므로, 이 함수는 반환값으로 항상 E_OK을 반환합니다 [SWS_Dem_00322]. 이 인터페이스에는 특정 오류 코드나 오류 반응이 정의되어 있지 않습니다 [SWS_Dem_00322].
구성 종속성 및 가용성
이 API는 OBD 관련 전자 제어 장치(ECU)에서만 필요합니다 [SWS_Dem_00322]. 이 API는 DemGeneral 내의 구성 매개변수 DemOBDSupport이 DEM_OBD_NO_OBD_SUPPORT이 아니도록 구성된 경우에만 사용할 수 있습니다 [SWS_Dem_00322].
이 텍스트는 AI에 의해 작성되었으며 R20-11 규격에 전적으로 기반합니다.
함수 Dem_DcmReadDataOfPID4D [SWS_Dem_00323] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);
Service to report the value of PID $4D computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
사용법 및 호출 컨텍스트
동기 함수 Dem_DcmReadDataOfPID4D은 DEM에서 계산된 OBD 매개변수 PID $4D의 값을 DCM으로 전달하는 역할을 합니다 [SWS_Dem_00323]. 이 서비스는 서비스 ID 0x68과 함께 헤더 Dem_Dcm.h를 통해 제공됩니다 [SWS_Dem_00323].
유일한 전달 매개변수는 DCM이 제공하는 대상 버퍼를 가리키는 출력 포인터 PID4Dvalue입니다 [SWS_Dem_00323]. DCM은 구성 단계에서 발생하는 가장 큰 PID를 기반으로 PIDBuffer에 필요한 크기를 이미 결정함으로써 적절한 크기의 이 버퍼를 제공합니다 [SWS_Dem_00323].
반환값 및 오류 처리
이 함수는 반환 유형 Std_ReturnType을 가지며 예외 없이 E_OK을 반환합니다 [SWS_Dem_00323]. 규격상 E_NOT_OK 반환값은 제외되어 있으며 결코 발생하지 않습니다 [SWS_Dem_00323]. 이 호출에 대한 특별한 오류 처리나 특정 오류 코드는 존재하지 않습니다.
동시성 및 구성 종속성
이 인터페이스는 비재진입(non-reentrant, Non Reentrant)으로 선언되어 있으므로 동시 실행해서는 안 됩니다 [SWS_Dem_00323].
또한 이 함수는 OBD 관련 전자 제어 장치에서만 필요합니다 [SWS_Dem_00323]. 구성에서 DemGeneral 내의 매개변수 DemOBDSupport이 DEM_OBD_MASTER_ECU 값으로 설정된 경우에만 사용할 수 있습니다 [SWS_Dem_00323].
이 사용 지침은 AUTOSAR CP R20-11의 Diagnostic Event Manager 규격을 기반으로 합니다.
함수 Dem_DcmReadDataOfPID4E [SWS_Dem_00324] 📄 PDF
Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);
Service to report the value of PID $4E computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)
동기 함수 Dem_DcmReadDataOfPID4E은 DEM에서 계산된 OBD 매개변수 ID PID $4E의 내용을 DCM으로 전달하는 역할을 합니다 [SWS_Dem_00324]. 이 함수는 서비스 ID 0x69를 가지며 헤더 파일 Dem_Dcm.h을 통해 선언됩니다 [SWS_Dem_00324].
호출 및 버퍼 관리
호출은 동기식으로 이루어지며 비재진입(Non Reentrant)으로 정의됩니다 [SWS_Dem_00324]. 이 함수는 DEM이 계산된 데이터를 저장하는 데 사용하는 포인터 PID4Evalue(유형 uint8*)를 출력 매개변수로 받습니다 [SWS_Dem_00324]. 호출하는 DCM은 이를 위해 적절한 크기의 버퍼를 제공해야 합니다 [SWS_Dem_00324]. DCM은 공유 PIDBuffer의 크기를 적절히 지정하기 위해 구성 중에 발생하는 가장 큰 PID를 기반으로 필요한 버퍼 크기를 결정합니다 [SWS_Dem_00324].
반환값 및 오류 처리
규격에 따르면 반환값 E_NOT_OK는 결코 발생하지 않으므로, 이 인터페이스는 항상 유형 Std_ReturnType의 E_OK을 반환합니다 [SWS_Dem_00324]. 규격 범위 내에 오류 상황에 대한 특정 오류 코드나 DET 또는 DEM 오류 메시지는 명시되어 있지 않습니다 [SWS_Dem_00324].
제약 사항 및 가용성
이 API는 OBD 관련 전자 제어 장치에서만 필요합니다 [SWS_Dem_00324]. 가용성은 구성 조건 DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU에 종속되며, 다른 구성에서는 이 함수를 사용할 수 없습니다 [SWS_Dem_00324].
이 텍스트는 AI에 의해 작성되었으며 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(서비스 ID 0x6a)은(는) DEM에 의해 계산된 OBD 매개변수 PID $91의 데이터를 DCM에 전달하는 데 사용됩니다 [SWS_Dem_01187]. 인터페이스는 헤더 Dem_Dcm.h을(를) 통해 선언되며, DemOBDSupport이(가) DEM_OBD_NO_OBD_SUPPORT(으)로 구성되지 않은 OBD 관련 ECU에서만 사용할 수 있습니다 [SWS_Dem_01187].
출력 매개변수로서 함수는 DCM이 제공하는 버퍼를 가리키는 포인터 PID91value을(를) 필요로 합니다 [SWS_Dem_01187]. DCM은 이 버퍼를 적절한 크기로 제공할 책임이 있으며, 버퍼 PIDBuffer을(를) 생성하기 위해 구성 중에 가장 큰 PID를 기반으로 필요한 크기가 이미 결정됩니다 [SWS_Dem_01187].
이 함수는 Non Reentrant로 명시되어 있으며 동기식으로 처리되어야 합니다 [SWS_Dem_01187]. 따라서 서로 다른 컨텍스트에서의 병렬 호출은 허용되지 않습니다. 오류 반환값은 존재하지 않습니다. 명세에 따르면 오류 값 E_NOT_OK은(는) 결코 발생하지 않으므로, 함수는 Std_ReturnType(으)로 항상 E_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은 OBD 서비스 $02의 출력을 위해 선택된 가장 중요한 프리즈 프레임에 대해 PID에 속한 데이터 요소의 데이터를 읽어옵니다 [SWS_Dem_00327].
호출 컨텍스트 및 매개변수
호출은 헤더 Dem_Dcm.h을 통해 DCM에 의해 수행됩니다 [SWS_Dem_00327]. 함수에는 다음 매개변수가 전달됩니다:
PID: ISO 15031-5에 따른 PID 식별자 [SWS_Dem_00327].DataElementIndexOfPID: PID 내 데이터 요소의 0부터 시작하는 연속 인덱스입니다. 순서는 DCM 구성의 PID 레이아웃에 있는 데이터 요소 위치에서 직접 파생됩니다 [SWS_Dem_00327], [SWS_Dem_00597].DestBuffer: 헤더 정보 없이 16진수 원시 형식으로 데이터 요소가 기록되는 버퍼에 대한 포인터 [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 (열림)
이 텍스트는 AI에 의해 작성되었으며, 참조된 사양이 기준이 됩니다.
구현자 가이드 준비 중 (복잡도 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를 판독합니다 [SWS_Dem_00624]. 이 함수는 주로 OBD 서비스 $02(PID $02) 범위 내에서 DCM이 선택된 가장 관련성이 높은 프리즈 프레임의 DTC를 확인하여 출력하는 데 사용됩니다 [SWS_Dem_00623].
호출 및 매개변수
FrameNumber(IN): ISO 15031-5에 따른 프리즈 프레임 레코드의 고유 식별자입니다. 값0x00은 전체 OBD 프리즈 프레임을 나타내며, 다른 값들은 예약되어 있습니다 [SWS_Dem_00624].DTCFormat(IN): DTC 값의 원하는 출력 형식입니다 [SWS_Dem_00624].DTC(OUT): OBD 형식으로 확인된 결함 코드가 저장될 메모리 위치를 가리키는 포인터입니다 [SWS_Dem_00624].
반환값 및 오류 처리
함수는 DTC를 성공적으로 확인할 수 있었던 경우 E_OK을 반환합니다. 일치하는 DTC를 사용할 수 없는 경우 호출은 E_NOT_OK을 반환하며, 이 경우 출력 매개변수 DTC에는 유효한 데이터가 포함되지 않습니다 [SWS_Dem_00624].
조건 및 상호 작용
이 인터페이스는 헤더 Dem_Dcm.h을 통해 사용할 수 있으며, OBD를 지원하는 ECU(구성 DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT)에만 존재합니다 [SWS_Dem_00624]. 억제된 DTC(suppressed DTCs)는 함수에 의해 일치 항목이 없는 것처럼 처리되며 이 조회에서 표시되지 않습니다 [SWS_Dem_01101].
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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(서비스 ID 0xa3)은 OBD 서비스 $06 요청의 일환으로 요청된 가용성 OBDMID 값을 판독하기 위해 DCM에 의해 호출됩니다 [SWS_Dem_00766]. 호출자는 입력 매개변수 Obdmid(타입 uint8)을 통해 $00, $20 또는 $40과 같은 표준화된 가용성 식별자를 전달합니다. DEM은 지원되는 테스트 식별자를 32비트 출력 포인터 Obdmidvalue을 통해 비트 코딩된 정보로 보고합니다 [SWS_Dem_00766]. 진단 테스터는 이 데이터로부터 정비 인력에게 선택용으로 표시할 테스트를 도출합니다 [SWS_Dem_00766].
이 함수는 헤더 Dem_Dcm.h을 통해 선언됩니다. 이 함수는 OBD 관련 ECU 전용이며, 구성 옵션 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을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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(서비스 ID 0xa4)은 헤더 파일 Dem_Dcm.h를 통해 선언됩니다 [SWS_Dem_00767]. 이 함수는 요청 시 Diagnostic Communication Manager(DCM)가 지정된 기능적 OBDMID에 할당된 테스트 식별자(TID)의 개수를 조회하는 데 사용됩니다 [SWS_Dem_00761].
호출 시 DCM은 해당 OBDMID의 식별자를 입력 매개변수 Obdmid으로 전달하고 포인터 numberOfTIDs을 통해 할당된 TID의 개수를 반환받습니다 [SWS_Dem_00767]. 이 출력값은 DCM이 0부터 numberOfTIDs - 1까지의 카운트 루프를 위한 상한으로 사용되며, 이후 이 루프 내에서 Dem_DcmGetDTRData를 통해 개별 DTR 결과값, 테스트 결과 및 한계값을 순차적으로 쿼리합니다 [SWS_Dem_00761] [SWS_Dem_00768].
이 함수는 TID 수를 성공적으로 확인할 수 있었던 경우 반환값 E_OK을 반환하고, 조회가 실패한 경우 E_NOT_OK을 반환합니다 [SWS_Dem_00767]. 오류 발생 시의 특정 개발 오류(DET) 또는 상세한 오류 원인은 규격에 별도로 명시되어 있지 않습니다.
이 호출은 OBD 관련 전자 제어 장치 전용입니다. 이 인터페이스는 구성 매개변수 DemOBDSupport이 DEM_OBD_NO_OBD_SUPPORT로 설정되지 않은 경우에만 DEM에서 사용할 수 있습니다 [SWS_Dem_00767].
이 사용 지침은 AI에 의해 생성되었으며 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)가 TID 값, UaSID 및 하한값과 상한값을 포함한 현재 테스트 결과를 포함하는 DTR 데이터(Diagnostic Test Results)를 쿼리하는 데 사용됩니다[SWS_Dem_00768]. DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT이(가) 구성되어 있는 경우 OBD를 지원하는 ECU에서만 독점적으로 사용할 수 있습니다[SWS_Dem_00768].
사용법 및 상호작용
DCM은 특정 Obdmid 및 TIDindex에 대해 사용 가능한 DTR 데이터를 가져오기 위해 이 함수를 호출합니다[SWS_Dem_00762]. 쿼리는 일반적으로 0부터 numberOfTIDs - 1까지 인덱스 TIDindex을(를) 통해 반복적으로 수행되며, 전체 개수는 사전에 Dem_DcmGetNumTIDsOfOBDMID()을(를) 통해 확인됩니다[SWS_Dem_00768], [SWS_Dem_00762]. 출력 매개변수 TIDvalue, UaSID, Testvalue, Lowlimvalue 및 Upplimvalue을(를) 통해 테스터 응답을 위한 값이 제공됩니다[SWS_Dem_00768].
오류 처리 및 제약 조건
이 함수는 DTR 결과를 성공적으로 확인한 경우 E_OK을(를) 반환하고, 오류 발생 시 E_NOT_OK을(를) 반환합니다[SWS_Dem_00768]. 오류는 특히 참조된 진단 이벤트를 사용할 수 없을 때 발생합니다:
- 이벤트가 사용할 수 없음으로 설정된 경우 구성되지 않은 이벤트처럼 처리되며
Dem_DcmGetDTRData은(는) 실패합니다[SWS_Dem_01108]. DemDtrEventRef을(를) 통해 참조된 이벤트가DemEventAvailable == FALSE(으)로 구성된 DTR에 대해 이 함수가 호출되면, 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(서비스 ID 0x90, Dem_J1939Dcm.h에 선언됨)은 ClientId을 통해 주소 지정된 J1939 노드에 대한 J1939 DTC 선택용 필터 마스크 속성을 설정합니다 [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] 및Dem_J1939DcmReadDiagnosticReadiness1을 통한 준비 상태 메시지(DM05)를 위한 활성 또는 이전 활성 DTC 수 제공 [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]은 전달된 ClientId의 기본 이벤트 메모리에서 이전에 Dem_J1939DcmSetDTCFilter로 정의된 필터 기준과 일치하는 J1939 DTC의 개수를 비동기식으로 확인합니다([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]) 동시 호출을 피해야 합니다.
이 사용 지침은 AI에 의해 작성되었으며 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(서비스 ID 0x92)은(는) ClientId을(를) 통해 주소 지정된 J1939 이벤트 메모리에서 필터링된 다음 J1939-DTC를 판독합니다 [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 DTC)는 조회 함수에 표시되지 않으며, Dem_J1939DcmGetNextFilteredDTC에 의해 필터 기준이 충족되지 않은 것처럼 처리됩니다 [SWS_Dem_01101].
이 텍스트는 AI에 의해 자동 생성되었으며 공식 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은(는) 특정 노드의 DM31 응답에 대해 일치하는 첫 번째 진단 문제 코드(DTC)에 대한 필터링을 초기화합니다 [SWS_Dem_00974]. uint8 타입의 ClientId이(가) 유일한 입력 매개변수로 사용되어 관련 J1939 이벤트 메모리를 주소 지정합니다 [SWS_Dem_00974]. 이 함수는 입력 및 출력 매개변수를 갖지 않으며 반환값도 제공하지 않습니다(void) [SWS_Dem_00974]. 서비스 ID 0x93을(를) 가지며 헤더 파일 Dem_J1939Dcm.h을(를) 통해 선언되어 있습니다 [SWS_Dem_00974]. 해석: 이 함수는 주로 DM31 램프 상태 메시지를 전송하기 전에 필터링을 초기화하기 위해 J1939Dcm 모듈에 의해 호출될 것으로 추정됩니다. 질문 Q-064513be4f06584b (열림)
필터 로직 및 상호 작용
함수를 호출할 때마다 지정된 ClientId에 대해 J1939DTC가 할당된 첫 번째 이벤트로 내부 카운터가 재설정됩니다 [SWS_Dem_00880]. 진단 이벤트의 상태와 관련하여 사양에서는 억제된 DTC(suppressed DTC)가 DCM 조회 함수에 보이지 않아야 한다고 규정하고 있습니다 [SWS_Dem_01101]. 따라서 Dem_J1939DcmFirstDTCwithLampStatus은(는) 억제된 DTC를 필터 기준이 충족되지 않은 것처럼 처리합니다 [SWS_Dem_01101].
동시성 및 제약사항
동시성 동작과 관련하여 이 인터페이스는 서로 다른 ClientId 값의 호출에 대해서는 재진입 가능하지만, 동일한 ClientId 값에 대해서는 재진입할 수 없습니다 [SWS_Dem_00974]. 따라서 동일한 J1939 이벤트 메모리에 대해 동일한 클라이언트 ID를 통한 병렬 조회는 허용되지 않습니다.
이 텍스트는 AI 큐레이션 어시스턴트에 의해 자동으로 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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)의 일환으로 ClientId을 통해 어드레싱된 이벤트 메모리에서 관련 램프 상태 및 이벤트 카운터(OccurenceCounter)와 함께 필터링된 다음 J1939 DTC를 반복적으로 쿼리하는 데 사용됩니다([SWS_Dem_00975]). 이 반복 작업은 이벤트 메모리가 이전에 Dem_J1939DcmFirstDTCwithLampStatus에 의해 준비되었을 것을 전제로 합니다([SWS_Dem_00881]).
동작 과정 및 반환값
각 호출은 할당된 J1939 DTC가 있는 다음 이벤트를 찾기 위해 메모리를 검색합니다([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])은(는) 모든 활성 또는 이전에 활성화되었던 진단 오류 코드(DTC)를 이벤트 메모리에서 삭제하기 위해 헤더 Dem_J1939Dcm.h을(를) 통해 J1939Dcm 모듈에 제공됩니다([SWS_Dem_00878]). 호출은 비동기식으로 작동합니다. 입력 매개변수로 이 인터페이스는 삭제할 DTC를 지정하기 위한 필터 타입 DTCTypeFilter, 소스 메모리를 선택하기 위한 DTCOrigin, J1939 이벤트 메모리를 어드레싱하기 위한 ClientId을(를) 기대합니다.
오류 처리 및 반환값
실행 결과는 반환 타입 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]에 따르면 이 함수는 서로 다른 클라이언트 ID에 대해서는 재진입 가능하지만, 동일한 ClientId에 대해서는 재진입이 불가능합니다. 따라서 동일한 클라이언트를 통한 병렬 삭제 호출은 허용되지 않습니다.
상호 작용
[SWS_Dem_00879]에 따르면 삭제 시 영향을 받는 모든 이벤트의 상태가 재설정되고 관련 이벤트 메모리 항목이 제거됩니다. 또한 [SWS_Dem_00878]에 따라 삭제 프로세스는 [SWS_Dem_00003]에 따른 해당 SW-C 및 BSW 모듈의 재초기화를 트리거합니다.
이 텍스트는 AUTOSAR 명세 R20-11을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00977] 📄 PDF
Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);
The function sets the FreezeFrame filter for a specific node.
동기 함수 Dem_J1939DcmSetFreezeFrameFilter은 헤더 Dem_J1939Dcm.h을 통해 특정 노드에 대한 프리즈 프레임 필터를 설정하는 데 사용됩니다 [SWS_Dem_00977]. 이 함수는 Dem_J1939DcmGetNextFreezeFrame을 사용한 후속 조회를 위해 필터 마스크 속성을 구성하며, 이때 내부 카운터를 첫 번째 프리즈 프레임으로 리셋합니다 [SWS_Dem_00899].
매개변수 및 반환값
FreezeFrameKind: 필터 유형을 결정합니다 [SWS_Dem_00977]. 사용 가능한 유형은DEM_J1939DCM_FREEZEFRAME(DemJ1939FreezeFrameClassRef의 데이터 필터링),DEM_J1939DCM_EXPANDED_FREEZEFRAME(DemJ1939ExpandedFreezeFrameClassRef의 데이터 필터링) 및DEM_J1939DCM_SPNS_IN_EXPANDED_FREEZEFRAME([SWS_Dem_00977], [SWS_Dem_00899])입니다.ClientId: J1939 이벤트 메모리를 어드레싱하기 위한 식별자를 전달합니다 [SWS_Dem_00977].- 반환값: 성공적으로 실행된 경우
E_OK을 반환하거나, 필터를 설정할 수 없는 경우E_NOT_OK을 반환합니다 [SWS_Dem_00977].
동시성 및 유효성
동시성과 관련하여 이 함수는 서로 다른 ClientId 값에 대해서는 재진입 가능하지만, 동일한 ClientId 값에 대해서는 재진입 불가능합니다 [SWS_Dem_00977]. 설정된 필터 마스크 속성은 호출 후 Dem_J1939DcmSetFreezeFrameFilter이 다시 호출되거나 DEM 모듈이 재초기화될 때까지 유효하게 유지됩니다 [SWS_Dem_00899].
이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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]. 이 반복은 이전에 Dem_J1939DcmSetFreezeFrameFilter을(를) 통해 설정된 필터 기준 FreezeFrameKind 및 ClientId을(를) 기반으로 합니다 [SWS_Dem_00900]. 페이로드는 버퍼 DestBuffer(으)로 복사되며(Expanded Freeze-Frame의 경우 SPN 정보가 없고 사용되지 않는 비트는 0으로 채워짐), BufSize은(는) 버퍼 크기를 전달하고 실제로 기록된 바이트 수를 보고합니다 [SWS_Dem_00978], [SWS_Dem_00903]. 또한 이 호출은 관련 J1939DTC 및 OccurenceCounter을(를) 제공하며, 후자는 126을 초과하는 값의 경우 0x7F(으)로 제한됩니다 [SWS_Dem_00903].
반환값 및 오류 처리
반환값은 반복 실행 절차를 제어합니다:
E_OK: 레코드가 성공적으로 검색되어 전송되었습니다 [SWS_Dem_00978], [SWS_Dem_00903]. 매개변수 설명에 언급된DEM_FILTERED_OK은(는) 아마도E_OK의 편집상 동의어로 이해될 수 있을 것으로 추정됩니다. 질문 Q-e941066640c694b9 (열림)DEM_NO_SUCH_ELEMENT: 필터 기준과 일치하는 레코드가 더 이상 존재하지 않습니다 [SWS_Dem_00900].DEM_PENDING: 내부 검색이 중단되었으며, 후속 호출은 중단된 위치에서 검색을 재개합니다 [SWS_Dem_00902].DEM_BUFFER_TOO_SMALL또는DEM_FILTERED_BUFFER_TOO_SMALL: 버퍼가 충분하지 않으며, 데이터 전송 없이 작업이 중단됩니다 [SWS_Dem_00978], [SWS_Dem_00903].
지원되지 않는 필터 유형이 전달되면 함수는 DET 오류 DEM_E_WRONG_CONDITION을(를) 보고하며, 유효한 것은 오직 DEM_J1939DCM_FREEZEFRAME 및 DEM_J1939DCM_EXPANDED_FREEZEFRAME뿐입니다 [SWS_Dem_00901]. 반환값이 성공이 아닌 경우 출력 매개변수에는 유효한 데이터가 포함되지 않습니다 [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].
제약 사항 및 상호작용
억제된 DTC는 조회에서 무시되며 일치하지 않는 필터 기준처럼 처리됩니다 [SWS_Dem_01101].
이 사용 지침은 자동으로 생성되었으며 AUTOSAR CP R20-11 명세만을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF
Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);
Gets next SPN.
사용법 및 의미론
함수 Dem_J1939DcmGetNextSPNInFreezeFrame은(는) 확장 프리즈 프레임([SWS_Dem_00979])에서 다음 SPN(Suspect Parameter Number)을 단계적으로 읽어옵니다. 각 호출은 ClientId을(를) 통해 주소 지정된 이벤트 메모리([SWS_Dem_00904])에 대한 SPN 정의의 다음 요소로 반복 이동합니다. 성공적으로 발견되면 호출은 E_OK과(와) 함께 SPNSupported을(를) 통한 발견된 SPN 및 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]). 이 함수는 non-reentrant로 정의되어 있으므로([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 노드에 대한 비율 필터를 설정하고 [SWS_Dem_00980]에 따라 IUMPR 비율의 필터링을 초기화합니다. 이때 정의된 DemRatioId을(를) 갖는 첫 번째 유효한 SPN으로 내부 카운터를 재설정하여, Dem_J1939DcmGetNextFilteredRatio을(를) 통한 후속 단계별 조회를 준비합니다 [SWS_Dem_00912].
이 함수는 출력 매개변수를 통해 상위 레벨 카운터 값을 제공합니다:
IgnitionCycleCounter: SAE J1939-73(5.7.20.1절)에 따른 점화 사이클 카운터를 제공합니다 [SWS_Dem_00912].OBDMonitoringConditionsEncountered: SAE J1939-73(5.7.20.2절)에 따라 발생한 OBD 모니터링 조건에 대한 카운터를 제공하며, 이는 CARB에 의해 General Denominator로 정의됩니다 [SWS_Dem_00912].ClientId: J1939 이벤트 메모리의 주소 지정을 위해 호출 클라이언트를 식별합니다 [SWS_Dem_00980].
동시성과 관련하여 이 함수는 서로 다른 ClientId 값에 대해서는 reentrant이지만, 동일한 ClientId에 대해서는 non-reentrant입니다 [SWS_Dem_00980]. 해석: 이 호출은 IUMPR 진단 데이터를 조회하기 위해 일반적으로 J1939 Diagnostic Communication Manager(J1939Dcm)의 시퀀스에서 동기식으로 수행될 것으로 보입니다. 질문 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.
사용
동기식 및 non-reentrant 함수 Dem_J1939DcmGetNextFilteredRatio([SWS_Dem_00981])은(는) 다음 필터링된 IUMPR 비율(Ratio)을 반복적으로 읽어오는 데 사용됩니다. 매개변수 ClientId을(를) 통해 각 J1939 이벤트 메모리가 주소 지정됩니다. 호출에 성공하면 함수는 출력 매개변수 SPN, Numerator 및 Denominator을(를) 통해 Suspect Parameter Number와 해당 시스템 모니터의 분자 및 분모를 반환합니다([SWS_Dem_00981]).
순서 및 상호작용
올바른 반복을 위해서는 사전에 Dem_J1939DcmSetRatioFilter을(를) 통해 필터를 초기화해야 합니다([SWS_Dem_00912]). 이 호출은 정의된 DemRatioId을(를) 갖는 첫 번째 유효한 SPN으로 내부 카운터를 재설정하며, 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: 전달된 버퍼가 너무 작습니다.
동시성
이 함수는 non-reentrant로 선언되어 있으므로([SWS_Dem_00981]), 동일한 ClientId에 대해 동시에 호출해서는 안 됩니다.
이 텍스트는 AI에 의해 생성되었으며 가이드 역할을 합니다. 참조된 AUTOSAR 사양이 표준입니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00982] 📄 PDF
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);
Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.
동기 인터페이스 Dem_J1939DcmReadDiagnosticReadiness1(Classic 표준에서는 Dem_J1939DcmReadDiagnosticReadiness로 관리됨)은 Diagnostic Event Manager에 의해 계산된 Diagnostic Readiness 1(DM05) 값을 쿼리하는 데 사용됩니다 [SWS_Dem_00982]. 이 인터페이스는 헤더 파일 Dem_J1939Dcm.h을 통해 선언되며 서비스 ID 0x9b를 갖습니다 [SWS_Dem_00982].
사용법 및 매개변수
호출은 동기식으로 이루어지며 다음 함수 매개변수를 사용합니다 [SWS_Dem_00982]:
ClientId(IN,uint8): 어드레싱할 J1939 이벤트 메모리(J1939 event memory)를 식별합니다 [SWS_Dem_00982].DataValue(OUT,Dem_J1939DcmDiagnosticReadiness1Type에 대한 포인터): DEM이 계산된 Diagnostic Readiness 1(DM05) 내용을 기록하는 8바이트 버퍼를 가리킵니다 [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].
동시성 및 제약사항
동시 액세스와 관련하여 이 서비스는 서로 다른 ClientId에 대해서는 재진입 가능하도록 지정되어 있으나, 동일한 ClientId에 대해서는 명시적으로 재진입 불가능하도록 정의되어 있습니다 [SWS_Dem_00982].
이 사용 지침은 AUTOSAR R20-11 사양 데이터를 기반으로 자동 생성되었습니다.
함수 Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00983] 📄 PDF
Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);
Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.
동기 함수 Dem_J1939DcmReadDiagnosticReadiness2(서비스 ID 0x9c)은 DEM에 의해 계산된 Diagnostic Readiness 2(DM21) 값을 쿼리하는 데 사용됩니다 [SWS_Dem_00983]. 이 인터페이스는 헤더 파일 Dem_J1939Dcm.h을 통해 제공됩니다 [SWS_Dem_00983].
호출을 위해 두 개의 매개변수가 정의되어 있습니다 [SWS_Dem_00983]:
ClientId(입력): 각각의 J1939 이벤트 메모리를 어드레싱합니다 [SWS_Dem_00983].DataValue(출력): 계산된 DM21 데이터를 수신하기 위한Dem_J1939DcmDiagnosticReadiness2Type타입의 8바이트 버퍼를 가리키는 포인터입니다 [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 사양을 바탕으로 AI에 의해 생성되었습니다.
함수 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): 계산된 DM26 데이터를 수신하기 위한Dem_J1939DcmDiagnosticReadiness3Type타입의 8바이트 버퍼를 가리키는 포인터입니다 [SWS_Dem_00770].
반환값으로 함수는 작업이 성공한 경우 E_OK을 반환하거나, 실행 중 오류가 발생한 경우 E_NOT_OK을 반환합니다 [SWS_Dem_00770].
동시성과 관련하여 이 함수는 서로 다른 ClientId 값에 대해서는 재진입 가능하지만, 동일한 ClientId 값에 대해서는 재진입 불가능합니다 [SWS_Dem_00770]. 따라서 동일한 클라이언트에 대한 병렬 호출은 호출자에 의해 배제되거나 동기화되어야 합니다.
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
함수 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를 통해 제공되며, DemOBDSupport이 DEM_OBD_NO_OBD_SUPPORT로 구성되지 않은 경우에 한해 OBD를 지원하는 ECU에서만 사용할 수 있습니다 [SWS_Dem_00313], [SWS_Dem_00360].
인터페이스 옵션 “API”가 선택된 경우 Dem_RatioIdType 타입의 식별자 RatioID이 매개변수로 전달됩니다 [SWS_Dem_00313]. IUMPR 결과가 성공적으로 기록되면 함수는 E_OK 상태를 반환합니다 [SWS_Dem_00313].
동시성 및 오류 동작
동시성과 관련하여 이 서비스는 서로 다른 식별자 RatioID에 대해서는 재진입 가능하지만, 동일한 RatioID 값에 대해서는 재진입 불가능합니다 [SWS_Dem_00313]. 따라서 호출자는 동일한 식별자를 사용한 동시 호출을 피해야 합니다.
해당 이벤트가 사용 불가능으로 설정되면, DEM 모듈은 이를 시스템에 구성되지 않은 것처럼 처리합니다 [SWS_Dem_01108]. Dem_RepIUMPRFaultDetect 역시 이러한 비활성화의 직접적인 영향을 받습니다 [SWS_Dem_01108]. 해석: 이 상태에서 해당 호출은 영향을 받는 다른 상태 API들과 마찬가지로 E_NOT_OK을 반환할 것으로 추정됩니다. 질문 Q-6d1775c9bff08f42 (열림)
이 텍스트는 AUTOSAR Classic R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
함수 Dem_SetIUMPRDenCondition [SWS_Dem_00733] 📄 PDF
Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);
In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to forward the condition status to a Dem of a particular ECU. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_GetIUMPRDenCondition [SWS_Dem_00734] 📄 PDF
Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);
In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to retrieve the condition status from the Dem of the ECU where the conditions are computed. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_RepIUMPRDenRelease [SWS_Dem_00315] 📄 PDF
Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);
Service is used to release a denominator of a specific monitor. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
동기식 및 재진입 가능 함수 Dem_RepIUMPRDenRelease은 특정 온도 조건 도달 또는 최소 동작과 같은 물리적 이유로 특정 모니터의 디노미네이터를 릴리스하는 데 사용됩니다 [SWS_Dem_00315]. DEM은 각각의 RatioID에 속하는 디노미네이터를 목표에 맞게 제어할 수 있도록 IUMPR 관련 소프트웨어 컴포넌트(SW-C)에 이 인터페이스를 제공합니다 [SWS_Dem_00308].
함수의 제공 및 동작에는 고정된 구성 조건 및 런타임 조건이 적용됩니다:
- 가용성 및 구성: 이 API는
DemOBDSupport이DEM_OBD_NO_OBD_SUPPORT이 아닌 값으로 구성된 경우에 한해 OBD 관련 ECU에서만 사용할 수 있습니다 [SWS_Dem_00315]. 또한DemIUMPRDenGroup이DEM_IUMPR_DEN_PHYS_API로 구성된 경우 특수 조건에서 릴리스하기 위한 인터페이스가 제공됩니다 [SWS_Dem_00362]. - 매개변수 및 반환값: 입력 매개변수로 식별자
RatioID이 전달됩니다. 함수는 IUMPR 디노미네이터의 상태가 성공적으로 보고된 경우E_OK을 반환하고, 그렇지 않으면E_NOT_OK를 반환합니다 [SWS_Dem_00315]. - 비활성 이벤트 발생 시 오류 동작: 해당 이벤트가 사용 불가능으로 설정된 경우, 시스템에 구성되지 않은 것처럼 처리되며,
Dem_RepIUMPRDenRelease호출은 이에 직접적인 영향을 받아E_NOT_OK을 반환합니다 [SWS_Dem_01108].
재진입 가능한 구조 덕분에 이 함수는 필요 시 서로 다른 SW-C 컨텍스트에서 동시에 호출될 수 있습니다 [SWS_Dem_00315].
이 텍스트는 AI에 의해 작성되었으며 권위 있는 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])은 Diagnostic Event Manager(DEM)에서 동력 인출 장치(Power Take-Off, PTO)의 상태를 설정하는 역할을 합니다. 이 인터페이스는 헤더 Dem.h에 선언되어 있으며 서비스 ID 0x79([SWS_Dem_00627])을 갖습니다.
- 매개변수: 입력 매개변수
PtoStatus(유형boolean)은 동력 인출 장치의 상태를 전달하며, 여기서TRUE는 활성 상태를 나타내고FALSE은 비활성 상태를 나타냅니다([SWS_Dem_00627]). 입출력 매개변수나 출력 매개변수는 없습니다. - 반환값: 반환 유형은
Std_ReturnType입니다. 새로운 PTO 상태가 DEM에 적용된 경우 함수는E_OK을 반환하고, 그 외의 모든 경우에는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]).
이 텍스트는 AI에 의해 생성되었으며 AUTOSAR Classic R20-11의 DEM 모듈 규격을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 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(서비스 ID 0xb3)은(는) Diagnostic Event Manager(DEM)가 계산한 PID $01 값을 조회하는 데 사용됩니다 [SWS_Dem_01167]. 인터페이스는 헤더 Dem.h을(를) 통해 제공됩니다 [SWS_Dem_01167]. 출력 매개변수로 함수는 버퍼 포인터로 전달되는 PID01value을(를) 기대합니다 [SWS_Dem_01167]. 이 버퍼는 계산된 데이터를 수신하기 위해 반드시 호출 애플리케이션에 의해 고정 크기 4바이트로 할당 및 제공되어야 합니다 [SWS_Dem_01167].
오류 처리 및 반환값
반환 타입으로 인터페이스는 형식상 Std_ReturnType을(를) 제공하지만, 명세에 따르면 예외 없이 E_OK을(를) 반환합니다 [SWS_Dem_01167]. 오류 값 E_NOT_OK은(는) 결코 발생하지 않습니다 [SWS_Dem_01167]. 이 인터페이스에는 특정 오류 코드나 DET 또는 DEM에 대한 보고가 명시되어 있지 않습니다 [SWS_Dem_01167].
동시성 및 제약사항
이 함수는 non-reentrant(Non Reentrant)로 명시되어 있습니다 [SWS_Dem_01167]. 따라서 호출자는 동시 호출이 발생하지 않도록 해야 합니다. 또한 API는 기능적으로 제한되어 있으며 OBD 관련성이 있는 ECU에서만 필요합니다 [SWS_Dem_01167].
이 사용 지침은 AUTOSAR 사양 R20-11을 바탕으로 자동 생성되었습니다.
함수 Dem_GetDataOfPID21 [SWS_Dem_01093] 📄 PDF
Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);
Service to get the value of PID $21 from the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemGeneral OBD.DemOBDCentralizedPID21Handling)} == true) && ({ecuc(Dem/DemGeneral.Dem OBDSupport)} == DEM_OBD_MASTER_ECU)
함수 Dem_SetDataOfPID21 [SWS_Dem_00735] 📄 PDF
Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);
Service to set the value of PID $21 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_SetDataOfPID31 [SWS_Dem_00736] 📄 PDF
Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);
Service to set the value of PID $31 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_SetDataOfPID4D [SWS_Dem_00737] 📄 PDF
Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);
Service to set the value of PID $4D in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_SetDataOfPID4E [SWS_Dem_00738] 📄 PDF
Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);
Service to set the value of PID $4E in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_GetCycleQualified [SWS_Dem_00740] 📄 PDF
Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);
Returns the qualification state of the dependent operation cycle. API Availability: This API will be available only if any of the ({ecuc(Dem/DemGeneral/Dem OperationCycle.DemLeadingCycleRef)} != NULL)
함수 Dem_SetCycleQualified [SWS_Dem_91001] 📄 PDF
Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);
Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.
함수 Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF
Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);
Gets the DTC Severity availability mask.
함수 Dem_GetB1Counter [SWS_Dem_01169] 📄 PDF
Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);
Service to report the value of the B1 counter computed by the Dem. API is needed in WWH-OBD relevant ECUs only
함수 Dem_SetDTR [SWS_Dem_00765] 📄 PDF
Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);
Reports a DTR result with lower and upper limit. The internal eventstatus serves as master whether the DTR values are forwarded or ignored, also taking the DTRUpdateKind into account. The EventId that is related to the DTR is assigned per configuration (and derived from ServiceNeeds). Processing takes enable/storage conditions into account. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)
함수 Dem_CallbackEventSyncStorageProcessed [SWS_Dem_91042] 📄 PDF
Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);
Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of Dem_SetEventFailedWithSyncFreezeFrame with the same event ID can be processed by the Dem. Tags: atp.Status=draft
콜백 함수 Dem_CallbackEventSyncStorageProcessed은 Dem_SetEventFailedWithSyncFreezeFrame의 내부 처리가 완료되는 즉시 Diagnostic Event Manager(DEM)에 의해 동기식으로 호출됩니다([SWS_Dem_91042]). 이 함수는 동일한 이벤트 ID에 대해 DEM이 Dem_SetEventFailedWithSyncFreezeFrame의 추가 호출을 처리할 수 있음을 호출 컴포넌트에 알립니다([SWS_Dem_91042]).
사용 및 통합에 대해 다음과 같은 인터페이스 및 실행 속성이 적용됩니다:
- 매개변수 및 반환값: 이 인터페이스에는 입력, 출력 또는 입출력 매개변수가 없습니다([SWS_Dem_91042]). 반환 타입은
Std_ReturnType이며, RTE 호환성을 위해 반환값E_OK만 허용되고 반환됩니다([SWS_Dem_91042]). - 동시성: 이 함수는 재진입 가능한 것으로 지정되어 있습니다([SWS_Dem_91042]).
- 오류 처리: 개발 오류 추적(DET)에 대한 특정 오류 코드나 메시지는 정의되어 있지 않습니다([SWS_Dem_91042]).
상호 작용 및 구성과 관련하여 고정된 필수 조건이 있습니다: Dem_CallbackEventSyncStorageProcessed은 매개변수 DemEventReportingType이 IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING로 설정된 진단 이벤트에 대해서만 구성할 수 있습니다([SWS_Dem_01356]). 또한 이 요소는 릴리스 R20-11에서 draft 상태로 주석 처리되어 있습니다([SWS_Dem_91042], [SWS_Dem_01356]).
이 사용 지침은 명세 요구사항을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
함수 Dem_MainFunction [SWS_Dem_00266] 📄 PDF
void Dem_MainFunction (void);
Processes all not event based Dem internal functions.
기본 함수 Dem_MainFunction은 서비스 ID 0x55를 갖는 시그니처 void Dem_MainFunction(void)을 가지며, 헤더 파일 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_Init이 다시 호출될 때까지 오류 보고 DEM_E_UNINIT에서 면제됩니다([SWS_Dem_00368]).
오류 메모리와의 상호작용에서 이 함수는 진단 데이터의 수집 및 버퍼링을 결정적으로 제어합니다:
DemEnvironmentDataCapture이DEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING로 구성된 경우(DemPrimaryMemory또는DemUserDefinedMemory기준), 이벤트별 Freeze Frame 데이터([SWS_Dem_00461]) 및 Extended Data 레코드([SWS_Dem_01081])는 늦어도Dem_MainFunction의 다음 주기에서 수집되어야 합니다.DemEnvironmentDataCapture이DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING로 설정된 경우, DEM 모듈은Dem_MainFunction의 다음 호출 시까지 환경 데이터를 대기열에 추가합니다([SWS_Dem_01083]). 모듈은 이때 최소한DemMaxNumberEventEntryEventBuffer에 따른 구성된 수량을 버퍼링하며, 대기열이 가득 차면Dem_MainFunction내의 이벤트 처리 시 데이터가 수집됩니다([SWS_Dem_01083]).
이 사용 지침은 AUTOSAR Classic Release R20-11 명세를 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 Dem_ComponentIdType [SWS_Dem_01114] 📄 PDF
Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.
타입 Dem_ConfigType [SWS_Dem_00924] 📄 PDF
This type of the external data structure shall contain the post build initialization data for the Dem.
타입 Dem_DTCKindType [SWS_Dem_00932] 📄 PDF
This type is used to filter DTCs for their kind.
타입 Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF
This type is used to request a DTC with specific attributes.
사용 및 값 범위
데이터 유형 Dem_DTCRequestType은 uint8에서 파생되며 헤더 Dem.h를 통해 사용할 수 있습니다 [SWS_Dem_00935]. 이는 특정 시간 속성을 기반으로 Diagnostic Trouble Code(DTC)를 요청하는 데 사용됩니다 [SWS_Dem_00935].
허용되는 값 범위에는 다음 열거형 값이 포함됩니다 [SWS_Dem_00935]:
DEM_FIRST_FAILED_DTC(0x01): 시간상 가장 먼저 실패한 DTC를 요청합니다.DEM_MOST_RECENT_FAILED_DTC(0x02): 가장 최근에 실패한 DTC를 요청합니다.DEM_FIRST_DET_CONFIRMED_DTC(0x03): 가장 먼저 확정된 것으로 확인된 DTC를 요청합니다.DEM_MOST_REC_DET_CONFIRMED_DTC(0x04): 가장 최근에 확정된 것으로 확인된 DTC를 요청합니다.
상호 작용, 동시성 및 오류 처리
이 유형은 동기 함수 Dem_GetDTCByOccurrenceTime의 입력 매개변수 DTCRequest으로 전달됩니다 [SWS_Dem_00218]. 이 매개변수를 통해 DTC를 어떤 기준으로 조회할지 결정됩니다 [SWS_Dem_00218]. 결과는 출력 매개변수 DTC를 통해 UDS 형식으로 반환됩니다 [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 사양을 바탕으로 AI에 의해 생성되었습니다.
타입 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]. 필터링 작업 시 진단 문제 코드(DTC)를 어떤 J1939 상태에 따라 구별하고 선택할지 지정하는 데 사용됩니다 [SWS_Dem_00945].
다음과 같은 상태 필터 값이 지정되어 있습니다:
DEM_J1939DTC_ACTIVE(0): 활성 오류 코드로 필터링합니다 [SWS_Dem_00945].DEM_J1939DTC_PREVIOUSLY_ACTIVE(1): 이전에 활성이었던 오류 코드로 필터링합니다 [SWS_Dem_00945].DEM_J1939DTC_PENDING(2): 대기 중인(pending) 오류 코드로 필터링합니다 [SWS_Dem_00945].DEM_J1939DTC_PERMANENT(3): 영구(permanent) 오류 코드로 필터링합니다 [SWS_Dem_00945].DEM_J1939DTC_CURRENTLY_ACTIVE(4): 현재 활성인 오류 코드로 필터링합니다 [SWS_Dem_00945].
상호작용 및 호출 컨텍스트
필터 타입은 인터페이스 Dem_J1939DcmSetDTCFilter에서 전달 매개변수 DTCStatusFilter(으)로 사용됩니다 [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].
이 텍스트는 사양 문서를 기반으로 AI에 의해 작성되었습니다.
구현자 가이드 준비 중 (복잡도 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에 선언되어 있으며, SAE J1939-73에 따른 J1939 램프 상태를 캡처하는 데 사용됩니다. 이 데이터 구조는 두 가지 상태 정보를 uint8 요소로 묶습니다. 즉, 현재 램프 상태를 위한 LampStatus과(와) 관련 점멸 동작을 위한 FlashLampStatus입니다.
Diagnostic Event Manager의 J1939 DTC 필터링에서 이 타입은 두 개의 동기 인터페이스에서 포인터 출력 매개변수로 기능합니다:
Dem_J1939DcmSetDTCFilter([SWS_Dem_00970])을 통해 특정 J1939 이벤트 메모리(ClientId을(를) 통해 주소 지정됨)에 대한 DTC 필터를 초기화할 때 초기 램프 상태가 조회됩니다.Dem_J1939DcmGetNextDTCwithLampStatus([SWS_Dem_00975])을 통해 일치하는 각 오류 메모리 항목에 대해 구조체가 관련 램프 상태로 반복 채워집니다.
오류 처리 시 [SWS_Dem_00975]에 따라 Dem_J1939DcmGetNextDTCwithLampStatus은(는) 함수의 반환값이 DEM_FILTERED_OK인 경우에만 유효한 값을 출력 매개변수에 기록한다는 점에 반드시 유의해야 합니다. 호출이 다른 반환값을 반환하는 경우 구조체에는 유효한 데이터가 포함되지 않습니다.
동시성 및 호출 조건과 관련하여 구조체 자체에는 내부 보호 기능이 없습니다. 재진입성은 해당 호출 컨텍스트에 따라 달라집니다. Dem_J1939DcmSetDTCFilter은(는) 서로 다른 클라이언트 ID에 대해 재진입 가능하지만, 동일한 ClientId([SWS_Dem_00970])에 대해서는 재진입할 수 없습니다. Dem_J1939DcmGetNextDTCwithLampStatus을(를) 통한 반복 조회는 완전히 재진입할 수 없도록 지정되어 있습니다([SWS_Dem_00975]).
이 텍스트는 AI에 의해 생성되었으며 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)을 위한 8바이트 버퍼를 구성합니다 [SWS_Dem_00949], [SWS_Dem_00982]:
ActiveTroubleCodes: 활성 DTC 수 [SWS_Dem_00949].PreviouslyActiveDiagnosticTroubleCodes: 이전에 활성이었던 DTC 수 [SWS_Dem_00949].OBDCompliance: OBD 적합성 [SWS_Dem_00949].ContinuouslyMonitoredSystemsSupport_Status: 연속 모니터링 시스템의 지원 여부 및 상태 [SWS_Dem_00949].NonContinuouslyMonitoredSystemsSupport5및NonContinuouslyMonitoredSystemsSupport6: 비연속 모니터링 시스템의 시스템 지원 여부(바이트 5 및 6) [SWS_Dem_00949].NonContinuouslyMonitoredSystemsStatus7및NonContinuouslyMonitoredSystemsStatus8: 비연속 모니터링 시스템의 상태(바이트 7 및 8) [SWS_Dem_00949].
주요 상호 작용은 동기 API Dem_J1939DcmReadDiagnosticReadiness1(Dem_J1939Dcm.h을(를) 통해 사용 가능)과 이루어집니다 [SWS_Dem_00982]. 호출자는 J1939 이벤트 메모리를 위한 해당 ClientId과(와) 함께 출력 매개변수 DataValue을(를) 통해 Dem_J1939DcmDiagnosticReadiness1Type 인스턴스에 대한 포인터를 전달합니다 [SWS_Dem_00982].
동시성 및 오류 처리와 관련하여 읽기 액세스 시 다음이 적용됩니다. 조회 함수는 DEM이 DM05 값을 성공적으로 계산하여 제공할 때 E_OK을(를) 반환하고, 오류 발생 시 E_NOT_OK을(를) 반환합니다 [SWS_Dem_00982]. 액세스는 서로 다른 ClientId 값에 대해 재진입 가능하지만, 동일한 ClientId에 대해서는 재진입할 수 없습니다 [SWS_Dem_00982]. 따라서 동일한 클라이언트의 컨텍스트에서 이 타입의 인스턴스를 동시 호출로부터 보호해야 할 것으로 추정됩니다. 질문 Q-7613ded1aa18fd2b (열림)
이 텍스트는 AI에 의해 작성되었습니다. 근거 자료는 오직 릴리스 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은(는) SAE J1939-73에 따른 진단 메시지 DM21(Diagnostic Readiness 2)의 데이터 요소를 나타내며 헤더 파일 Dem.h을(를) 통해 선언됩니다 [SWS_Dem_00950]. 이 구조체는 4개의 16비트 카운터(uint16)를 8바이트 버퍼에 결합합니다 [SWS_Dem_00950], [SWS_Dem_00983]:
DistanceTraveledWhileMILisActivated: 오작동 표시등(MIL)이 활성화된 상태에서의 누적 주행 거리(킬로미터 단위) [SWS_Dem_00950].DistanceSinceDTCsCleared: 배출 관련 진단 문제 코드(DTC)가 재설정된 이후의 누적 주행 거리 [SWS_Dem_00950].MinutesRunbyEngineWhileMILisActivated: MIL이 활성화된 상태에서의 누적 엔진 작동 시간(분 단위) [SWS_Dem_00950].TimeSinceDiagnosticTroubleCodesCleared: 배출 관련 DTC가 삭제된 이후의 누적 엔진 작동 시간 [SWS_Dem_00950].
이 타입은 Dem_J1939Dcm.h에 정의된 동기 서비스 Dem_J1939DcmReadDiagnosticReadiness2의 출력 버퍼 DataValue(으)로 사용됩니다 [SWS_Dem_00983]. 호출 시 J1939-DCM은 DEM 내의 특정 이벤트 메모리를 주소 지정하기 위해 ClientId을(를) 전달합니다 [SWS_Dem_00983]. 함수는 현재 카운터 값을 확인하고 반환값 E_OK(으)로 성공적인 제공을 확인하거나 E_NOT_OK(으)로 오류를 알립니다 [SWS_Dem_00983].
동시성과 관련하여 판독 서비스는 서로 다른 ClientId 값에 대해 재진입 가능하지만, 동일한 ClientId 값에 대해서는 재진입할 수 없습니다 [SWS_Dem_00983].
이 사용 지침은 AI에 의해 자동 생성되었습니다. 모든 설명은 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은 J1939 이벤트 메모리의 전달된 ClientId에 대한 DM26 값을 확인하고, 성공적으로 실행되면 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].
이 사용 지침은 Diagnostic Event Manager에 대한 AUTOSAR 사양의 규정을 기반으로 합니다.
타입 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]. 이 호출은 동기식으로 이루어지며 해당 이벤트의 자격 부여(qualification)에 직접적인 영향을 주지 않고 내부 디바운스 상태를 제어합니다 [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-C) 및 BSW 모듈이 진단 모니터의 테스트 결과를 DEM에 보고하는 데 사용됩니다([SWS_Dem_00926], [SWS_Dem_00183]).
이 타입은 다음과 같은 모니터 결과 값을 정의합니다([SWS_Dem_00926]):
DEM_EVENT_STATUS_PASSED(0x00) 및DEM_EVENT_STATUS_FAILED(0x01): 검증된(qualified) 테스트 결과(합격 또는 실패) 전송.DEM_EVENT_STATUS_PREPASSED(0x02) 및DEM_EVENT_STATUS_PREFAILED(0x03): 임시의 검증되지 않은 모니터 테스트 결과(디바운싱은 DEM 내부에서 수행됨).DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED(0x04): FDC 임계값 도달 시 프리즈 프레임 및 ExtendedDataRecord 저장을 트리거합니다(ON_FDC_THRESHOLD).- 0x05부터 0xFF까지의 값 범위는 예약되어 있습니다.
이 타입은 BSW API Dem_SetEventStatus()([SWS_Dem_00183]) 및 Dem_SetEventStatusWithMonitorData()([SWS_Dem_91037])의 입력 매개변수 EventStatus(으)로 사용되며, 인터페이스 DiagnosticMonitor([SWS_Dem_00598]) 및 DiagnosticMonitor_MonitorData([SWS_Dem_91038])을(를) 통해서도 사용됩니다. 호출은 동기식 또는 비동기식으로 수행됩니다([SWS_Dem_00183], [SWS_Dem_91037]).
함수들은 Std_ReturnType을(를) 반환하며(성공 시 E_OK, 오류 또는 거부 시 E_NOT_OK), 호출하는 BSW 모듈은 Dem_SetEventStatus()의 반환값을 무시할 수 있습니다([SWS_Dem_00183]). 동시성과 관련하여 호출은 서로 다른 EventId에 대해서는 재진입 가능하지만, 동일한 EventId에 대해서는 재진입이 불가능합니다([SWS_Dem_00183], [SWS_Dem_91037]). 또한 대상 API의 가용성은 매개변수 DemEventReportingType의 구성에 따라 달라집니다([SWS_Dem_00183], [SWS_Dem_91037]).
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 구속력을 갖는 것은 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)이 다시 활성화되었습니다.
호출 컨텍스트 및 인터페이스
이 값은 Dem_Externals.h에 선언된 이벤트별 C 콜백 <Module>_DemInitMonitorFor<EventName>()을 통해 입력 매개변수 InitMonitorReason으로 동기식 및 재진입 가능하게 전달됩니다 [SWS_Dem_00256]. 소프트웨어 컴포넌트에 대한 포트 인터페이스가 존재하는 경우, 서비스 인터페이스 CallbackInitMonitorForEvent의 오퍼레이션 InitMonitorForEvent로 전달됩니다 [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을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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을 기반으로 하며 OBD 관련 전자 제어 장치 간의 배포를 위한 추가 IUMPR 분모 조건의 가능한 상태를 정의합니다 [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을 통해 상태를 전자제어장치(ECU)의 DEM으로 동기식 또는 비동기식으로 전달합니다 [SWS_Dem_00733].Dem_GetIUMPRDenCondition: 조건이 계산되는 전자제어장치(ECU)로부터 포인터 출력 매개변수ConditionStatus을 통해 상태를 동기식으로 조회합니다 [SWS_Dem_00734].
오류 처리 및 동시성
두 함수 모두 재진입 가능(reentrant)하도록 명시되어 있습니다 [SWS_Dem_00733] [SWS_Dem_00734]. 성공적으로 실행되면 API는 E_OK을(를) 반환합니다. 설정 또는 조회가 실패하거나 조건을 수용할 수 없는 경우 E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734]을(를) 반환합니다.
이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 AI에 의해 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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] 및 서비스 포트 IndicatorStatus의 오퍼레이션 GetIndicatorStatus에서 출력 매개변수로 사용됩니다 [SWS_Dem_00606]. 구성된 각 표시기에 대해 DEM 서비스 컴포넌트는 자체 포트를 제공하며, 이때 각 IndicatorId는 포트 정의 인수로 작동합니다 [SWS_Dem_00606]. 상태를 조회하는 소프트웨어 컴포넌트는 일반적으로 확인된 상태를 시각적 또는 청각적 표시 기기의 구동에 사용할 것으로 추정됩니다. 질문 Q-6bfabb33805bd0e8 (열림)
호출자는 Dem_GetIndicatorStatus()이 재진입 불가능(Non Reentrant)으로 지정되어 있음에 유의해야 합니다 [SWS_Dem_00205]. 또한 구성의 DemIndicator 아래에 표시기가 하나 이상 등록되어 있는 경우에만 조회 API를 사용할 수 있습니다 [SWS_Dem_00205]. 오퍼레이션은 성공적으로 평가된 경우 E_OK, 오류 발생 시 E_NOT_OK과 함께 반환값 Std_ReturnType를 통해 실행 상태를 보고합니다 [SWS_Dem_00205][SWS_Dem_00606].
이 텍스트는 AI에 의해 생성되었으며 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#7fd3ee90- Content hash
7fd3ee90- 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 · 독일어 원문