DEENESPTFRRUARHIKOZHNL

Diagnostic Event Manager (DEM)

ModulDEM (Diagnostic Event Manager)
BSW-Modul-ID54
Standard-Header#include "Dem.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticEventManager.pdf
ClusterDiagnostic Services

모듈 가이드AI 생성

모니터의 진단 결과를 수집하고 검증(한정)하며 테스터를 위한 환경 데이터와 함께 이벤트 메모리를 관리함.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 28cc2ed3ddd0 출처 열린 질문 (1)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

모니터의 진단 결과를 수집하고 검증(한정)하며 테스터를 위한 환경 데이터와 함께 이벤트 메모리를 관리함.

ECU당 정확히 하나의 Diagnostic Event Manager [SWS_Dem_00126]가 존재함. 이는 진단 모니터로부터 테스트 결과를 수신하여 디바운싱하고, 이를 바탕으로 UDS 상태 비트 및 Freeze Frame과 Extended Data가 포함된 이벤트 메모리 엔트리를 관리함. DCM 및 J1939Dcm은 클라이언트 관련 API를 통해 이 데이터를 필터링하고 읽고 삭제함. 이때 대체로 “선택 후 요청” 패턴을 따름 [SWS_Dem_01253]. 가장 중요한 제약 조건은 수명 주기임: Dem_Init 이전에는 메시지가 버퍼링만 되며, 모듈이 완전히 작동하는 것은 그 이후임.

ECU당 정확히 하나의 Diagnostic Event Manager [SWS_Dem_00126]가 존재함. 이는 SW-C 및 BSW 모듈 내 진단 모니터의 결과를 수신하여 검증함. 이벤트 메모리 내용은 DCM 및 J1939Dcm에 제공함. 이는 EcuM, Dem_MainFunction의 스케줄링, NvM, FiM 및 DET SWS DEM 247쪽 사이에 임베드되어 있음.

kontext SW-C-Monitore SW-C-Monitore Dem Dem SW-C-Monitore->Dem Dem_SetEventStatus (RTE) Dem->SW-C-Monitore InitMonitorForEvent, Status-Callbacks NvM NvM Dem->NvM NvM_ReadBlock / NvM_WriteBlock FiM FiM Dem->FiM FiM_DemInit / FiM_DemTriggerOnMonitorStatus Det Det Dem->Det Det_ReportError BSW-Monitore BSW-Monitore BSW-Monitore->Dem Dem_SetEventStatus EcuM EcuM EcuM->Dem Dem_PreInit / Dem_Init / Dem_Shutdown SchM SchM SchM->Dem Dem_MainFunction Dcm Dcm Dcm->Dem 선택, 필터링, 읽기, 삭제 (ClientId) J1939Dcm J1939Dcm J1939Dcm->Dem Dem_J1939Dcm-APIs FiM->Dem Dem_GetMonitorStatus

컨텍스트 다이어그램: 모니터가 결과를 제공하고 진단 클라이언트와 FiM이 DEM을 사용함. 출처: SWS DEM 247쪽

수명 주기는 사전 초기화 모드와 완전한 기능 모드를 분리함 [SWS_Dem_00169]. Dem_PreInit 이후 보고된 결과는 버퍼링되며 모니터 상태 콜백을 아직 트리거하지 않음 ([SWS_Dem_00167], [SWS_Dem_01289]). Dem_Init을 통해 DEM이 완전히 작동 가능해짐 [SWS_Dem_00340]. Dem_Shutdown은 보류 중인 작업을 완료하고 변경된 데이터를 NvM에 전달함 ([SWS_Dem_00102], [SWS_Dem_00341]).

모니터는 Dem_SetEventStatus을 통해 검증된 결과 또는 잠정적 결과를 보고함 [SWS_Dem_00926]. DEM은 이벤트별로 카운터 기반, 시간 기반 또는 모니터 내부 방식으로 디바운싱함 [SWS_Dem_00413]. 이를 통해 -128부터 +127까지의 Fault Detection Counter를 생성함 [SWS_Dem_00415]. 디바운싱과 모니터 상태는 동기식으로 실행되고, UDS 상태 바이트는 비동기식으로 실행됨 ([SWS_Dem_01279], [SWS_Dem_01285]). Enable Conditions 및 비활성화된 DTC-Setting은 처리를 차단함 SWS DEM 83쪽.

모니터 보고서 처리MonitorDemFiMSchMDem_SetEventStatus(EventId, EventStatus)altEnable Conditions 충족 및 DTC 설정 활성화됨카운터 기반 디바운싱 (동기식)Monitorstatus aktualisieren (synchron)FiM_DemTriggerOnMonitorStatus(EventId)(falls konfiguriert)기타Verarbeitung blockiertStd_ReturnTypeUse Case: Asynchrone FolgeverarbeitungDem_MainFunction()UDS-Statusbyte berechnen,이벤트 메모리 및 데이터 업데이트EventUdsStatusChanged-Callback(falls konfiguriert)

시퀀스 다이어그램: 리포트가 동기식으로 디바운싱되고, UDS 처리는 MainFunction에서 이어짐. 출처: SWS DEM 그림 9.12 372쪽, [SWS_Dem_01285]

카운터, Freeze Frame, Extended Data를 포함하는 엔트리는 설정된 트리거에 따라 DEM이 생성함 ([SWS_Dem_00783], [SWS_Dem_00039], [SWS_Dem_00809]). 메모리가 가득 찬 경우 교체(축출) 전략이 결정함 ([SWS_Dem_00400], [SWS_Dem_00402]). DCM은 “선택 후 요청” 패턴에 따라 접근함. Dem_SelectDTC은 읽기, 상태 조회 및 삭제를 위한 대상을 결정함 [SWS_Dem_01253]. Dem_SetDTCFilter은 DTC 목록을 위한 기준을 정의함 [SWS_Dem_00057].

오류를 DEM은 DET 개발 오류(예: DEM_E_UNINIT 또는 DEM_E_WRONG_CONDITION)로 보고함 [SWS_Dem_00173]. 런타임에는 DEM_WRONG_DTC 또는 DEM_BUSY와 같은 반환값을 제공함 ([SWS_Dem_01261], [SWS_Dem_01306]). NvM이 읽을 수 없는 데이터는 초기화함 [SWS_Dem_00578].

역할 및 시스템 경계: ECU의 중앙 이벤트 메모리 서비스

Diagnostic Event Manager는 진단 모니터의 결과를 수신하여 이벤트로 검증함. 이를 환경 데이터와 함께 이벤트 메모리에 저장함. ECU당 정확히 하나의 DEM 모듈이 존재함 [SWS_Dem_00126]. 각 진단 이벤트는 고유한 EventId 및 EventName로 표현됨 ([SWS_Dem_00153], [SWS_Dem_00154]). Dem_EventIdType은 uint16을 기반으로 하며 값 0은 유효하지 않음 [SWS_Dem_00925] SWS DEM 339쪽.

주변 환경과의 인터페이스는 Figure 8.1에 표시됨 SWS DEM 247쪽:

  • EcuM이 Init 및 Shutdown을 호출함.
  • 스케줄링이 Dem_MainFunction을 호출함.
  • NvM이 데이터를 영속화함 [SWS_Dem_00164].
  • FiM이 상태 변경에 대해 통지를 받음 [SWS_Dem_00029].
  • DET이 개발 오류를 수신함.
SW-C 모니터는 DiagnosticMonitor과 같은 RTE 포트를 통해 보고함 [SWS_Dem_00598]. DCM 및 J1939Dcm은 클라이언트로서 ClientId을 통해 구성된 DemEventMemorySet에 접근함 ([SWS_Dem_01247], [SWS_Dem_01251]).
kontext SW-C-Monitore SW-C-Monitore Dem Dem SW-C-Monitore->Dem Dem_SetEventStatus (RTE) Dem->SW-C-Monitore InitMonitorForEvent, Status-Callbacks NvM NvM Dem->NvM NvM_ReadBlock / NvM_WriteBlock FiM FiM Dem->FiM FiM_DemInit / FiM_DemTriggerOnMonitorStatus Det Det Dem->Det Det_ReportError BSW-Monitore BSW-Monitore BSW-Monitore->Dem Dem_SetEventStatus EcuM EcuM EcuM->Dem Dem_PreInit / Dem_Init / Dem_Shutdown SchM SchM SchM->Dem Dem_MainFunction Dcm Dcm Dcm->Dem 선택, 필터링, 읽기, 삭제 (ClientId) J1939Dcm J1939Dcm J1939Dcm->Dem Dem_J1939Dcm-APIs FiM->Dem Dem_GetMonitorStatus

컨텍스트 다이어그램: DEM은 모니터의 데이터 싱크이자 진단 클라이언트 및 FiM을 위한 데이터 소스임. 출처: SWS DEM 247쪽, [SWS_Dem_00256]

수명 주기: 사전 초기화, 작동 및 Shutdown

DEM은 사전 초기화 모드와 완전 초기화 모드를 구분함 [SWS_Dem_00169]. Dem_PreInit은 내부 디바운싱 [SWS_Dem_01213]을 포함하여 이벤트 처리에 필요한 상태를 초기화함 [SWS_Dem_00180]. 이후 보고된 이벤트는 버퍼 [SWS_Dem_00167]에 들어가며 모니터 상태 콜백을 아직 트리거하지 않음 [SWS_Dem_01289] SWS DEM 그림 7.42 169쪽.

Dem_Init은 Dem_ConfigType에 대한 Post-Build 포인터를 전달받음 ([SWS_Dem_00181], [SWS_Dem_00924]). 이 함수는 모듈을 초기화하거나 재초기화함 SWS DEM 260쪽. 그 후 DEM은 완전히 작동 가능해짐 [SWS_Dem_00340]. 모니터 상태는 이전에 보고된 결과 또는 NvM 상태로부터 구성됨 [SWS_Dem_01326]. 그제야 FiM_DemInit이 뒤따름 [SWS_Dem_01325]. Dem_Init 이전에 시작된 사이클 재시작은 사후 처리됨 [SWS_Dem_01318].

운용 중에는 Dem_MainFunction이 이벤트 기반이 아닌 모든 기능을 처리함 [SWS_Dem_00125]. Dem_Shutdown은 보류 중인 작업을 완료함 [SWS_Dem_00102]. 변경된 비휘발성 데이터는 늦어도 이때 NvM으로 전달됨 [SWS_Dem_00341]. 해석: [SWS_Dem_00181]에 따르면 Dem_Init이 재초기화도 수행하므로, Dem_Shutdown 이후의 재시작은 새로운 Dem_Init 호출을 통해 이루어질 것으로 추정됨. 질문 (열림)

lebenszyklus start Start uninit 초기화되지 않음 start->uninit pre 사전 초기화됨 (메시지가 버퍼링됨) uninit->pre Dem_PreInit voll Voll initialisiert (Dem_MainFunction verarbeitet) pre->voll Dem_Init(ConfigPtr) voll->voll Dem_Init (Reinitialisierung) aus Heruntergefahren voll->aus Dem_Shutdown aus->voll Dem_Init (vermutlich Neustart)

상태 다이어그램: 사전 초기화부터 Shutdown까지의 DEM 모드. Shutdown 후의 재시작은 가정임. 출처: [SWS_Dem_00169], [SWS_Dem_00181], [SWS_Dem_00182]

Dem_PreInit과 Dem_Init 사이 버퍼링EcuMMonitor (SW-C/BSW)DemFiMSchMUse Case: VorinitialisierungDem_PreInit()내부 상태 및Entprellung initialisierenDem_SetEventStatus(EventId, EventStatus)Meldung puffern,모니터 상태 콜백 없음Use Case: InitialisierungDem_Init(ConfigPtr)보고된 메시지 또는NvM 상태로부터 모니터 상태 형성FiM_DemInit()복귀: Dem 완전 작동 가능Use Case: BetriebloopzyklischDem_MainFunction()비이벤트 구동 처리

시퀀스 다이어그램: Dem_PreInit과 Dem_Init 사이에서는 콜백 없이 메시지가 버퍼링됨. 출처: SWS DEM 그림 7.15 85쪽, [SWS_Dem_01189]

모니터 리포트에서 검증된 결과로

모니터는 새로운 결과가 나오는 즉시 Dem_SetEventStatus을 사용하여 테스트 결과를 보고함 ([SWS_Dem_00330], SWS DEM 81쪽). Dem_EventStatusType은 세 가지 유형의 메시지를 구분함 [SWS_Dem_00926]:

  • 검증된 결과 (DEM_EVENT_STATUS_PASSED/_FAILED),
  • 내부 디바운싱을 위한 사전 결과 (_PREPASSED/_PREFAILED),
  • DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED.

디바운싱은 이벤트별로 구성 가능함 [SWS_Dem_00413]:

DEM은 카운터 또는 타이머 값을 -128부터 +127까지의 Fault Detection Counter에 선형적으로 매핑함 ([SWS_Dem_00415], [SWS_Dem_00427]). 카운터 기반 디바운싱과 모니터 상태는 호출 컨텍스트에서 동기식으로 실행됨 ([SWS_Dem_01279], [SWS_Dem_01280]). 반면 UDS 상태 바이트는 DEM이 비동기식으로 계산함 [SWS_Dem_01285] SWS DEM 83쪽.
모니터 보고서 처리MonitorDemFiMSchMDem_SetEventStatus(EventId, EventStatus)altEnable Conditions 충족 및 DTC 설정 활성화됨카운터 기반 디바운싱 (동기식)Monitorstatus aktualisieren (synchron)FiM_DemTriggerOnMonitorStatus(EventId)(falls konfiguriert)기타Verarbeitung blockiertStd_ReturnTypeUse Case: Asynchrone FolgeverarbeitungDem_MainFunction()UDS-Statusbyte berechnen,이벤트 메모리 및 데이터 업데이트EventUdsStatusChanged-Callback(falls konfiguriert)

시퀀스 다이어그램: 리포트가 동기식으로 디바운싱되고, UDS 후속 처리는 비동기식으로 실행됨. 출처: SWS DEM 그림 9.12 372쪽, [SWS_Dem_01285]

UDS 상태 비트 0~7은 DEM이 자체 전이 규칙에 따라 설정함 ([SWS_Dem_00386], [SWS_Dem_00395]). Dem_ResetEventStatus은 Passed 결과를 보고하지 않고 비트 0을 비동기식으로 재설정하며 디바운싱을 초기화함 [SWS_Dem_00187] SWS DEM 79쪽. 현재 사이클에서 해당 이벤트가 이미 테스트된 경우 호출 시 E_NOT_OK을 반환함 [SWS_Dem_00638]. Dem_ResetEventDebounceStatus은 디바운싱을 고정(동결)하거나 재설정함 ([SWS_Dem_00684], [SWS_Dem_00685]).

testfailed start Start f TestFailed = FALSE start->f Initialzustand t TestFailed = TRUE f->t Dem_SetEventStatus(FAILED) 또는 적격하게 디바운싱됨 t->f Dem_SetEventStatus(PASSED) t->f Dem_ResetEventStatus t->f ClearDTC

상태 다이어그램: UDS 상태 비트 0 (TestFailed)의 전이. 출처: SWS DEM 그림 7.15 70쪽, [SWS_Dem_00386]

인에이블 조건, 작동 사이클 및 가용성

Enable Conditions 및 비활성화된 DTC-Setting은 상태 메시지의 처리를 차단함 SWS DEM 83쪽. 이에 관한 규칙은 [SWS_Dem_00449] 및 [SWS_Dem_00079]에 명시되어 있음. DemDebounceBehavior은 이때 디바운싱을 재설정할지 [SWS_Dem_00654] 또는 고정할지 [SWS_Dem_00655]를 정의함. 반면 Storage Conditions는 메모리에 저장하는 것만 방지함 ([SWS_Dem_00455], [SWS_Dem_00556]).

Dem_RestartOperationCycle은 비동기식으로 작동함. 영향을 받는 모니터는 InitMonitorForEvent을 통해 재초기화됨 [SWS_Dem_00679] SWS DEM 274쪽. 재시작은 버퍼링되지 않음 [SWS_Dem_01316]. InitMonitorForEvent의 추가 트리거는 다음과 같음:

동시에 트리거가 발생한 경우 콜백은 가장 우선순위가 높은 이유로 한 번만 호출됨 [SWS_Dem_01046] SWS DEM 47쪽.

Dem_SetEventAvailable으로 표시된 사용 불가능한 이벤트를 DEM은 구성되지 않은 것처럼 처리함 [SWS_Dem_01108] SWS DEM 66쪽. VARIANT-POST-BUILD에서는 이 API가 제공되지 않음 [SWS_Dem_01106]. 반면 억제된 DTC는 테스터에게만 보이지 않을 뿐 이벤트 처리는 계속 진행됨 [SWS_Dem_01102].

이벤트 메모리: 저장, 환경 데이터 및 교체(축출)

DEM은 기본 이벤트 메모리 [SWS_Dem_00010] 및 선택적으로 동일한 동작을 하는 사용자 정의 메모리를 관리함 [SWS_Dem_01063]. 하나의 엔트리는 카운터, Freeze Frame, Extended Data를 하나로 묶음 SWS DEM 그림 7.13 77쪽. DemEventMemoryEntryStorageTrigger은 엔트리가 언제 생성되는지 결정함:

Aging을 통해 이벤트 관련 데이터가 제거됨 [SWS_Dem_01075].

Freeze Frame은 이벤트 전용이며 구성된 DID로 구성됨 ([SWS_Dem_00039], [SWS_Dem_00040]). 휘발성 데이터의 경우 모니터가 Dem_PrestoreFreezeFrame을 사용하여 사전에 캡처함. DEM은 저장 시 이 데이터를 사용함 [SWS_Dem_00464] SWS DEM 그림 7.37 128쪽. Extended Data Record는 구성된 트리거에 따라 캡처됨 [SWS_Dem_00809]. 여기에는 Occurrence Counter와 같은 내부 값이 포함될 수 있음 [SWS_Dem_00471].

여유 엔트리가 없으면 DEM은 교체(축출) 여부를 확인함 [SWS_Dem_00400]. DEM_DISPLACEMENT_NONE은 이를 배제함 [SWS_Dem_00402]. 후보가 없으면 저장이 폐기됨 [SWS_Dem_00407]. 그렇지 않으면 해당 엔트리가 제거되고 상태 비트가 조정됨 ([SWS_Dem_00408], [SWS_Dem_00409]). 오버플로는 DEM이 메모리별로 표시함 [SWS_Dem_00397].

verdraengung s 새 메모리 항목 필요함 frei Freier Eintrag vorhanden? s->frei anlegen Eintrag anlegen frei->anlegen 예 strat DemEventDisplacementStrategy = DEM_DISPLACEMENT_NONE? frei->strat 아니요 such 최하위 우선순위 항목 검색 strat->such 아니요 verw Speicheranforderung verwerfen strat->verw 예 prio 보고된 이벤트의 우선순위가 충분한가 (Figure 7.28 참조)? such->prio passiv 검색 결과 중 비활성(패시브) 항목 우선 처리 prio->passiv 예 prio->verw nein / kein Kandidat verdr 가장 오래된 검색 항목 대체, 상태 비트 조정 passiv->verdr verdr->anlegen

액티비티 다이어그램: OBD 필터 단계를 제외한 단순화된 교체(축출) 기준 순서. 출처: SWS DEM 그림 7.28 98쪽, [SWS_Dem_00406]

DCM, J1939Dcm 및 OBD 서비스를 통한 접근

많은 API가 “선택 후 요청” 패턴을 따름. Dem_SelectDTC은 DTC, 포맷 및 Origin을 대상으로 지정함. 여기에 대략 Dem_ClearDTC, Dem_GetStatusOfDTC 및 Dem_SelectFreezeFrameData이 작용함 [SWS_Dem_01253] SWS DEM 215쪽. DTC 목록의 경우 Dem_SetDTCFilter이 기준을 설정함 [SWS_Dem_00057]. 그 후 Dem_GetNextFilteredDTC이 일치 항목을 반복 처리함 [SWS_Dem_00216]. 제공된 상태 바이트는 Availability-Mask로 마스킹됨 [SWS_Dem_00657].

Freeze Frame은 DCM이 DTC와 레코드를 선택한 후 Dem_GetNextFreezeFrameData을 사용하여 읽음 [SWS_Dem_01268] SWS DEM 그림 9.7 369쪽. 이때 DEM은 완성된 레코드 레이아웃을 제공함 SWS DEM 그림 7.48 195쪽. Extended Data도 유사한 방식으로 읽음 [SWS_Dem_01272].

삭제를 위해 DCM은 먼저 선택 항목을 확인한 다음 Dem_ClearDTC을 호출함 ([SWS_Dem_91020], [SWS_Dem_00665]). 삭제 전에 DEM은 DemClearEventAllowed을 조회함 [SWS_Dem_00515] SWS DEM 그림 9.3 367쪽. J1939 API는 DemGeneralJ1939이 구성된 경우 사용할 수 있음 [SWS_Dem_00845]. OBD 지원 시 DEM은 추가로 다음을 제공함:

PID $31/$4D/$4E는 마스터 ECU만 계산함 [SWS_Dem_00703] SWS DEM 170쪽.
DTC 삭제 (UDS 0x14)TesterDcmDemMonitor-SW-CClearDiagnosticInformation(DTC)Dem_SelectDTC(ClientId, DTC, DTCFormat, DTCOrigin)loopsolange DEM_PENDINGDem_GetDTCSelectionResultForClearDTC(ClientId)loopsolange DEM_PENDINGDem_ClearDTC(ClientId)<Module>_DemClearEventAllowed(Allowed)AllowedoptAllowed == TRUE상태, 이벤트 관련 데이터 및사전 저장된 프리즈 프레임 재설정InitMonitorForEvent(DEM_INIT_MONITOR_CLEAR)DEM_PENDING / Ergebnis긍정 또는 부정 응답

시퀀스 다이어그램: 선택, 승인 조회 및 모니터 재초기화를 통한 삭제. 출처: SWS DEM 그림 9.2 366쪽, [SWS_Dem_00680]

오류가 발생한 경우의 동작

DEM은 개발 오류를 DET에 보고함(예: DEM_E_UNINIT, DEM_E_PARAM_POINTER 또는 DEM_E_WRONG_CONDITION) [SWS_Dem_00173] SWS DEM 238쪽. 초기화 전 호출 시 DEM_E_UNINIT이 발생하며, Dem_SetEventStatus 및 Dem_ResetEventStatus 등은 예외임 [SWS_Dem_00124]. Shutdown 후에도 동일하게 적용됨 [SWS_Dem_00368].

런타임에 API는 다음과 같은 반환값을 제공함:

삭제 작업이 실패한 것으로 간주되는 조건은 [SWS_Dem_01202]에 정의되어 있음.

NvM이 읽을 수 없는 데이터는 DEM이 초기화함 [SWS_Dem_00578]. 쓰기 오류는 무시함 [SWS_Dem_00579]. 재프로그래밍 후 레이아웃이 더 이상 맞지 않는 Prestore 데이터는 건너뜀 [SWS_Dem_01323].

더 자세한 증거

페이로드에 포함된 요구사항(R20-11) 및 문서 인용부를 기반으로 AI가 생성한 가이드. 규범적 효력을 갖는 것은 오직 인용된 요구사항뿐이며, 일부 문서 인용부는 다른 릴리스에서 발췌됨.

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

Typen — Übersicht

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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 52979462b246 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 940f61d4751b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 비재진입 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d50e7ed9388c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 비재진입 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 746b093f9e55 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e3d7b3899eb8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기 함수 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_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_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_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_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_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).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1c0673b083cc 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b20c64ec7b3a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 43517846effb 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c489dfc2152d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

이 함수는 특정 진단 이벤트에 대한 동결 프레임 데이터를 동기식으로 수집하고 임시 저장하는 데 사용됩니다[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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c8301a45c8d2 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 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_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_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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 706d7cf70a2d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: eb7046584bdf 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7e5ab1b6f9c0 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

비동기 함수 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_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_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_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_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_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).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 793bc4c92bab 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 절차

비동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: de89b4e41f66 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2ece0d12a55d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5188ca62aa0a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

비동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4c222839a4a6 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4784195edff9 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기 함수 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 _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 51829835ffc5 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 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 _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: dde27ef1779b 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 매개변수 인터페이스

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6941d67caf4d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1c7eda1b0fc3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2dc814aaf11d 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aa9161844e39 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cfc8a8d1c498 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 18b86d10b784 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0df731691150 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 51321ea5857b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b21962c6ebc5 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f57c1c183634 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f96309635c05 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 비재진입 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5b769d67b0cc 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 49e6e35927e4 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 18535af5aa7f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fedc82312f61 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 함수 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 이벤트 메모리에 대한 동시 필터 호출은 피해야 합니다.

상호 작용

필터 설정은 후속 처리를 위한 기반을 형성합니다:

이 사용 지침은 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 79d994fe5d97 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 [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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c6cbd3422fd3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

비동기식이며 재진입이 불가능한 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 7183056cd60e 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 인터페이스 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 48ed4a1205b0 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 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).

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cb1db17652c2 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ee201d0b0970 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0611ff42285c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

비동기식이며 재진입할 수 없는 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 92b02fdbb0d3 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 618098c9083d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a599c5bc4d30 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 및 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 42bfb79acbf8 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 인터페이스 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: da1e3ecb89af 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: cb06cae402da 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8fa8b5c52739 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 22348b6c2b61 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능 함수 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)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 047a07d76a94 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 함수 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 24f93781d796 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 매개변수

동기 함수 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_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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d0c8e2a4847f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0be629ee3c44 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

기본 함수 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_DTCRequestType [SWS_Dem_00935] 📄 PDF

This type is used to request a DTC with specific attributes.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 760d1343beae 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

데이터 유형 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_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF

The type to distinguish which DTCs should be filtered.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 92ccd2ad8a5a 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

타입 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_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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 92989a7111ae 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구조체 타입 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a760cec9362d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구조체 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4e1cd28c8cba 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구조체 타입 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

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b4812c5890e8 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

구조체 타입 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_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().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2ba3237222eb 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 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().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6d8ec716ce5e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 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_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF

(Re-)Initialization reason returned by the callback _DemInitMonitorFor().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a883663c849a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

데이터 유형 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.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8df8011c88ff 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

유형 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_IndicatorStatusType [SWS_Dem_00930] 📄 PDF

Indicator mode used by Dem_GetIndicatorStatus().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 05853b91068c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 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_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.

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

주제 맵

초기화 및 상태

2

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

Returns the version information of this module. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemVersionInfoApi)} == true)

void Dem_GetVersionInfo (Std_VersionInfoType* versioninfo);
Dem_Init 함수

Initializes or reinitializes this module.

void Dem_Init (const Dem_ConfigType* ConfigPtr);

서비스 · Get…

Service to report the value of the B1 counter computed by the Dem. API is needed in WWH-OBD relevant ECUs only

Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);

Gets the failed status of a DemComponent.

Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);

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)

Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);

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)

Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);

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.

Std_ReturnType Dem_GetDebouncingOfEvent (Dem_EventIdType EventId, Dem_DebouncingStateType* DebouncingState);

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.

Std_ReturnType Dem_GetDTCByOccurrenceTime (uint8 ClientId, Dem_DTCRequestType DTCRequest, uint32* DTC);

Gets the DTC of an event.

Std_ReturnType Dem_GetDTCOfEvent (Dem_EventIdType EventId, Dem_DTCFormatType DTCFormat, uint32* DTCOfEvent);

Provides information if the last call to Dem_SelectDTC has selected a valid DTC or group of DTCs.

Std_ReturnType Dem_GetDTCSelectionResult (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.

Std_ReturnType Dem_GetDTCSelectionResultForClearDTC (uint8 ClientId);

Gets the DTC Severity availability mask.

Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);

Gets the DTC Status availability mask of the selected fault memory.

Std_ReturnType Dem_GetDTCStatusAvailabilityMask (uint8 ClientId, Dem_UdsStatusByteType* DTCStatusMask, Dem_DTCOriginType DTCOrigin);

Returns the suppression status of a specific DTC. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemSuppressionSupport)} == DEM_DTC_SUPPRESSION)

Std_ReturnType Dem_GetDTCSuppression (uint8 ClientId, boolean* SuppressionStatus);

Get the Event's availability.

Std_ReturnType Dem_GetEventAvailable (Dem_EventIdType EventId, boolean* AvailableStatus);

Gets the data of an extended data record by event.

Std_ReturnType Dem_GetEventExtendedDataRecordEx (Dem_EventIdType EventId, uint8 RecordNumber, uint8* DestBuffer, uint16* BufSize);

Gets the data of a freeze frame by event.

Std_ReturnType Dem_GetEventFreezeFrameDataEx (Dem_EventIdType EventId, uint8 RecordNumber, uint16 DataId, uint8* DestBuffer, uint16* BufSize);

Gets the event memory overflow indication status.

Std_ReturnType Dem_GetEventMemoryOverflow (uint8 ClientId, Dem_DTCOriginType DTCOrigin, boolean* OverflowIndication);

Gets the current UDS status byte assigned to the DTC for the event

Std_ReturnType Dem_GetEventUdsStatus (Dem_EventIdType EventId, Dem_UdsStatusByteType* UDSStatusByte);

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.

Std_ReturnType Dem_GetFaultDetectionCounter (Dem_EventIdType EventId, sint8* FaultDetectionCounter);

Gets the functional unit of the requested DTC.

Std_ReturnType Dem_GetFunctionalUnitOfDTC (uint8 ClientId, uint8* DTCFunctionalUnit);

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)

Std_ReturnType Dem_GetIndicatorStatus (uint8 IndicatorId, Dem_IndicatorStatusType* IndicatorStatus);

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)

Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);

Gets the current monitor status for an event.

Std_ReturnType Dem_GetMonitorStatus (Dem_EventIdType EventID, Dem_MonitorStatusType* MonitorStatus);

Gets extended data record for the DTC selected by Dem_SelectExtendedDataRecord. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_GetNextExtendedDataRecord (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

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.

Std_ReturnType Dem_GetNextFilteredDTC (uint8 ClientId, uint32* DTC, uint8* DTCStatus);

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.

Std_ReturnType Dem_GetNextFilteredDTCAndFDC (uint8 ClientId, uint32* DTC, sint8* DTCFaultDetectionCounter);

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.

Std_ReturnType Dem_GetNextFilteredDTCAndSeverity (uint8 ClientId, uint32* DTC, uint8* DTCStatus, Dem_DTCSeverityType* DTCSeverity, uint8* DTCFunctionalUnit);

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.

Std_ReturnType Dem_GetNextFilteredRecord (uint8 ClientId, uint32* DTC, uint8* RecordNumber);

Gets freeze frame data by the DTC selected by Dem_SelectFreezeFrameData. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_GetNextFreezeFrameData (uint8 ClientId, uint8* DestBuffer, uint16* BufSize);

Returns the number of entries currently stored in the requested event memory.

Std_ReturnType Dem_GetNumberOfEventMemoryEntries (uint8 ClientId, Dem_DTCOriginType DTCOrigin, uint8* NumberOfEventMemoryEntries);

Gets the number of a filtered DTC.

Std_ReturnType Dem_GetNumberOfFilteredDTC (uint8 ClientId, uint16* NumberOfFilteredDTC);

This function returns the number of all freeze frame records currently stored in the primary event memory

Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);

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).

Std_ReturnType Dem_GetSeverityOfDTC (Dem_DTCSeverityType* DTCSeverity, uint8 ClientId);

Gets the size of Extended Data Record by DTC selected by the call of Dem_SelectExtended DataRecord.

Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);

Gets the size of freeze frame data by DTC selected by the call of Dem_SelectFreezeFrame Data.

Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);

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.

Std_ReturnType Dem_GetStatusOfDTC (uint8 ClientId, uint8* DTCStatus);

Gets the supported DTC formats of the ECU.The supported formats are configured via Dem TypeOfDTCSupported.

Dem_DTCTranslationFormatType Dem_GetTranslationType (uint8 ClientId);

서비스 · Set…

Set the availability of a specific DemComponent.

Std_ReturnType Dem_SetComponentAvailable (Dem_ComponentIdType ComponentId, boolean AvailableStatus);

Sets a dependent operation cycle as qualified, so it may be processed along with its leading cycle.

Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);

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)

Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);

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)

Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);

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)

Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);

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)

Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);

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

Std_ReturnType Dem_SetDTCFilter (uint8 ClientId, uint8 DTCStatusMask, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin, boolean FilterWithSeverity, Dem_DTCSeverityType DTCSeverityMask, boolean FilterForFaultDetectionCounter);

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)

Std_ReturnType Dem_SetDTCSuppression (uint8 ClientId, boolean SuppressionStatus);
Dem_SetDTR 함수

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)

Std_ReturnType Dem_SetDTR (uint16 DTRId, sint32 TestResult, sint32 LowerLimit, sint32 UpperLimit, Dem_DTRControlType Ctrlval);

Sets an enable condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemEnable Condition)} != NULL)

Std_ReturnType Dem_SetEnableCondition (uint8 EnableConditionID, boolean ConditionFulfilled);

Set the available status of a specific Event.

Std_ReturnType Dem_SetEventAvailable (Dem_EventIdType EventId, boolean AvailableStatus);

Set the failure confirmation threshold of an event.

Std_ReturnType Dem_SetEventConfirmationThresholdCounter (Dem_EventIdType EventId, uint8 FailureCycleCounterThreshold);

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)

Std_ReturnType Dem_SetEventDisabled (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

void Dem_SetEventFailedWithSyncFreezeFrame (Dem_EventIdType EventId);

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)

Std_ReturnType Dem_SetEventStatus (Dem_EventIdType EventId, Dem_EventStatusType EventStatus);

This API will be available only if ({Dem/DemConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING_WITH_MONITOR_DATA)

Std_ReturnType Dem_SetEventStatusWithMonitorData (Dem_EventIdType EventId, Dem_EventStatusType EventStatus, Dem_MonitorDataType monitorData0, Dem_MonitorDataType monitorData1);

Sets a freeze frame record filter.

Std_ReturnType Dem_SetFreezeFrameRecordFilter (uint8 ClientId, Dem_DTCFormatType DTCFormat);

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)

Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);

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)

Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);

Sets a storage condition. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemStorage Condition)} != NULL)

Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);

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.

Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);

서비스 · Dcm…

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)

Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);

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)

Std_ReturnType Dem_DcmGetDTCOfOBDFreezeFrame (uint8 FrameNumber, uint32* DTC, Dem_DTCFormatType DTCFormat);

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)

Std_ReturnType Dem_DcmGetDTRData (uint8 Obdmid, uint8 TIDindex, uint8* TIDvalue, uint8* UaSID, uint16* Testvalue, uint16* Lowlimvalue, uint16* Upplimvalue);

Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. 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)

Std_ReturnType Dem_DcmGetInfoTypeValue08 (Dcm_OpStatusType OpStatus, uint8* Iumprdata08, uint8* Iumprdata08BufferSize);

Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype _GetInfotypeValueData() defined by the Dcm. Therefore Dcm_Op StatusType and Std_ReturnType are contained. 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)

Std_ReturnType Dem_DcmGetInfoTypeValue0B (Dcm_OpStatusType OpStatus, uint8* Iumprdata0B, uint8* Iumprdata0BBufferSize);

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)

Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);

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)

Std_ReturnType Dem_DcmReadDataOfOBDFreezeFrame (uint8 PID, uint8 DataElementIndexOfPID, uint8* DestBuffer, uint16* BufSize);

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)

Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);

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)

Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);

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)

Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);

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)

Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);

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)

Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);

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)

Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);

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)

Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);

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)

Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);

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)

Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);

서비스 · J1939…

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).

Std_ReturnType Dem_J1939DcmClearDTC (Dem_J1939DcmSetClearFilterType DTCTypeFilter, Dem_DTCOriginType DTCOrigin, uint8 ClientId);

The function sets the filter to the first applicable DTC for the DM31 response for a specific node.

void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);

Gets the next filtered J1939 DTC for DM31 including current LampStatus.

Std_ReturnType Dem_J1939DcmGetNextDTCwithLampStatus (Dem_J1939DcmLampStatusType* LampStatus, uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered J1939 DTC.

Std_ReturnType Dem_J1939DcmGetNextFilteredDTC (uint32* J1939DTC, uint8* OccurenceCounter, uint8 ClientId);

Gets the next filtered Ratio.

Std_ReturnType Dem_J1939DcmGetNextFilteredRatio (uint32* SPN, uint16* Numerator, uint16* Denominator, uint8 ClientId);

Gets next freeze frame data. The function stores the data in the provided DestBuffer.

Std_ReturnType Dem_J1939DcmGetNextFreezeFrame (uint32* J1939DTC, uint8* OccurenceCounter, uint8* DestBuffer, uint16* BufSize, uint8 ClientId);

Gets next SPN.

Std_ReturnType Dem_J1939DcmGetNextSPNInFreezeFrame (uint32* SPNSupported, uint8* SPNDataLength, uint8 ClientId);

Gets the number of currently filtered DTCs set by the function Dem_J1939DcmSetDTCFilter.

Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);

Service to report the value of Diagnostic Readiness 1 (DM05) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 2 (DM21) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);

Service to report the value of Diagnostic Readiness 3 (DM26) computed by the Dem.

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);

The function sets the DTC filter for a specific node and returns the composite lamp status of the filtered DTCs.

Std_ReturnType Dem_J1939DcmSetDTCFilter (Dem_J1939DcmDTCStatusFilterType DTCStatusFilter, Dem_DTCKindType DTCKind, Dem_DTCOriginType DTCOrigin, uint8 ClientId, Dem_J1939DcmLampStatusType* LampStatus);

The function sets the FreezeFrame filter for a specific node.

Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);

The function sets the Ratio filter for a specific node and returns the corresponding Ignition Cycle Counter and General Denominator.

Std_ReturnType Dem_J1939DcmSetRatioFilter (uint16* IgnitionCycleCounter, uint16* OBDMonitoringConditionsEncountered, uint8 ClientId);

서비스 · Select…

Selects a DTC or DTC group as target for further operations.

Std_ReturnType Dem_SelectDTC (uint8 ClientId, uint32 DTC, Dem_DTCFormatType DTCFormat, Dem_DTCOriginType DTCOrigin);

Sets the filter to be used by Dem_GetNextExtendedDataRecord and Dem_GetSizeOfExtended DataRecordSelection.

Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);

Sets the filter to be used by Dem_GetNextFreezeFrameData and Dem_GetSizeOfFreezeFrame Selection.

Std_ReturnType Dem_SelectFreezeFrameData (uint8 ClientId, uint8 RecordNumber);

서비스 · 기타

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

Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);

Clears single DTCs, as well as groups of DTCs.

Std_ReturnType Dem_ClearDTC (uint8 ClientId);

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)

Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);

Disables the event memory update of a specific DTC (only one at one time).

Std_ReturnType Dem_DisableDTCRecordUpdate (uint8 ClientId);

Disables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

Std_ReturnType Dem_DisableDTCSetting (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.

Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);

(Re)-Enables the DTC setting for all DTCs assigned to the DemEventMemorySet of the addressed client.

Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);

Initializes the internal states necessary to process events reported by BSW-modules.

void Dem_PreInit (void);

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)

Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD relevant ECUs only

Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);

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)

Std_ReturnType Dem_RepIUMPRDenRelease (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)

Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);

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).

Std_ReturnType Dem_ResetEventDebounceStatus (Dem_EventIdType EventId, Dem_DebounceResetStatusType DebounceResetStatus);

Resets the event failed status. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);

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.

Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);

Shuts down this module.

void Dem_Shutdown (void);

주기적

Processes all not event based Dem internal functions.

void Dem_MainFunction (void);

타입

Identification of a DemComponent by assigned ComponentId. The ComponentId is automatically assigned by the Dem.

This type of the external data structure shall contain the post build initialization data for the Dem.

Array data type definition for external data elements

Data type definition for external data elements

This type contains all definitions to control an internal debounce counter/timer via the function Dem_ResetEventDebounceStatus().

This type is used to select the format of the DTC value.

This type is used to filter DTCs for their kind.

This enum is used to define the location of the events. The definition and use of the different memory types is OEM-specific.

This type is used to request a DTC with specific attributes.

DTC translation format as defined in ISO14229-1.

Control parameter for the interpretation of the reported test results.

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.

This type contains all monitor test result values, which can be reported via Dem_SetEventStatus().

Indicator mode used by Dem_GetIndicatorStatus().

(Re-)Initialization reason returned by the callback _DemInitMonitorFor().

This type contains all possible additional IUMPR denominator conditions to be broadcasted among OBD-relevant ECUs.

This type contains all possible states of an additional IUMPR denominator condition to be broadcasted among OBD-relevant ECUs.

This structure represents all data elemets of the DM05 message. The encoding shall be done acording SAE J1939-73

This structure represents all data elemets of the DM21 message. The encoding shall be done acording SAE J1939-73

This structure represents all data elemets of the DM26 message. The encoding shall be done acording SAE J1939-73

The type to distinguish which DTCs should be filtered.

For details refer SAE J1939-73

The type to distinguish which DTCs gets cleared

The type to distinguish which DTCs gets cleared

This type is used to pass monitoring data to the Dem.

OBD specific ratio Id (related to a specific event, a FID, and an IUMPR group). This type depends on the Dem configuration.