DEENESPTFRRUARHIKOZHNL

Diagnostic Event Manager (DEM)

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

Руководство по модулюСОЗДАНО ИИ

Собирает результаты диагностики от мониторов, квалифицирует их и управляет памятью неисправностей вместе с данными окружения для тестеров.
СОЗДАНО ИИ не проверено Модель: 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 Frames и 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]. На этой основе он формирует Fault Detection Counter от -128 до +127 [SWS_Dem_00415]. Дебаунсинг и состояние монитора выполняются синхронно, а байт состояния UDS — асинхронно ([SWS_Dem_01279], [SWS_Dem_01285]). Enable Conditions и отключённый DTC-Setting блокируют обработку SWS DEM с. 83.

Обработка отчета монитораMonitorDemFiMSchMDem_SetEventStatus(EventId, EventStatus)altEnable Conditions выполнены и DTC-Setting разрешеноУстранение дребезга на основе счетчика (синхронное)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 Frames и 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 отправляют отчёты через порты RTE, такие как DiagnosticMonitor [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_00180], включая внутреннее устранение дребезга (debounce) [SWS_Dem_01213]. События, сообщенные после этого, помещаются в буфер [SWS_Dem_00167] и пока не вызывают обратных вызовов статуса монитора [SWS_Dem_01289] SWS DEM Рис. 7.42 с. 169.

Dem_Init принимает указатель Post-Build на Dem_ConfigType ([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]. Интерпретация: поскольку Dem_Init, согласно [SWS_Dem_00181], также выполняет повторную инициализацию, перезапуск после 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)

Диаграмма состояний: режимы DEM от предварительной инициализации до завершения работы (shutdown). Перезапуск после shutdown является предположением. Источники: [SWS_Dem_00169], [SWS_Dem_00181], [SWS_Dem_00182]

Буферизация между Dem_PreInit и Dem_InitEcuMMonitor (SW-C/BSW)DemFiMSchMUse Case: VorinitialisierungDem_PreInit()Внутренние состояния иEntprellung initialisierenDem_SetEventStatus(EventId, EventStatus)Meldung puffern,нет обратных вызовов статуса монитораUse Case: InitialisierungDem_Init(ConfigPtr)Сформировать статус монитора из сообщенийили состояния NvMFiM_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 линейно отображает на Fault Detection Counter от -128 до +127 ([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-Setting разрешеноУстранение дребезга на основе счетчика (синхронное)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 асинхронно сбрасывает бит 0 и инициализирует устранение дребезга без отправки результата Passed [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

Диаграмма состояний: переходы бита 0 состояния UDS (TestFailed). Источники: SWS DEM Рис. 7.15 с. 70, [SWS_Dem_00386]

Условия разрешения (Enable Conditions), рабочие циклы и доступность

Enable Conditions и отключенная настройка DTC блокируют обработку сообщений о состоянии 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 Frames и Extended Data SWS DEM Рис. 7.13 с. 77. DemEventMemoryEntryStorageTrigger определяет, когда создается запись:

Благодаря старению (aging) связанные с событием данные удаляются [SWS_Dem_01075].

Freeze Frames привязаны к конкретным событиям и состоят из сконфигурированных DID ([SWS_Dem_00039], [SWS_Dem_00040]). В случае энергозависимых данных монитор заранее собирает их с помощью Dem_PrestoreFreezeFrame. Эти данные DEM использует при сохранении [SWS_Dem_00464] SWS DEM Рис. 7.37 с. 128. Записи Extended Data Records собираются по сконфигурированным триггерам [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].

DCM считывает Freeze Frames с помощью Dem_GetNextFreezeFrameData после того, как выбрал DTC и запись [SWS_Dem_01268] SWS DEM Рис. 9.7 с. 369. При этом DEM предоставляет готовую структуру (layout) записи 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. API J1939 доступны, если сконфигурирован DemGeneralJ1939 [SWS_Dem_00845]. При поддержке OBD модуль DEM дополнительно предоставляет:

PID $31/$4D/$4E рассчитывает только ведущий ECU (Master-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Сбросить статус, данные события иPrestored Freeze FramesInitMonitorForEvent(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) и фрагментов документации, содержащихся в полезной нагрузке. Нормативными являются исключительно процитированные требования; некоторые фрагменты документации взяты из других релизов.

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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 52979462b246 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Dem_PreInit служит во время запуска системы для предварительной инициализации внутренних состояний модуля DEM, необходимых для ранней обработки сообщений о событиях из модулей BSW ([SWS_Dem_00179], [SWS_Dem_00180]). Вызов выполняется синхронно, является нереентерабельным и не имеет ни передаваемых параметров, ни возвращаемого значения ([SWS_Dem_00179]).

При вызове Dem_PreInit инициализируются внутренние механизмы устранения дребезга, включая счетчики и таймеры ([SWS_Dem_01213]). Если настроено внутреннее устранение дребезга DEM, модуль сбрасывает соответствующий алгоритм устранения дребезга ([SWS_Dem_00438]).

После успешного завершения Dem_PreInit и до вызова Dem_Init становятся доступными отдельные интерфейсы и режимы поведения:

  • Статус события и устранение дребезга: вызовы Dem_SetEventStatus поддерживаются для устранения дребезга с состояниями DEM_EVENT_STATUS_PREPASSED и DEM_EVENT_STATUS_PREFAILED ([SWS_Dem_01212]). Однако все события, зарегистрированные до Dem_Init, не вызывают колбэков для изменения состояния монитора ([SWS_Dem_01289]).
  • Управление статусом устранения дребезга: функция Dem_ResetEventDebounceStatus для сброса или заморозки счетчиков устранения дребезга доступна модулям BSW после завершения Dem_PreInit ([SWS_Dem_00180], [SWS_Dem_00683]).
  • Пороги подтверждения и рабочие циклы: DEM поддерживает вызовы Dem_SetEventConfirmationThresholdCounter после Dem_PreInit ([SWS_Dem_01242]). Вызов Dem_RestartOperationCycle также разрешен только с этого момента; если рабочий цикл перезапускается до Dem_Init, фактическая обработка перезапуска выполняется только после Dem_Init ([SWS_Dem_01318]).

Этот текст сгенерирован ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_Init [SWS_Dem_00181] 📄 PDF

void Dem_Init (const Dem_ConfigType* ConfigPtr);

Initializes or reinitializes this module.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 940f61d4751b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная, нереэнтрантная функция Dem_Init полностью инициализирует или реинициализирует модуль Diagnostic Event Manager (DEM) согласно [SWS_Dem_00181]. После завершения этого вызова DEM полностью готов к работе ([SWS_Dem_00340]). Через входной параметр ConfigPtr в VARIANT-POST-BUILD передаётся указатель на набор данных конфигурации post-build ([SWS_Dem_00181]).

В рамках процесса инициализации Dem_Init выполняет основные шаги по восстановлению и синхронизации:

  • Инициализация состояний и мониторов: состояния мониторов и компонентов инициализируются ([SWS_Dem_01324]). В то время как вызовы Dem_GetMonitorStatus до завершения инициализации возвращают E_NOT_OK ([SWS_Dem_01326]), Dem_GetMonitorStatus и Dem_GetComponentFailed после этого момента возвращают E_OK ([SWS_Dem_01324]).
  • Энергонезависимая память (NVM): если сконфигурировано (DemDebounceCounterStorage == True), DEM не позднее чем в Dem_Init восстанавливает внутренний счётчик дебаунсинга ([SWS_Dem_00675]). Также предварительно сконфигурированные данные стоп-кадра загружаются из NVM до возврата из функции ([SWS_Dem_01322]), для чего DEM обращается к API NvM, таким как NvM_ReadBlock ([SWS_Dem_00164]). Вызовом Dem_Init, кроме того, снимается блокировка памяти событий после предшествующего Dem_Shutdown ([SWS_Dem_00102]).
  • Взаимодействие и буферизация: если DemTriggerFiMReports установлен в True, Dem_Init вызывает исключительно в этот момент времени FiM_DemInit для инициализации прав в Function Inhibition Manager ([SWS_Dem_01189]). События, буферизованные до Dem_Init ([SWS_Dem_00167], [SWS_Dem_01079]), не вызывают колбэков изменения статуса монитора до Dem_Init ([SWS_Dem_01289]). Перезапуск цикла, запрошенный до Dem_Init через Dem_RestartOperationCycle, обрабатывается только после Dem_Init ([SWS_Dem_01318]).

В отношении обработки ошибок действует следующее: если была вызвана Dem_Shutdown, DEM при активном обнаружении ошибок разработки подтверждает вызовы большинства API ошибкой DEM_E_UNINIT, пока снова не будет выполнена Dem_Init ([SWS_Dem_00368]).

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_Shutdown [SWS_Dem_00182] 📄 PDF

void Dem_Shutdown (void);

Shuts down this module.

СОЗДАНО ИИ не проверено Модель: 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]). Контекст вызова, предположительно, находится в рамках центральной последовательности выключения электронного блока управления. Вопрос Q-a0e6a5700c49d786 (открытый)

При вызове Dem_Shutdown завершает все незавершенные операции модуля DEM, чтобы подготовить внутренние состояния и данные для передачи в NVRAM ([SWS_Dem_00102]). Для измененных энергонезависимых данных DEM инициирует сохранение в NVRAM до или во время Dem_Shutdown ([SWS_Dem_00341]). При необходимости модуль использует для сохранения и восстановления данных между Dem_Init и Dem_Shutdown интерфейсы NvM_WriteBlock и NvM_ReadBlock менеджера NVRAM ([SWS_Dem_00164]). Если модуль DEM был сконфигурирован так, что предварительно сохраненные данные Freeze-Frame сохраняются энергонезависимо, это сохранение выполняется однократно и не позднее чем во время Dem_Shutdown ([SWS_Dem_01321]).

С выполнением останова память событий блокируется и не может изменяться вплоть до повторного вызова Dem_Init ([SWS_Dem_00102]). Кроме того, при включенном обнаружении ошибок разработки (Development Error Detection) действуют следующие условия ошибок:

  • Если после Dem_Shutdown вызывается DEM-API — за исключением Dem_SetEventStatus, Dem_ResetEventDebounceStatus, Dem_GetVersionInfo и Dem_MainFunction —, модуль устанавливает код ошибки DEM_E_UNINIT до следующего Dem_Init ([SWS_Dem_00368]).
  • Если Dem_SetEventStatus или Dem_ResetEventDebounceStatus вызываются после Dem_Shutdown для событий, у которых DemDebounceCounterStorage установлено в True, DEM сообщает о коде ошибки DEM_E_WRONG_CONDITION ([SWS_Dem_00676]).

Этот текст сгенерирован ИИ и служит в качестве справочного материала. Обязательную силу имеют положения соответствующей спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_ClearDTC [SWS_Dem_00665] 📄 PDF

Std_ReturnType Dem_ClearDTC (uint8 ClientId);

Clears single DTCs, as well as groups of DTCs.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 746b093f9e55 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Асинхронная функция Dem_ClearDTC служит для удаления отдельных диагностических кодов неисправностей (DTC) или целых групп DTC в Diagnostic Event Manager [SWS_Dem_00665]. Перед вызовом целевой выбор из DTC, формата и места хранения должен быть определен с помощью Dem_SelectDTC для соответствующего ClientId [SWS_Dem_01253]. Функция реентерабельна для различных значений ClientId, однако нереентерабельна для одного и того же клиента [SWS_Dem_00665].

Процесс удаления подтверждается с помощью E_OK, как только он успешно завершен [SWS_Dem_00665]. Пока очистка выполняется, API возвращает DEM_PENDING, после чего вызывающая сторона должна вызвать функцию повторно в более поздний момент времени [SWS_Dem_00665]. Если для того же клиента параллельно активна другая операция, зависящая от Dem_SelectDTC, сообщается DEM_BUSY [SWS_Dem_00665]. Несколько параллельных клиентских запросов DEM обрабатывает внутренне [SWS_Dem_00661], при этом конкурирующие вызовы во время текущего процесса удаления могут получить DEM_PENDING [SWS_Dem_00664] или DEM_CLEAR_BUSY [SWS_Dem_00665].

Ошибочные вызовы API квитирует определенными возвращаемыми значениями:

  • E_NOT_OK: ранее не был выбран ни один DTC [SWS_Dem_00665].
  • DEM_WRONG_DTC: DTC не существует [SWS_Dem_00665], подавлен [SWS_Dem_01100] или конфигурация DemClearDTCLimitation принудительно задает DEM_ONLY_CLEAR_ALL_DTCS [SWS_Dem_00670].
  • DEM_WRONG_DTCORIGIN: выбранное место хранения не существует [SWS_Dem_00665].
  • DEM_CLEAR_FAILED или DEM_CLEAR_MEMORY_ERROR: удаление завершилось неудачно или произошла ошибка при удалении в энергонезависимой памяти [SWS_Dem_00665].

В рамках удаления в случае комбинированных DTC очищаются все связанные события [SWS_Dem_00440] и запускается их инициализация монитора через InitMonitorForEvent с DEM_INIT_MONITOR_CLEAR [SWS_Dem_00680]. При установленном DemTriggerMonitorInitBeforeClearOk возврат E_OK происходит только после этого триггера [SWS_Dem_00573]. Если удаляются все DTC памяти событий, DEM сбрасывает ее индикатор переполнения [SWS_Dem_00399]; кроме того, при выполнении службы OBD $04 сбрасываются неназначенные данные DTR [SWS_Dem_00764] и очищаются события, не привязанные к памяти [SWS_Dem_01249].

Этот текст был сгенерирован ИИ и служит для технической ориентации.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_ClearPrestoredFreezeFrame [SWS_Dem_00193] 📄 PDF

Std_ReturnType Dem_ClearPrestoredFreezeFrame (Dem_EventIdType EventId);

Clears a prestored freeze frame of a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e3d7b3899eb8 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Синхронная функция Dem_ClearPrestoredFreezeFrame удаляет ранее сохраненный в буфере Freeze Frame для определенного диагностического события ([SWS_Dem_00193]). Вызов выполняется исключительно через RTE; объявление в заголовочном файле Dem.h не предоставляется ([SWS_Dem_00193]). API реализован в системе только тогда, когда как минимум одно событие было сконфигурировано для предварительного сохранения (параметр конфигурации DemFFPrestorageSupported) ([SWS_Dem_00193], [SWS_Dem_00334]). Функция возвращает E_OK при успешном удалении и E_NOT_OK, если операция завершилась неудачно ([SWS_Dem_00193]).

Параллелизм и ограничения

Интерфейс реентерабелен для различных ID событий (EventId), однако не должен выполняться параллельно для одного и того же EventId ([SWS_Dem_00193]). Вызов с событиями, сконфигурированными как Slave-события (DemMultiEventTriggeringSlaveEventRef) или как замещающие события (DemStorageConditionReplacementEventRef), не поддерживается; поведение DEM в этом случае неопределенно ([SWS_Dem_01339]). Если событие задано как недоступное, оно обрабатывается как несконфигурированное событие ([SWS_Dem_01108]); интерпретация: вызов в этом случае, вероятно, будет отклонен с E_NOT_OK. Вопрос Q-d8ebaf6883138fdf (открытый)

Взаимодействие при Multi-Event-Triggering

Если сконфигурирован DemMultiEventTriggering и функция вызывается для Master-события (DemMultiEventTriggeringMasterEventRef), DEM автоматически инициирует вызов удаления с идентичными параметрами для всех назначенных Slave-событий (DemMultiEventTriggeringSlaveEventRef) ([SWS_Dem_01250]).

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR Classic Release R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_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).

СОЗДАНО ИИ не проверено Модель: 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 доступен для модулей BSW уже после завершения Dem_PreInit и поэтому исключен из общей проверки инициализации перед полной инициализацией [SWS_Dem_00124] [SWS_Dem_00683]. При активированном обнаружении ошибок разработки действуют следующие условия:

  • Если функция вызывается до предварительной инициализации, DEM сообщает об ошибке DEM_E_UNINIT [SWS_Dem_00364].
  • Если вызов происходит для событий с персистентным счетчиком антидребезга (DemDebounceCounterStorage установлено в True) до Dem_Init или после Dem_Shutdown, устанавливается DEM_E_WRONG_CONDITION [SWS_Dem_00676].
  • Если событие помечено как недоступное, оно обрабатывается как несконфигурированное событие [SWS_Dem_01108].

Параллелизм и ограничения

Dem_ResetEventDebounceStatus является реентерабельной для разных значений EventId, но нереентерабельной для одного и того же события [SWS_Dem_00683]. При сконфигурированном DemMultiEventTriggering вызов с мастер-событием инициирует идентичные вызовы для всех назначенных подчиненных событий (Slave-Events) [SWS_Dem_01250]. Прямые вызовы для чисто внутренних подчиненных событий или событий, на которые ссылаются через DemStorageConditionReplacementEventRef, не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_ResetEventStatus [SWS_Dem_00185] 📄 PDF

Std_ReturnType Dem_ResetEventStatus (Dem_EventIdType EventId);

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

СОЗДАНО ИИ не проверено Модель: 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].

Запрос завершается сбоем с возвращаемым значением E_NOT_OK, если событие уже было протестировано в текущем рабочем цикле (UDS-бит статуса 6 равен 0) [SWS_Dem_00185], [SWS_Dem_00638] или если событие сконфигурировано либо установлено как недоступное [SWS_Dem_01108]. Вызов до полной инициализации DEM даже при включенном обнаружении ошибок разработки (DemDevErrorDetect) не приводит к сообщению об ошибке DEM_E_UNINIT [SWS_Dem_00124].

Что касается параллелизма, Dem_ResetEventStatus является реентерабельной для различных значений EventId, но нереентерабельной для одного и того же EventId [SWS_Dem_00185]. Если сконфигурировано DemMultiEventTriggering и функция вызывается с мастер-событием, DEM автоматически запускает тот же вызов для всех связанных слейв-событий [SWS_Dem_01250]. Прямые вызовы с EventId, которое сконфигурировано как слейв-событие или как DemStorageConditionReplacementEventRef, не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_RestartOperationCycle [SWS_Dem_00194] 📄 PDF

Std_ReturnType Dem_RestartOperationCycle (uint8 OperationCycleId);

Sets an operation cycle state. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. The interface has an asynchronous behavior to avoid exceeding of typical timing requirements on APIs if a large number of events has to be processed and during the re-initializations of the related monitors. The asynchronous acknowledgements are the related InitMonitorForEvent callbacks.

СОЗДАНО ИИ не проверено Модель: 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 повторно инициализирует диагностические мониторы всех затронутых событий путем вызова их колбэка InitMonitorForEvent с параметром InitMonitorReason, установленным в DEM_INIT_MONITOR_RESTART ([SWS_Dem_00679]).

Если рабочий цикл перезапускается через Dem_RestartOperationCycle, все зависимые от него рабочие циклы также должны быть перезапущены при условии их квалификации ([SWS_Dem_01224]).

Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Определяющей является спецификация AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_PrestoreFreezeFrame [SWS_Dem_00188] 📄 PDF

Std_ReturnType Dem_PrestoreFreezeFrame (Dem_EventIdType EventId);

Captures the freeze frame data for a specific event. This API can only be used through the RTE and therefore no declaration is exported via Dem.h. API Availability: This API will be available only if ({ecuc(Dem/DemConfigSet/DemEvent Parameter.DemFFPrestorageSupported)} == true)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c489dfc2152d Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция служит для синхронной фиксации и буферизации данных Freeze Frame для определенного диагностического события [SWS_Dem_00188]. Интерфейс предоставляется исключительно через RTE и не экспортируется через Dem.h [SWS_Dem_00188]. Он присутствует в модуле только тогда, когда для как минимум одного события сконфигурировано предварительное сохранение (DemFFPrestorageSupported) [SWS_Dem_00334].

Возвращаемые значения и обработка ошибок:

  • E_OK: Freeze Frame был успешно сохранен в буфере [SWS_Dem_00188].
  • E_NOT_OK: буферизация завершилась неудачно [SWS_Dem_00188], в частности если больше нет свободного буфера (ограничено DemMaxNumberPrestoredFF) [SWS_Dem_00808] или указанное событие задано как недоступное [SWS_Dem_01108].

Параллелизм и условия вызова: функция реентерабельна для различных ID событий, однако не для одного и того же EventId [SWS_Dem_00188].

Взаимодействие при Multi-Event-Triggering: если функция вызывается со сконфигурированным Master-событием (DemMultiEventTriggeringMasterEventRef), DEM автоматически инициирует идентичные вызовы для всех связанных Slave-событий (DemMultiEventTriggeringSlaveEventRef) [SWS_Dem_01250]. Прямые вызовы с ID Slave-события или с замещающим событием для условий сохранения (DemStorageConditionReplacementEventRef) не поддерживаются и приводят к неопределенному поведению [SWS_Dem_01339].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_SelectDTC [SWS_Dem_91016] 📄 PDF

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

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c8301a45c8d2 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_SelectDTC выбирает DTC или группу DTC в определенном формате (DTCFormat) и памяти событий (DTCOrigin) для определенного ClientId в качестве цели для последующих операций [SWS_Dem_91016]. Она инициирует внутренний процесс выбора DEM в памяти событий, назначенной этому ClientId [SWS_Dem_01254].

Что касается параллелизма и контекста вызова, функция реентерабельна для различных ClientId, однако нереентерабельна для одного и того же ClientId [SWS_Dem_91016]. В качестве возвращаемых значений определены [SWS_Dem_91016]:

  • E_OK: DTC или группа успешно выбраны [SWS_Dem_91016].
  • DEM_BUSY: другой вызов Dem_SelectDTC или зависимая от него операция этого клиента уже выполняется в данный момент [SWS_Dem_91016].

Результат выбора отражается в возвращаемых значениях последующих вызовов API [SWS_Dem_01254]. DEM использует выбранный DTC или группу DTC в качестве цели для последующих вызовов функций того же клиента, таких как, помимо прочего, Dem_ClearDTC, Dem_DisableDTCRecordUpdate, Dem_GetFunctionalUnitOfDTC, Dem_GetSeverityOfDTC, Dem_GetStatusOfDTC, Dem_SelectFreezeFrameData, Dem_SelectExtendedDataRecord, а также Dem_SetDTCSuppression [SWS_Dem_01253]. Кроме того, Dem_SelectFreezeFrameData и Dem_SelectExtendedDataRecord основаны на этом выбранном DTC [SWS_Dem_01268], [SWS_Dem_01272].

Если один из зависимых API вызывается без предварительного действительного выбора или переданный DTC недействителен в указанном формате, DEM возвращает DEM_WRONG_DTC [SWS_Dem_01261]. Если запрошенная область памяти (DTCOrigin) отсутствует или недействительна, последующие вызовы возвращают DEM_WRONG_DTCORIGIN [SWS_Dem_01258], [SWS_Dem_01262]. С помощью Dem_GetDTCSelectionResult можно явно проверить, был ли выбор с помощью E_OK успешным и готов ли DTC для дальнейшей обработки [SWS_Dem_01256], [SWS_Dem_01257].

Это указание по использованию сгенерировано ИИ и основано исключительно на данных спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_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)

СОЗДАНО ИИ не проверено Модель: 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]. Сообщения принимаются, как только выполнены назначенные условия включения (Enable Conditions) [SWS_Dem_00450]; если настройка DTC деактивирована, DEM игнорирует отчёт для статуса UDS [SWS_Dem_00626].

В контексте вызова могут запускаться синхронные действия:

  • Оповещение FiM при изменении статуса через FiM_DemTriggerOnEventStatus, если активно DemTriggerFiMReports [SWS_Dem_00029].
  • Сбор синхронных данных стоп-кадра и записей расширенных данных (Extended Data Records) при сконфигурированной опции DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING [SWS_Dem_00805], [SWS_Dem_01082].
  • Каскадные вызовы для сконфигурированных slave-событий при активной конфигурации DemMultiEventTriggering [SWS_Dem_01250].

Данное указание было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_SetEventStatusWithMonitorData [SWS_Dem_91037] 📄 PDF

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

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: eb7046584bdf Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция Dem_SetEventStatusWithMonitorData служит для сообщения результата теста монитора (EventStatus) для определенного диагностического события (EventId) вместе с дополнительными данными монитора (monitorData0 и monitorData1) в DEM [SWS_Dem_91037]. Она обладает той же функциональностью, что и Dem_SetEventStatus, однако передает дополнительные параметры для сохранения в данных, связанных с событием [SWS_Dem_01333].

Во взаимодействии с операциями считывания действует следующее: если операция Read-Data сконфигурирована для предоставления monitorData0, то DEM добавляет переданный monitorData0 из Dem_SetEventStatusWithMonitorData к параметру monitorData0 этой операции Read-Data [SWS_Dem_01330].

Для использования и параллелизма действуют следующие условия:

  • Доступность: API доступен через Dem.h только в том случае, если DemEventReportingType сконфигурирован на STANDARD_REPORTING_WITH_MONITOR_DATA [SWS_Dem_91037].
  • Выполнение и реентерабельность: выполнение является синхронным/асинхронным. Функция реентерабельна для различных EventId, однако нереентерабельна для одного и того же EventId [SWS_Dem_91037].
  • Возвращаемые значения: она возвращает E_OK при успешной установке статуса события и E_NOT_OK, если установка или обработка завершились сбоем либо не смогли быть приняты [SWS_Dem_91037].

Это указание по использованию создано автоматически на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_SetStorageCondition [SWS_Dem_00556] 📄 PDF

Std_ReturnType Dem_SetStorageCondition (uint8 StorageConditionID, boolean ConditionFulfilled);

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

функция Dem_SetWIRStatus [SWS_Dem_00839] 📄 PDF

Std_ReturnType Dem_SetWIRStatus (Dem_EventIdType EventId, boolean WIRStatus);

Sets the WIR status bit via failsafe SW-Cs. This API can only be used through the RTE and therefore no declaration is exported via Dem.h.

СОЗДАНО ИИ не проверено Модель: 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 WIR-бит сбрасывается в 0 только в том случае, если не установлен ни один из связанных индикаторов DEM [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).

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 793bc4c92bab Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и последовательность действий

Асинхронная функция Dem_DisableDTCRecordUpdate ([SWS_Dem_00233]) деактивирует обновление памяти событий для DTC ([SWS_Dem_01253]), ранее заданного с помощью Dem_SelectDTC. Цель этого вызова состоит в том, чтобы защитить данные выбранной ошибки, относящиеся к событию, в соответствующем DTCOrigin от перезаписи или удаления, обеспечивая последующий согласованный доступ по чтению к данным Freeze Frame и Extended Data Records ([SWS_Dem_00270]). Вызывающий экземпляр модуля идентифицируется через параметр ClientId ([SWS_Dem_00233]).

Возвращаемые значения и обработка ошибок

Функция сообщает о статусе обработки через специфические возвращаемые значения ([SWS_Dem_00233]):

  • E_OK: обновление памяти событий успешно деактивировано.
  • DEM_PENDING: деактивация выполняется асинхронно; вызывающая сторона должна вызвать функцию повторно позднее.
  • DEM_BUSY: для этого клиента уже выполняется другая операция, зависящая от Dem_SelectDTC.
  • E_NOT_OK: предварительно DTC выбран не был.
  • DEM_WRONG_DTC: выбранный DTC не существует в указанном формате либо была недопустимо выбрана группа DTC.
  • DEM_WRONG_DTCORIGIN: указанный источник (DTCOrigin) не существует.

Параллелизм и ограничения

Dem_DisableDTCRecordUpdate является реэнтерабельной для вызовов с различными ClientId, однако нереэнтерабельна для одного и того же ClientId ([SWS_Dem_00233]). Одновременно может быть заблокировано обновление только для ровно одного DTC ([SWS_Dem_00233]). После считывания диагностических данных обновление записи данных должно быть снова разрешено через Dem_EnableDTCRecordUpdate ([SWS_Dem_00234], [SWS_Dem_00270]).

Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_EnableDTCRecordUpdate [SWS_Dem_00234] 📄 PDF

Std_ReturnType Dem_EnableDTCRecordUpdate (uint8 ClientId);

Enables the event memory update of the DTC disabled by Dem_DisableDTCRecordUpdate() before. Note: As the call to Dem_EnableDTCRecordUpdate is the last action in the sequence of disabling/enabling a DTC, the caller is not interested in the return value. Therefore E_OK should be returned even if the DTC is enabled asynchronously.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: de89b4e41f66 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Асинхронная функция Dem_EnableDTCRecordUpdate ([SWS_Dem_00234]) служит для разрешения обновления памяти событий для ранее заблокированного DTC. Согласно [SWS_Dem_00271] функция снова освобождает DTC, защищенный в текущий момент с помощью Dem_DisableDTCRecordUpdate, чтобы его данные могли снова обновляться в DEM.

В качестве передаваемого параметра функция ожидает ClientId, который однозначно идентифицирует экземпляр вызывающего модуля ([SWS_Dem_00234]). Поскольку вызов Dem_EnableDTCRecordUpdate представляет собой завершающее действие в последовательности деактивации и активации DTC, вызывающая сторона не заинтересована в самом возвращаемом значении; поэтому согласно [SWS_Dem_00234] даже при асинхронном разрешении должно возвращаться E_OK.

В отношении обработки ошибок и возвращаемых значений определены следующие статусы ([SWS_Dem_00234]):

  • E_OK: обновление записи данных DTC было успешно разрешено.
  • E_NOT_OK: никакой DTC не выбран.

В отношении параллелизма и ограничений Dem_EnableDTCRecordUpdate реентерабельна для вызовов с различными Client ID, однако нереентерабельна для одного и того же ClientId ([SWS_Dem_00234]).

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_GetSizeOfExtendedDataRecordSelection [SWS_Dem_00240] 📄 PDF

Std_ReturnType Dem_GetSizeOfExtendedDataRecordSelection (uint8 ClientId, uint32* SizeOfExtendedDataRecord);

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

функция Dem_GetSizeOfFreezeFrameSelection [SWS_Dem_00238] 📄 PDF

Std_ReturnType Dem_GetSizeOfFreezeFrameSelection (uint8 ClientId, uint32* SizeOfFreezeFrame);

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

функция Dem_GetNextExtendedDataRecord [SWS_Dem_00239] 📄 PDF

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

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

функция Dem_GetNextFreezeFrameData [SWS_Dem_00236] 📄 PDF

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

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

функция Dem_SelectExtendedDataRecord [SWS_Dem_91017] 📄 PDF

Std_ReturnType Dem_SelectExtendedDataRecord (uint8 ClientId, uint8 ExtendedDataNumber);

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

СОЗДАНО ИИ не проверено Модель: 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.

СОЗДАНО ИИ не проверено Модель: 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]. Обязательным предварительным условием является предшествующий вызов Dem_SelectDTC для задания целевого DTC и места хранения [SWS_Dem_01253]. Чтобы гарантировать согласованное считывание, можно вызвать Dem_DisableDTCRecordUpdate для защиты связанных с событием данных от изменений или удаления [SWS_Dem_00270].

Это указание по использованию сгенерировано автоматически с помощью ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_GetNumberOfFreezeFrameRecords [SWS_Dem_91191] 📄 PDF

Std_ReturnType Dem_GetNumberOfFreezeFrameRecords (uint8 ClientId, uint16* NumberOfFilteredRecords);

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

функция Dem_DisableDTCSetting [SWS_Dem_00242] 📄 PDF

Std_ReturnType Dem_DisableDTCSetting (uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4c222839a4a6 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Функция Dem_DisableDTCSetting деактивирует DTC-Setting для всех диагностических событий, назначенных DemEventMemorySet вызывающего клиента [SWS_Dem_00242], [SWS_Dem_01290]. Вызов выполняется асинхронно и требует передачи уникального ClientId [SWS_Dem_00242]. Помимо успешного завершения через E_OK, возвращаемое значение DEM_PENDING сигнализирует о том, что операция все еще находится в обработке; в этом случае вызывающая сторона должна вызвать функцию повторно позднее [SWS_Dem_00242].

Функциональные последствия

При вызове Dem_DisableDTCSetting модуль DEM предотвращает сохранение соответствующих событий, а также обновление байтов статуса UDS [SWS_Dem_00079]. Если параметр конфигурации DemDebounceBehavior дополнительно установлен в DEM_DEBOUNCE_RESET, вызов также приводит к сбросу соответствующих счетчиков обнаружения ошибок (Fault Detection Counters) [SWS_Dem_00677].

Параллелизм и ограничения

Функция является реэнтерабельной для вызовов с различными Client-ID, однако нереэнтерабельна для одного и того же ClientId [SWS_Dem_00242]. Деактивация влияет исключительно на события и байты статуса UDS для DemEventMemorySet, на который ссылается ClientId; DTC за пределами этой области памяти не затрагиваются [SWS_Dem_01290].

Данное указание по использованию основано на требованиях спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_EnableDTCSetting [SWS_Dem_00243] 📄 PDF

Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4784195edff9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Асинхронная функция Dem_EnableDTCSetting активирует или повторно активирует DTC-Setting для всех DTC, назначенных DemEventMemorySet адресуемого клиента [SWS_Dem_00243]. При вызове передается уникальный идентификатор ClientId вызывающего экземпляра модуля [SWS_Dem_00243].

В качестве возвращаемых значений определены [SWS_Dem_00243]:

  • E_OK: операция успешно завершена.
  • DEM_PENDING: операция выполняется асинхронно; вызывающая сторона должна вызвать функцию повторно позднее.

В отношении параллелизма Dem_EnableDTCSetting является реэнтерабельной для различных значений ClientId, однако не должна вызываться параллельно для одного и того же ClientId [SWS_Dem_00243].

Во взаимодействии с обработкой событий функция обеспечивает то, что DEM разрешает сохранение соответствующих событий и байта статуса UDS [SWS_Dem_00080]. При повторной активации DTC-Setting для событий Dem_EnableDTCSetting инициирует вызов callback-функции InitMonitorForEvent затронутых событий с параметром InitMonitorReason, установленным в DEM_INIT_MONITOR_REENABLED [SWS_Dem_00682].

Этот текст сгенерирован ИИ и служит для ознакомления. Обязательную силу имеют исключительно спецификации соответствующих релизов AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmGetInfoTypeValue08 [SWS_Dem_00316] 📄 PDF

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

Service is used for requesting IUMPR data according to InfoType $08. This interface is derived from the prototype _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)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 51829835ffc5 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция Dem_DcmGetInfoTypeValue08 ([SWS_Dem_00316]) вызывается DCM для запроса данных IUMPR (In-Use Monitor Performance Ratio) для InfoType $08 в рамках службы OBD $09 ([SWS_Dem_00298]). Поскольку обработка выполняется синхронно, DCM передает для параметра OpStatus исключительно значение DCM_INITIAL ([SWS_Dem_00316]). Полезные данные, а также количество элементов данных согласно ISO-15031-5 записываются в буфер Iumprdata08, предоставляемый DCM; максимально доступный для записи размер буфера задается через параметр типа inout Iumprdata08BufferSize ([SWS_Dem_00316]).

Обработка ошибок

В качестве возвращаемого значения функция всегда возвращает E_OK ([SWS_Dem_00316]). Специфические коды ошибок или сообщения об ошибках разработки (DET) для этого вызова не специфицированы.

Параллелизм и конфигурация

Интерфейс является нереэнтерабельным (Non Reentrant) и объявлен через Dem_Dcm.h ([SWS_Dem_00316]). Он существует исключительно в блоках управления, относящихся к OBD, с активной поддержкой OBD (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) ([SWS_Dem_00316]), и предоставляется, если DemOBDEngineType сконфигурирован в DEM_IGNITION_SPARK для бензиновых двигателей ([SWS_Dem_00357]).

Взаимодействие

Подавленные коды ошибок (suppressed DTCs) не должны быть видимы при запросе и должны обрабатываться так, как если бы фильтр не подходил ([SWS_Dem_01101]). Совместно с Dem_DcmGetInfoTypeValue0B функция служит для поддержки запросов данных в службе $09 ([SWS_Dem_00298]).

Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_DcmGetInfoTypeValue0B [SWS_Dem_00317] 📄 PDF

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

Service is used for requesting IUMPR data according to InfoType $0B. This interface is derived from the prototype _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)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: dde27ef1779b Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и интерфейс параметров

Синхронная функция Dem_DcmGetInfoTypeValue0B (Service-ID 0x6c, доступна через Dem_Dcm.h) служит DCM для запроса данных IUMPR (In-Use Performance Ratio) согласно InfoType $0B в рамках службы OBD $09 [SWS_Dem_00317] [SWS_Dem_00298]. Интерфейс функции выводится из прототипа DCM <Module>_GetInfotypeValueData(), поэтому она использует Dcm_OpStatusType и Std_ReturnType [SWS_Dem_00317]:

  • OpStatus (in): поскольку функция демонстрирует синхронное поведение, при вызове возникает исключительно состояние DCM_INITIAL [SWS_Dem_00317].
  • Iumprdata0BBufferSize (inout): определяет максимальное количество байтов данных, которое разрешено записать в буфер [SWS_Dem_00317].
  • Iumprdata0B (out): буфер, предоставляемый DCM, который принимает количество элементов данных согласно ISO-15031-5 и содержимое InfoType $0B [SWS_Dem_00317].

В качестве возвращаемого значения всегда возвращается E_OK [SWS_Dem_00317].

Обработка ошибок и параллелизм

Специфические коды ошибок или реакции на ошибки (такие как сообщения DET) для этой функции в спецификации не определены; вызов формально всегда возвращает E_OK [SWS_Dem_00317]. API классифицирован как нереэнтерабельный (Non Reentrant) [SWS_Dem_00317]. Вызывающая сторона (DCM), следовательно, предположительно не должна выполнять эту службу параллельно для нескольких одновременных диагностических запросов. Вопрос Q-636518c23ec3801a (открытый)

Зависимость от конфигурации и взаимодействие

API существует исключительно в блоках управления, относящихся к OBD, для которых параметр конфигурации DemOBDSupport сконфигурирован не равным DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00317]. Кроме того, он предоставляется, если DemOBDEngineType установлен в DEM_IGNITION_COMPRESSION [SWS_Dem_00358]. Во взаимодействии с подавлением DTC действует правило: подавленные DTC невидимы для этой функции запроса и должны обрабатываться так, как если бы фильтр не подходил [SWS_Dem_01101].

Этот текст создан ИИ; правила требуют проверки пользователем по спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_DcmReadDataOfPID01 [SWS_Dem_00318] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID01 (uint8* PID01value);

Service to report the value of PID $01 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: 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 и доступен исключительно в электронных блоках управления с поддержкой OBD, в которых DemOBDSupport не установлено в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00318].

Через выходной параметр PID01value модуль DCM передает указатель на целевой буфер, в который DEM записывает данные [SWS_Dem_00318]. Модуль DCM отвечает за предоставление этого буфера достаточного размера; выбор размера осуществляется на этапе конфигурации на основе наибольшего встречающегося PID для настройки PIDBuffer [SWS_Dem_00318].

Функция реализована как нереентерабельная (Non Reentrant) [SWS_Dem_00318]. В качестве возвращаемого значения всегда возвращается E_OK, поскольку состояние ошибки с E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00318].

Во взаимодействии с запросами ошибок действует правило: подавленные коды ошибок (suppressed DTC) не должны быть видимы для Dem_DcmReadDataOfPID01 [SWS_Dem_01101]. При оценке DEM должен обрабатывать подавленные DTC так, как будто фильтр не совпадает [SWS_Dem_01101].

Примечание: эта документация была автоматически сгенерирована системой ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmReadDataOfPID1C [SWS_Dem_00325] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID1C (uint8* PID1Cvalue);

Service to report the value of PID $1C computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1c7eda1b0fc3 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция Dem_DcmReadDataOfPID1C предоставляет синхронный сервис Diagnostic Event Manager, через который Diagnostic Communication Module (DCM) запрашивает вычисленное содержимое OBD PID $1C [SWS_Dem_00325].

  • Параметры: через выходной параметр PID1Cvalue (указатель на uint8) DEM записывает данные в буфер DCM. Требуемый размер буфера рассчитывается при конфигурации DCM на основе наибольшего PID, чтобы предоставить подходящий PIDBuffer [SWS_Dem_00325].
  • Возвращаемое значение: сервис всегда возвращает значение статуса E_OK. Случай ошибки с E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00325].

Техническое содержание и взаимодействие

Согласно [SWS_Dem_00748] интерфейс возвращает требования OBD, по которым сертифицировано транспортное средство или двигатель (например, OBD, OBDII или JOBD). Значение, выводимое в PID1Cvalue, определяется конфигурационным параметром DemOBDCompliancy [SWS_Dem_00325] [SWS_Dem_00748].

Параллелизм и доступность

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dem_00325]. Она объявлена в заголовочном файле Dem_Dcm.h и доступна исключительно в электронных блоках управления с активной поддержкой OBD, у которых DemGeneral.DemOBDSupport не установлено в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00325].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmReadDataOfPID21 [SWS_Dem_00319] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID21 (uint8* PID21value);

Service to report the value of PID $21 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2dc814aaf11d Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_DcmReadDataOfPID21 (Service-ID 0x64) служит Diagnostic Communication Manager (DCM) для запроса вычисленного DEM текущего значения параметра OBD PID $21 [SWS_Dem_00319], [SWS_Dem_01098]. Интерфейс объявляется через заголовочный файл Dem_Dcm.h и доступен исключительно в блоках управления, относящихся к OBD, если параметр конфигурации DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00319].

Для использования и оперативного взаимодействия действуют следующие положения:

  • Предоставление буфера: в качестве выходного параметра передается указатель PID21value [SWS_Dem_00319]. Вызывающая сторона (DCM) должна предоставить этот буфер и определяет его размер во время конфигурации в соответствии с наибольшим сконфигурированным PID [SWS_Dem_00319]. При вызове DEM записывает текущее значение PID $21 в этот буфер [SWS_Dem_01098].
  • Возвращаемое значение: функция всегда возвращает E_OK, так как значение ошибки, такое как E_NOT_OK, согласно спецификации никогда не возникает [SWS_Dem_00319].
  • Начальное состояние / обработка ошибок: если Dem_DcmReadDataOfPID21 вызывается до того, как значения были установлены через Dem_SetDataOfPID21, DEM возвращает значение замещения 0xFFFF в качестве содержимого PID $21 [SWS_Dem_01099].
  • Параллелизм: функция специфицирована как нереэнтерабельная (Non Reentrant) [SWS_Dem_00319]. Параллельные вызовы из нескольких контекстов поэтому недопустимы.

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmReadDataOfPID30 [SWS_Dem_00320] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID30 (uint8* PID30value);

Service to report the value of PID $30 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: 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 и доступна исключительно в блоках управления, относящихся к OBD, если параметр конфигурации DemOBDSupport не равен DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00320].

Для использования интерфейса действуют следующие положения:

  • Входные и выходные параметры: через выходной параметр PID30value вызывающая сторона предоставляет буфер, в который DEM записывает вычисленные данные PID $30 [SWS_Dem_00320]. DCM отвечает за предоставление этого буфера подходящего размера; требуемый размер DCM определяет во время конфигурации на основе наибольшего PID [SWS_Dem_00320].
  • Возвращаемое значение и обработка ошибок: интерфейс всегда возвращает E_OK в качестве Std_ReturnType [SWS_Dem_00320]. Значение ошибки E_NOT_OK согласно спецификации никогда не возникает, и специфических кодов ошибок или отдельных процедур обработки ошибок не предусмотрено [SWS_Dem_00320].
  • Параллелизм: функция определена как нереэнтерабельная (Non Reentrant) [SWS_Dem_00320]. Поскольку спецификация не предусматривает внутренних механизмов синхронизации, вызывающая сторона, вероятно, отвечает за исключение конкурирующих вызовов [SWS_Dem_00320]. Вопрос Q-976bc8dc189021a1 (открытый)

Этот совет по использованию был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

функция Dem_DcmReadDataOfPID31 [SWS_Dem_00321] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID31 (uint8* PID31value);

Service to report the value of PID $31 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

СОЗДАНО ИИ не проверено Модель: 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 и имеет Service-ID 0x66 [SWS_Dem_00321].

Использование и параметры

Вызов выполняется синхронно и определен как нереэнтерабельный [SWS_Dem_00321]:

  • PID31value (выходной параметр): указатель на буфер (uint8*), который принимает вычисленные данные для PID $31 [SWS_Dem_00321]. Предоставление буфера подходящего размера возлагается на вызывающий DCM; он определяет необходимый размер буфера во время конфигурации на основе наибольшего PID для компоновки PIDBuffer [SWS_Dem_00321].
  • Возвращаемое значение: служба всегда возвращает E_OK в качестве Std_ReturnType; значение ошибки E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00321].

Ограничения и конфигурация

API предусмотрен исключительно для блоков управления, относящихся к OBD [SWS_Dem_00321]. Он доступен только в том случае, если параметр конфигурации DemGeneral.DemOBDSupport установлен в значение DEM_OBD_MASTER_ECU [SWS_Dem_00321]. Поскольку функция не является реэнтерабельной, параллельные вызовы со стороны DCM выполняться не должны [SWS_Dem_00321].

Данное указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации из релиза R20-11.

функция Dem_DcmReadDataOfPID41 [SWS_Dem_00322] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID41 (uint8* PID41value);

Service to report the value of PID $41 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: 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 и имеет Service-ID 0x67 [SWS_Dem_00322].

Использование и параметры

Вызов выполняется синхронно и специфицирован как нереэнтерабельный (Non Reentrant) [SWS_Dem_00322]. В качестве выходного параметра интерфейс ожидает указатель PID41value (uint8*):

  • PID41value принимает вычисленные данные PID $41 [SWS_Dem_00322].
  • Буфер должен быть предоставлен DCM подходящего размера; для этого DCM еще во время конфигурации на основе наибольшего встречающегося PID определяет необходимый размер для конфигурации PIDBuffer [SWS_Dem_00322].

Возвращаемые значения и обработка ошибок

В качестве возвращаемого значения функция всегда возвращает E_OK, так как значение ошибки E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00322]. Специфических кодов ошибок или реакций на ошибки для этого интерфейса не предусмотрено [SWS_Dem_00322].

Зависимость от конфигурации и доступность

API требуется исключительно в блоках управления, относящихся к OBD [SWS_Dem_00322]. Он доступен только в том случае, если параметр конфигурации DemOBDSupport в DemGeneral сконфигурирован не равным DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00322].

Этот текст создан ИИ и опирается исключительно на спецификацию R20-11.

функция Dem_DcmReadDataOfPID4D [SWS_Dem_00323] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID4D (uint8* PID4Dvalue);

Service to report the value of PID $4D computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

СОЗДАНО ИИ не проверено Модель: 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]. Сервис предоставляется через заголовочный файл Dem_Dcm.h с идентификатором сервиса 0x68 [SWS_Dem_00323].

Единственным передаваемым параметром служит выходной указатель PID4Dvalue, указывающий на целевой буфер, предоставляемый DCM [SWS_Dem_00323]. DCM предоставляет этот буфер подходящего размера, определяя требуемый размер для PIDBuffer еще на этапе конфигурации на основе наибольшего встречающегося PID [SWS_Dem_00323].

Возвращаемые значения и обработка ошибок

Функция имеет тип возвращаемого значения Std_ReturnType и без исключения возвращает E_OK [SWS_Dem_00323]. Возвращаемое значение E_NOT_OK согласно спецификации исключено и никогда не возникает [SWS_Dem_00323]. Специальная обработка ошибок или специфические коды ошибок для этого вызова отсутствуют.

Параллелизм и зависимость от конфигурации

Интерфейс объявлен как нереентерабельный (Non Reentrant) и поэтому не должен выполняться параллельно [SWS_Dem_00323].

Кроме того, функция требуется исключительно в OBD-релевантных электронных блоках управления [SWS_Dem_00323]. Она доступна только тогда, когда в конфигурации параметр DemOBDSupport внутри DemGeneral установлен в значение DEM_OBD_MASTER_ECU [SWS_Dem_00323].

Данное указание по использованию основано на спецификации Diagnostic Event Manager в AUTOSAR CP R20-11.

функция Dem_DcmReadDataOfPID4E [SWS_Dem_00324] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID4E (uint8* PID4Evalue);

Service to report the value of PID $4E computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} == DEM_OBD_MASTER_ECU)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 51321ea5857b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_DcmReadDataOfPID4E служит для передачи вычисленного DEM содержимого идентификатора OBD-параметра PID $4E в DCM [SWS_Dem_00324]. Функция имеет идентификатор сервиса 0x69 и объявляется через заголовочный файл Dem_Dcm.h [SWS_Dem_00324].

Вызов и управление буфером

Вызов выполняется синхронно и определен как нереентерабельный (Non Reentrant) [SWS_Dem_00324]. В качестве выходного параметра функция принимает указатель PID4Evalue (тип uint8*), через который DEM сохраняет вычисленные данные [SWS_Dem_00324]. Вызывающий DCM должен предоставить для этого буфер подходящего размера [SWS_Dem_00324]. Требуемый размер буфера DCM определяет во время конфигурации на основе наибольшего встречающегося PID, чтобы соответствующим образом рассчитать размер общего PIDBuffer [SWS_Dem_00324].

Возвращаемые значения и обработка ошибок

Интерфейс всегда возвращает E_OK типа Std_ReturnType, так как возвращаемое значение E_NOT_OK согласно спецификации никогда не возникает [SWS_Dem_00324]. В объеме спецификации не указаны специфические коды ошибок для случая сбоя, а также сообщения об ошибках DET или DEM [SWS_Dem_00324].

Ограничения и доступность

API требуется исключительно в OBD-релевантных электронных блоках управления [SWS_Dem_00324]. Его доступность привязана к условию конфигурации DemGeneral.DemOBDSupport == DEM_OBD_MASTER_ECU; в других конфигурациях функция недоступна [SWS_Dem_00324].

Этот текст был создан ИИ; он не заменяет изучение спецификации AUTOSAR.

функция Dem_DcmReadDataOfPID91 [SWS_Dem_01187] 📄 PDF

Std_ReturnType Dem_DcmReadDataOfPID91 (uint8* PID91value);

Service to report the value of PID $91 computed by the Dem. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b21962c6ebc5 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_DcmReadDataOfPID91 (Service ID 0x6a) служит для передачи модулю DCM вычисленных модулем DEM данных параметра OBD PID $91 [SWS_Dem_01187]. Интерфейс объявляется через заголовочный файл Dem_Dcm.h и доступен исключительно в релевантных для OBD блоках управления ECU, в которых DemOBDSupport не сконфигурирован как DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_01187].

В качестве выходного параметра функции требуется указатель PID91value, ссылающийся на буфер, предоставленный DCM [SWS_Dem_01187]. Модуль DCM отвечает за предоставление этого буфера подходящего размера; требуемый размер определяется еще на этапе конфигурации по наибольшему PID для выделения буфера PIDBuffer [SWS_Dem_01187].

Функция специфицирована как нереентерабельная (Non Reentrant) и должна выполняться синхронно [SWS_Dem_01187]. Параллельный вызов из различных контекстов поэтому недопустим. Возвращаемое значение ошибки отсутствует: функция всегда возвращает E_OK в качестве Std_ReturnType, поскольку значение ошибки E_NOT_OK, согласно спецификации, никогда не возникает [SWS_Dem_01187].

Этот указание по использованию было сгенерировано автоматически и основано исключительно на данных спецификации AUTOSAR Classic R20-11.

функция Dem_DcmReadDataOfOBDFreezeFrame [SWS_Dem_00327] 📄 PDF

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

Gets data element per PID and index of the most important freeze frame being selected for the output of service $02. The function stores the data in the provided DestBuffer. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f57c1c183634 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_DcmReadDataOfOBDFreezeFrame считывает данные элемента данных для одного PID для наиболее важного стоп-кадра, выбранного для выдачи OBD-сервиса $02 [SWS_Dem_00327].

Контекст вызова и параметры

Вызов выполняется модулем DCM через заголовочный файл Dem_Dcm.h [SWS_Dem_00327]. В функцию передаются следующие параметры:

  • PID: идентификатор PID согласно ISO 15031-5 [SWS_Dem_00327].
  • DataElementIndexOfPID: отсчитываемый от нуля сквозной индекс элемента данных внутри PID. Порядок определяется непосредственно позицией элементов данных в структуре PID конфигурации DCM [SWS_Dem_00327], [SWS_Dem_00597].
  • DestBuffer: указатель на буфер, в который записывается элемент данных в шестнадцатеричном формате без информации заголовка [SWS_Dem_00327].
  • BufSize: служит входным и выходным параметром; при вызове содержит максимальную емкость буфера и возвращает количество фактически записанных байтов данных [SWS_Dem_00327].

Ограничения и обработка ошибок

Функция нереентерабельна (Non Reentrant) и доступна исключительно в электронных блоках управления с активированной поддержкой OBD (DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00327]. При успешном предоставлении данных возвращается E_OK, в противном случае — E_NOT_OK [SWS_Dem_00327]. Подавленный DTC невидим для этой функции опроса [SWS_Dem_01101]; предположительно, в таком случае функция возвращает E_NOT_OK. Вопрос Q-09c77cdccc138247 (открытый)

Этот текст был создан ИИ; определяющей является упомянутая спецификация.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmGetDTCOfOBDFreezeFrame [SWS_Dem_00624] 📄 PDF

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

Gets DTC by freeze frame record number. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f96309635c05 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная нереентерабельная функция Dem_DcmGetDTCOfOBDFreezeFrame считывает DTC для заданного номера записи Freeze Frame [SWS_Dem_00624]. Она служит главным образом DCM для вывода в рамках службы OBD $02 (PID $02), чтобы определить DTC наиболее релевантного выбранного Freeze Frame [SWS_Dem_00623].

Вызов и параметры

  • FrameNumber (IN): уникальный идентификатор записи Freeze Frame согласно ISO 15031-5. Значение 0x00 обозначает полный Freeze Frame OBD, остальные значения зарезервированы [SWS_Dem_00624].
  • DTCFormat (IN): желаемый формат вывода значения DTC [SWS_Dem_00624].
  • DTC (OUT): указатель на место в памяти для определенного кода неисправности в формате OBD [SWS_Dem_00624].

Возвращаемые значения и обработка ошибок

Функция возвращает E_OK, если DTC удалось успешно определить. Если подходящий DTC недоступен, вызов возвращает E_NOT_OK; в этом случае выходной параметр DTC не содержит допустимых данных [SWS_Dem_00624].

Условия и взаимодействие

Интерфейс доступен через заголовок Dem_Dcm.h и присутствует исключительно в блоках управления с поддержкой OBD (конфигурация DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT) [SWS_Dem_00624]. Подавленные DTC (suppressed DTCs) обрабатываются функцией так, как если бы совпадение отсутствовало, и невидимы для этого запроса [SWS_Dem_01101].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmGetAvailableOBDMIDs [SWS_Dem_00766] 📄 PDF

Std_ReturnType Dem_DcmGetAvailableOBDMIDs (uint8 Obdmid, uint32* Obdmidvalue);

Reports the value of a requested "availability-OBDMID" to the DCM upon a Service $06 request. Derived from that the tester displays the supported tests a mechanic can select from. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5b769d67b0cc Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция Dem_DcmGetAvailableOBDMIDs (Service-ID 0xa3) вызывается DCM, чтобы в рамках запроса службы OBD $06 считывать значение запрошенного OBDMID доступности [SWS_Dem_00766]. Через входной параметр Obdmid (тип uint8) вызывающая сторона передает стандартизированный идентификатор доступности, такой как $00, $20 или $40. DEM возвращает поддерживаемые идентификаторы тестов в виде битово-кодированной информации через 32-битный выходной указатель Obdmidvalue [SWS_Dem_00766]. Из этих данных диагностический тестер определяет, какие проверки отображать персоналу мастерской для выбора [SWS_Dem_00766].

Функция объявляется через заголовок Dem_Dcm.h. Она предназначена исключительно для блоков управления, имеющих отношение к OBD, и доступна в модуле только тогда, когда параметр конфигурации DemGeneral.DemOBDSupport установлен отличным от DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00766].

При безошибочной передаче доступности DTR интерфейс возвращает E_OK [SWS_Dem_00766]. Если функция вызывается до того, как DEM был полностью инициализирован или после его завершения работы, срабатывает код ошибки DEM_E_UNINIT [SWS_Dem_00173]. Также вызовы с недействительным указателем (DEM_E_PARAM_POINTER) или с некорректными значениями параметров (DEM_E_PARAM_DATA) приводят к ошибкам разработки согласно [SWS_Dem_00173]. В таких случаях ошибок в качестве возвращаемого значения, предположительно, будет возвращено E_NOT_OK. Вопрос Q-b42d268116fb8df7 (открытый)

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmGetNumTIDsOfOBDMID [SWS_Dem_00767] 📄 PDF

Std_ReturnType Dem_DcmGetNumTIDsOfOBDMID (uint8 Obdmid, uint8* numberOfTIDs);

Gets the number of TIDs per (functional) OBDMID. This can be used by the DCM to iteratively request for OBD/TID result data within a loop from 0....numberOfTIDs-1 API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 49e6e35927e4 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция Dem_DcmGetNumTIDsOfOBDMID (идентификатор сервиса 0xa4) объявляется через заголовочный файл Dem_Dcm.h [SWS_Dem_00767]. Она служит Diagnostic Communication Manager (DCM) для того, чтобы по запросу опрашивать количество назначенных тестовых идентификаторов (TID) для указанного функционального OBDMID [SWS_Dem_00761].

При вызове DCM передает идентификатор соответствующего OBDMID во входном параметре Obdmid и получает количество назначенных TID обратно через указатель numberOfTIDs [SWS_Dem_00767]. Это выходное значение служит для DCM верхней границей цикла со счетчиком от 0 до numberOfTIDs - 1, в котором затем последовательно через Dem_DcmGetDTRData запрашиваются отдельные значения результатов DTR, результаты тестов и предельные значения [SWS_Dem_00761] [SWS_Dem_00768].

Функция возвращает возвращаемое значение E_OK, если количество TID удалось успешно определить, и E_NOT_OK, если запрос завершился неудачно [SWS_Dem_00767]. Специфические ошибки разработки (DET) или детальные причины ошибок для случая сбоя в спецификации отдельно не указаны.

Вызов предусмотрен исключительно для OBD-релевантных электронных блоков управления. Интерфейс доступен в DEM только тогда, когда конфигурационный параметр DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00767].

Данное указание по использованию было сгенерировано ИИ и опирается исключительно на документы спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_DcmGetDTRData [SWS_Dem_00768] 📄 PDF

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

Reports a DTR data along with TID-value, UaSID, test result with lower and upper limit. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 18535af5aa7f Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция Dem_DcmGetDTRData служит Diagnostic Communication Manager (DCM) для запроса данных DTR (Diagnostic Test Results), включая значение TID, UaSID, а также текущий результат теста с нижним и верхним предельными значениями [SWS_Dem_00768]. Она доступна исключительно в электронных блоках управления с поддержкой OBD, если сконфигурировано DemOBDSupport != DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00768].

Использование и взаимодействие

DCM вызывает функцию для получения доступных данных DTR для определенного Obdmid и TIDindex [SWS_Dem_00762]. Запрос обычно выполняется итеративно по индексу TIDindex от 0 до numberOfTIDs - 1, при этом общее количество предварительно определяется через Dem_DcmGetNumTIDsOfOBDMID() [SWS_Dem_00768], [SWS_Dem_00762]. Через выходные параметры TIDvalue, UaSID, Testvalue, Lowlimvalue и Upplimvalue предоставляются значения для ответа тестеру [SWS_Dem_00768].

Обработка ошибок и граничные условия

Функция возвращает E_OK при успешном определении результатов DTR и E_NOT_OK в случае ошибки [SWS_Dem_00768]. Ошибка возникает, в частности, если связанное диагностическое событие недоступно:

  • Если событие установлено как недоступное, оно обрабатывается как несконфигурированное событие, и Dem_DcmGetDTRData завершается сбоем [SWS_Dem_01108].
  • Если функция вызывается для DTR, связанное через DemDtrEventRef событие которого сконфигурировано с DemEventAvailable == FALSE, DEM обязательно возвращает E_NOT_OK [SWS_Dem_01336]. В этом случае все выходные параметры не определены [SWS_Dem_01336].

Это указание по использованию было сгенерировано автоматически на основе требований спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmSetDTCFilter [SWS_Dem_00970] 📄 PDF

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

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: fedc82312f61 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция Dem_J1939DcmSetDTCFilter (service ID 0x90, объявлена в Dem_J1939Dcm.h) устанавливает атрибуты маски фильтра для выборки J1939-DTC для адресуемого через ClientId узла J1939 [SWS_Dem_00970], [SWS_Dem_00855]. В качестве критериев фильтрации служат фильтр статуса DTCStatusFilter (возможные значения: DEM_J1939DTC_ACTIVE, DEM_J1939DTC_PREVIOUSLY_ACTIVE, DEM_J1939DTC_PENDING, DEM_J1939DTC_PERMANENT или DEM_J1939DTC_CURRENTLY_ACTIVE), функциональная группа DTCKind, а также исходная память DTCOrigin [SWS_Dem_00970]. Через выходной параметр LampStatus вызов возвращает текущее комбинированное состояние ламп отфильтрованных DTC [SWS_Dem_00970], [SWS_Dem_00857]. Кроме того, внутренний счетчик сбрасывается на первое подходящее событие [SWS_Dem_00855]. Интерпретация: вызывающей стороной интерфейса, вероятно, является модуль J1939Dcm для подготовки диагностических операций чтения. Вопрос Q-5f25345851de686f (открытый)

Обработка ошибок и возвращаемые значения

В качестве возвращаемого значения функция выдает E_OK при успешной конфигурации фильтра или E_NOT_OK, если фильтр установить не удалось [SWS_Dem_00970]. Подавленные DTC не охватываются фильтрацией и обрабатываются так, как если бы критерий фильтра не выполнялся; они остаются невидимыми для запросов [SWS_Dem_01101].

Параллелизм и ограничения

Функция является реентерабельной для разных значений ClientId, но нереентерабельной для одной и той же ClientId [SWS_Dem_00970]. Поэтому следует избегать конкурирующих вызовов фильтрации к одной и той же памяти событий J1939.

Взаимодействие

Установка фильтра формирует основу для последующей обработки:

  • определение количества подходящих путей ошибок через Dem_J1939DcmGetNumberOfFilteredDTC [SWS_Dem_00855], [SWS_Dem_00874], [SWS_Dem_00972],
  • итеративное считывание подходящих событий через Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00855], [SWS_Dem_00875], а также
  • предоставление количества активных или ранее активных DTC для сообщений о готовности (DM05) через Dem_J1939DcmReadDiagnosticReadiness1 [SWS_Dem_00909].

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_J1939DcmGetNumberOfFilteredDTC [SWS_Dem_00972] 📄 PDF

Std_ReturnType Dem_J1939DcmGetNumberOfFilteredDTC (uint16* NumberOfFilteredDTC, uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 79d994fe5d97 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция [SWS_Dem_00972] асинхронно определяет количество DTC J1939, которые соответствуют критериям фильтрации, ранее заданным с помощью Dem_J1939DcmSetDTCFilter в первичной памяти событий переданного ClientId ([SWS_Dem_00874]). Предварительный вызов Dem_J1939DcmSetDTCFilter обязателен, поскольку он устанавливает атрибуты маски фильтра и сбрасывает внутренний счетчик на первое событие ([SWS_Dem_00855]).

Результат подсчета предоставляется через выходной параметр NumberOfFilteredDTC. Для процесса и возвращаемых значений действуют следующие правила:

  • Успех: как только общее число подходящих DTC полностью определено, функция возвращает E_OK ([SWS_Dem_00874]).
  • Прерывание: если процесс поиска приходится прервать из-за внутренних ограничений, функция возвращает DEM_PENDING. В этом случае выходной параметр еще не обязан быть действительным; последующий вызов возобновляет определение после прерванного элемента ([SWS_Dem_00874]).
  • Коды ошибок: спецификация предусматривает, кроме того, значения статуса DEM_NO_SUCH_ELEMENT и DEM_BUFFER_TOO_SMALL ([SWS_Dem_00972]).

Что касается видимости, [SWS_Dem_01101] предписывает, что подавленные ошибки (suppressed DTCs) должны обрабатываться так, как если бы критерий фильтрации не выполнялся. Функция определена как неревходабельная ([SWS_Dem_00972]), поэтому одновременных вызовов необходимо избегать.

Это указание по использованию создано ИИ и обобщает ключевые аспекты спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmGetNextFilteredDTC [SWS_Dem_00973] 📄 PDF

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

Gets the next filtered J1939 DTC.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c6cbd3422fd3 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Асинхронная и нереентерабельная функция Dem_J1939DcmGetNextFilteredDTC (Service-ID 0x92) считывает следующий отфильтрованный DTC J1939 из памяти событий J1939, адресуемой через ClientId [SWS_Dem_00973]. Она объявлена через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00973].

Если функция находит событие, соответствующее критерию фильтрации, она возвращает E_OK и предоставляет через выходные параметры соответствующий J1939DTC, а также сопутствующий OccurenceCounter [SWS_Dem_00877], [SWS_Dem_00973]. Если счётчик возникновения превышает 126 (0x7E), возвращаемое значение строго ограничивается величиной 126 (0x7E) [SWS_Dem_00877].

Если процесс поиска должен быть прерван из-за внутренних ограничений или особенностей реализации, функция возвращает DEM_PENDING [SWS_Dem_00877], [SWS_Dem_00973]. В этом случае выходные параметры не содержат достоверных данных; следующий вызов возобновляет поиск непосредственно после прерванного элемента [SWS_Dem_00877]. Если других подходящих элементов нет, возвращаемым значением является DEM_NO_SUCH_ELEMENT; если буфер слишком мал, возвращается DEM_BUFFER_TOO_SMALL [SWS_Dem_00973].

Подавленные диагностические события (suppressed DTCs) невидимы для функции запроса; они обрабатываются Dem_J1939DcmGetNextFilteredDTC так, как если бы критерий фильтра не выполнялся [SWS_Dem_01101].

Этот текст сгенерирован автоматически с помощью ИИ и не заменяет официальную спецификацию AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmFirstDTCwithLampStatus [SWS_Dem_00974] 📄 PDF

void Dem_J1939DcmFirstDTCwithLampStatus (uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 7183056cd60e Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронный интерфейс Dem_J1939DcmFirstDTCwithLampStatus инициализирует фильтрацию на первый подходящий диагностический код неисправности (DTC) для ответа DM31 конкретного узла [SWS_Dem_00974]. Единственным входным параметром служит ClientId типа uint8, с помощью которого адресуется соответствующая память событий J1939 [SWS_Dem_00974]. Функция не имеет ни входных, ни выходных параметров и не возвращает значения (void) [SWS_Dem_00974]. Она объявлена через заголовочный файл Dem_J1939Dcm.h с Service-ID 0x93 [SWS_Dem_00974]. Интерпретация: предполагается, что функция вызывается преимущественно модулем J1939Dcm для инициализации фильтрации перед передачей сообщений о статусе ламп DM31. Вопрос Q-064513be4f06584b (открытый)

Логика фильтрации и взаимодействие

Каждый вызов функции сбрасывает внутренний счётчик на первое событие, которому для указанного ClientId назначен J1939DTC [SWS_Dem_00880]. В отношении статуса диагностических событий спецификация предписывает, что подавленный DTC (suppressed DTC) должен оставаться невидимым для функций запроса DCM [SWS_Dem_01101]. Соответственно, Dem_J1939DcmFirstDTCwithLampStatus обрабатывает подавленные DTC так, как если бы критерий фильтра не был выполнен [SWS_Dem_01101].

Параллелизм и ограничения

Что касается параллельного выполнения, интерфейс реентерабелен для вызовов с различными значениями ClientId, но нереентерабелен для одного и того же значения ClientId [SWS_Dem_00974]. Следовательно, параллельные запросы с одинаковыми идентификаторами клиентов к одной и той же памяти событий J1939 недопустимы.

Этот текст сгенерирован автоматически ИИ-ассистентом курирования.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmGetNextDTCwithLampStatus [SWS_Dem_00975] 📄 PDF

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

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 48ed4a1205b0 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция Dem_J1939DcmGetNextDTCwithLampStatus выполняется синхронно и является неревходабельной ([SWS_Dem_00975]). Она служит в рамках диагностической коммуникации J1939 (DM31) для итеративного запроса следующего отфильтрованного DTC J1939 вместе с соответствующим статусом ламп и счетчиком событий (OccurenceCounter) из памяти событий, адресуемой через ClientId ([SWS_Dem_00975]). Итерация предполагает, что память событий была предварительно подготовлена с помощью Dem_J1939DcmFirstDTCwithLampStatus ([SWS_Dem_00881]).

Последовательность выполнения и возвращаемые значения

Каждый вызов выполняет поиск в памяти следующего события с назначенным DTC J1939 ([SWS_Dem_00881]). Подавленные DTC (suppressed DTC) обрабатываются как неподходящие события и пропускаются ([SWS_Dem_01101]).

  • E_OK: подходящее событие найдено. Параметры LampStatus, J1939DTC и OccurenceCounter содержат действительные значения ([SWS_Dem_00882]). Интерпретация: условие DEM_FILTERED_OK, указанное в спецификации параметров, вероятно, относится к E_OK, поскольку DEM_FILTERED_OK не объявлен в качестве возвращаемого значения для этой функции ([SWS_Dem_00975]). Вопрос Q-5284fb30b98babf6 (открытый)
  • DEM_PENDING: внутренний поиск пришлось прервать из-за ограничений реализации. Выходные параметры не содержат действительных данных, и следующий вызов возобновляет поиск за прерванным элементом ([SWS_Dem_00882]).
  • DEM_NO_SUCH_ELEMENT: в памяти больше нет подходящих событий; выходные параметры недействительны ([SWS_Dem_00881]).
  • DEM_BUFFER_TOO_SMALL: переданный буфер слишком мал ([SWS_Dem_00975]).

Статус ламп и диапазон значений

Для определения статуса ламп DEM проверяет бит состояния UDS 7 (WarningIndicator), а также соответствующую ссылку на индикатор: Malfunction Indicator Lamp ([SWS_Dem_00883]), Red Stop Lamp ([SWS_Dem_00887]) и Amber Warning Lamp ([SWS_Dem_00891]) устанавливаются в Lamp On, если бит активен и ссылка назначена; в противном случае они имеют значение Lamp Off. Значение OccurenceCounter при показаниях счетчика более 126 (0x7F) ограничивается ровно до 126 ([SWS_Dem_00882]).

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_J1939DcmClearDTC [SWS_Dem_00976] 📄 PDF

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

Clears the status of all event(s) related to the specified DTC(s), as well as all associated event memory entries for these event(s).

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cb1db17652c2 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Функция Dem_J1939DcmClearDTC ([SWS_Dem_00976]) предоставляется модулю J1939Dcm через заголовочный файл Dem_J1939Dcm.h для удаления всех активных или ранее активных диагностических кодов неисправностей (DTC) из памяти событий ([SWS_Dem_00878]). Вызов работает асинхронно. В качестве входных параметров интерфейс ожидает тип фильтра DTCTypeFilter для определения удаляемых DTC, DTCOrigin для выбора исходной памяти, а также ClientId для адресации памяти событий J1939.

Обработка ошибок и возвращаемые значения

Результат выполнения сигнализируется через возвращаемый тип Std_ReturnType:

  • E_OK: операция удаления успешно завершена.
  • DEM_PENDING: очистка выполняется; вызывающая сторона должна вызвать функцию повторно позднее.
  • DEM_CLEAR_BUSY: другой клиент одновременно выполняет операцию удаления; операция не запускается и должна быть повторена позже.
  • DEM_WRONG_DTC: выбранный DTC не существует в выбранном формате или удаление ограничено группами согласно конфигурации.
  • DEM_WRONG_DTCORIGIN: указанная исходная память не существует.
  • DEM_CLEAR_FAILED или DEM_CLEAR_MEMORY_ERROR: удаление завершилось сбоем либо возникла ошибка при удалении области памяти (например, при неполном удалении энергонезависимой памяти).

Параллелизм и ограничения

Согласно [SWS_Dem_00976] функция является реентерабельной для различных Client-ID, однако нереентерабельной для одного и того же ClientId. Поэтому параллельные вызовы удаления через идентичные клиенты недопустимы.

Взаимодействие

Согласно [SWS_Dem_00879] удаление сбрасывает статус всех затронутых событий и удаляет соответствующие записи памяти событий. Кроме того, операция удаления согласно [SWS_Dem_00878] инициирует повторную инициализацию затронутых SW-C и BSW-модулей в соответствии с [SWS_Dem_00003].

Этот текст был автоматически сгенерирован на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00977] 📄 PDF

Std_ReturnType Dem_J1939DcmSetFreezeFrameFilter (Dem_J1939DcmSetFreezeFrameFilterType FreezeFrameKind, uint8 ClientId);

The function sets the FreezeFrame filter for a specific node.

СОЗДАНО ИИ не проверено Модель: 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].

Этот текст сгенерирован ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность 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.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0611ff42285c Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Асинхронная и нереентерабельная функция Dem_J1939DcmGetNextFreezeFrame пошагово считывает данные Freeze Frame для конкретной памяти событий [SWS_Dem_00978]. Итерация ориентируется на критерии фильтрации FreezeFrameKind и ClientId, предварительно установленные через Dem_J1939DcmSetFreezeFrameFilter [SWS_Dem_00900]. Полезные данные копируются в буфер DestBuffer (для Expanded Freeze Frames без информации SPN и с заполнением нулями неиспользуемых битов), в то время как BufSize передаёт размер буфера и возвращает фактически записанное количество байтов [SWS_Dem_00978], [SWS_Dem_00903]. Кроме того, вызов возвращает соответствующий J1939DTC, а также OccurenceCounter, который при значениях более 126 ограничивается значением 0x7F [SWS_Dem_00903].

Возвращаемые значения и обработка ошибок

Возвращаемые значения управляют ходом итерации:

  • E_OK: набор данных успешно найден и передан [SWS_Dem_00978], [SWS_Dem_00903]. Упоминание DEM_FILTERED_OK в описании параметров, по всей видимости, следует понимать как редакционный синоним для E_OK. Вопрос Q-e941066640c694b9 (открытый)
  • DEM_NO_SUCH_ELEMENT: больше нет наборов данных, соответствующих критериям фильтрации [SWS_Dem_00900].
  • DEM_PENDING: внутренний поиск был прерван; последующий вызов возобновляет поиск с места прерывания [SWS_Dem_00902].
  • DEM_BUFFER_TOO_SMALL или DEM_FILTERED_BUFFER_TOO_SMALL: размера буфера недостаточно; операция прерывается без переноса данных [SWS_Dem_00978], [SWS_Dem_00903].

При передаче неподдерживаемого типа фильтра функция сообщает об ошибке DET DEM_E_WRONG_CONDITION; допустимыми являются исключительно DEM_J1939DCM_FREEZEFRAME и DEM_J1939DCM_EXPANDED_FREEZEFRAME [SWS_Dem_00901]. Если возвращаемое значение не равно успеху, выходные параметры не содержат корректных данных [SWS_Dem_00978], [SWS_Dem_00900], [SWS_Dem_00902], [SWS_Dem_00903].

Ограничения и взаимодействие

Подавленные DTC игнорируются запросом и обрабатываются как несоответствующие критериям фильтра [SWS_Dem_01101].

Это указание по использованию сгенерировано автоматически и опирается исключительно на спецификацию AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmGetNextSPNInFreezeFrame [SWS_Dem_00979] 📄 PDF

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

Gets next SPN.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 92b02fdbb0d3 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Функция Dem_J1939DcmGetNextSPNInFreezeFrame пошагово считывает следующий SPN (Suspect Parameter Number) из расширенного Freeze Frame ([SWS_Dem_00979]). Каждый вызов выполняет итерацию к следующему элементу определения SPN для памяти событий, адресуемой через ClientId ([SWS_Dem_00904]). При успешном нахождении вызов возвращает E_OK, а также найденный SPN через SPNSupported и длину его данных через SPNDataLength ([SWS_Dem_00979], [SWS_Dem_00907]).

Асинхронная обработка и возвращаемые значения

Операция специфицирована как асинхронная ([SWS_Dem_00979]). Если процесс поиска должен быть прерван из-за внутренних ограничений, функция возвращает DEM_PENDING; в этом случае выходные параметры не обязательно валидны, а последующий вызов продолжает поиск с места прерывания ([SWS_Dem_00905]). Если в определении больше нет SPN, возвращается DEM_NO_SUCH_ELEMENT, при этом выходные параметры также не обязательно являются валидными ([SWS_Dem_00904]). Если предоставленного буфера недостаточно, интерфейс возвращает DEM_BUFFER_TOO_SMALL ([SWS_Dem_00979]).

Обработка ошибок и параллелизм

Если запрошен неподдерживаемый тип Freeze Frame, модуль генерирует ошибку DET DEM_E_WRONG_CONDITION; допустимым является исключительно Dem_SPNsInExpandedFreezeFrame ([SWS_Dem_00906]). Поскольку функция определена как нереентерабельная ([SWS_Dem_00979]), она не должна вызываться параллельно для одного и того же контекста. Заголовочный файл Dem_J1939Dcm.h предоставляет данный интерфейс ([SWS_Dem_00979]).

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmSetRatioFilter [SWS_Dem_00980] 📄 PDF

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

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 618098c9083d Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_J1939DcmSetRatioFilter устанавливает фильтр соотношений для конкретного узла J1939 и инициализирует фильтрацию соотношений IUMPR в соответствии с [SWS_Dem_00980]. При этом она сбрасывает внутренний счётчик на первый действительный SPN с определённым DemRatioId, чтобы подготовить последующий пошаговый опрос через Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00912].

Через выходные параметры функция предоставляет вышестоящие значения счётчиков:

  • IgnitionCycleCounter: возвращает счётчик циклов зажигания в соответствии с SAE J1939-73 (раздел 5.7.20.1) [SWS_Dem_00912].
  • OBDMonitoringConditionsEncountered: возвращает счётчик наступивших условий мониторинга OBD в соответствии с SAE J1939-73 (раздел 5.7.20.2), определённый CARB как General Denominator [SWS_Dem_00912].
  • ClientId: идентифицирует вызывающий клиент для адресации памяти событий J1939 [SWS_Dem_00980].

С точки зрения параллелизма функция является реентерабельной для различных значений ClientId, однако нереентерабельна для одного и того же ClientId [SWS_Dem_00980]. Интерпретация: вызов обычно должен выполняться синхронно из контекста выполнения J1939 Diagnostic Communication Manager (J1939Dcm) для запроса диагностических данных IUMPR. Вопрос Q-e577651b88f64132 (открытый) При успешной установке фильтра функция возвращает E_OK; в случае сбоя установки возвращается E_NOT_OK [SWS_Dem_00980].

При взаимодействии с диагностическими событиями действует правило: подавленные DTC не должны быть видны для таких функций запроса, как Dem_J1939DcmSetRatioFilter, и должны обрабатываться так, как если бы фильтр не подошел [SWS_Dem_01101].

Это указание по использованию было автоматически сгенерировано на основе AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmGetNextFilteredRatio [SWS_Dem_00981] 📄 PDF

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

Gets the next filtered Ratio.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a599c5bc4d30 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная и нереентерабельная функция Dem_J1939DcmGetNextFilteredRatio ([SWS_Dem_00981]) служит для итеративного считывания следующего отфильтрованного соотношения (Ratio) IUMPR. Через параметр ClientId адресуется соответствующая память событий J1939. При успешном вызове функция через выходные параметры SPN, Numerator и Denominator возвращает Suspect Parameter Number, а также числитель и знаменатель соответствующего системного монитора ([SWS_Dem_00981]).

Порядок выполнения и взаимодействие

Для корректной итерации фильтр необходимо предварительно инициализировать с помощью Dem_J1939DcmSetRatioFilter ([SWS_Dem_00912]). Этот вызов сбрасывает внутренний счетчик на первый действительный SPN с определенным DemRatioId, на который опираются последующие вызовы Dem_J1939DcmGetNextFilteredRatio. Подавленный DTC не виден для запроса и обрабатывается так, как если бы фильтр не подошел ([SWS_Dem_01101]).

Возвращаемые значения и обработка ошибок

Согласно [SWS_Dem_00981] определены следующие возвращаемые значения:

  • E_OK: операция прошла успешно. Только в этом случае SPN, Numerator и Denominator содержат действительные данные (упоминание DEM_FILTERED_OK в описании параметров, вероятно, следует интерпретировать как E_OK). Вопрос Q-57774bbc88fe3c0b (открытый)
  • DEM_NO_SUCH_ELEMENT: больше нет подходящих элементов.
  • DEM_PENDING: операция прошла успешно, однако результат еще не готов.
  • DEM_BUFFER_TOO_SMALL: переданный буфер слишком мал.

Параллелизм

Поскольку функция объявлена как нереентерабельная ([SWS_Dem_00981]), ее нельзя вызывать параллельно для одного и того же ClientId.

Этот текст был сгенерирован ИИ и служит в качестве справочного руководства. Преимущественную силу имеют упомянутые спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00982] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness1 (Dem_J1939DcmDiagnosticReadiness1Type* DataValue, uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: 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 и имеет Service-ID 0x9b [SWS_Dem_00982].

Использование и параметры

Вызов выполняется синхронно и использует следующие параметры функции [SWS_Dem_00982]:

  • ClientId (IN, uint8): идентифицирует адресуемую память событий J1939 (J1939 event memory) [SWS_Dem_00982].
  • DataValue (OUT, указатель на Dem_J1939DcmDiagnosticReadiness1Type): указывает на буфер размером 8 байт, в который DEM записывает вычисленное содержимое Diagnostic Readiness 1 (DM05) [SWS_Dem_00982].

Возвращаемые значения и обработка ошибок

Функция возвращает статус типа Std_ReturnType [SWS_Dem_00982]:

  • E_OK: сервис был успешно выполнен, и данные готовности были помещены в выходной буфер [SWS_Dem_00982].
  • E_NOT_OK: операция завершилась сбоем [SWS_Dem_00982]. Специфические коды ошибок, события DEM или сообщения DET в спецификации функции не указаны [SWS_Dem_00982].

Параллелизм и ограничения

Что касается одновременного доступа, сервис специфицирован как ревходабельный для различных ClientId, однако явно определен как неревходабельный для одного и того же ClientId [SWS_Dem_00982].

Это указание по использованию было создано автоматически на основе данных спецификации AUTOSAR R20-11.

функция Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00983] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness2 (Dem_J1939DcmDiagnosticReadiness2Type* DataValue, uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: da1e3ecb89af Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция Dem_J1939DcmReadDiagnosticReadiness2 (Service-ID 0x9c) служит для запроса вычисленного DEM значения Diagnostic Readiness 2 (DM21) [SWS_Dem_00983]. Интерфейс предоставляется через заголовочный файл Dem_J1939Dcm.h [SWS_Dem_00983].

Для вызова определены два параметра [SWS_Dem_00983]:

  • ClientId (вход): адресует соответствующую память событий J1939 [SWS_Dem_00983].
  • DataValue (выход): указатель на 8-байтовый буфер типа Dem_J1939DcmDiagnosticReadiness2Type для приема вычисленных данных DM21 [SWS_Dem_00983].

В качестве возвращаемого значения функция выдает Std_ReturnType; при успешном запросе возвращается E_OK, тогда как в случае ошибки сообщается E_NOT_OK [SWS_Dem_00983]. Специфические причины ошибок не указаны отдельно; вызывающей стороне при E_NOT_OK, вероятно, следует исходить из того, что буфер не содержит действительных данных. Вопрос Q-97b94d15a8634712 (открытый)

Что касается параллелизма, сервис является ревходабельным для различных значений ClientId, однако неревходабелен для одного и того же ClientId [SWS_Dem_00983]. Поэтому одновременные вызовы для одного и того же ClientId должны быть сериализованы в вызывающем контексте.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция Dem_J1939DcmReadDiagnosticReadiness [SWS_Dem_00770] 📄 PDF

Std_ReturnType Dem_J1939DcmReadDiagnosticReadiness3 (Dem_J1939DcmDiagnosticReadiness3Type* DataValue, uint8 ClientId);

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

СОЗДАНО ИИ не проверено Модель: 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): указатель на 8-байтовый буфер типа Dem_J1939DcmDiagnosticReadiness3Type для приема вычисленных данных DM26 [SWS_Dem_00770].

В качестве возвращаемого значения функция возвращает E_OK, если операция была успешной, или E_NOT_OK при ошибке во время выполнения [SWS_Dem_00770].

С точки зрения параллелизма функция является ревходабельной для различных значений ClientId, однако неревходабельна для идентичных значений ClientId [SWS_Dem_00770]. Поэтому параллельные вызовы для одного и того же клиента должны исключаться или синхронизироваться вызывающей стороной.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

функция Dem_SetEventDisabled [SWS_Dem_00312] 📄 PDF

Std_ReturnType Dem_SetEventDisabled (Dem_EventIdType EventId);

Service for reporting the event as disabled to the Dem for the PID $41 computation. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_RepIUMPRFaultDetect [SWS_Dem_00313] 📄 PDF

Std_ReturnType Dem_RepIUMPRFaultDetect (Dem_RatioIdType RatioID);

Service for reporting that faults are possibly found because all conditions are fullfilled. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8fa8b5c52739 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция Dem_RepIUMPRFaultDetect служит для сообщения о том, что OBD-монитор выполнил все условия выполнения и, следовательно, мог бы обнаружить потенциальные неисправности [SWS_Dem_00313]. Интерфейс предоставляется через заголовок Dem.h и доступен исключительно в блоках управления с поддержкой OBD, если DemOBDSupport не сконфигурирован как DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00313], [SWS_Dem_00360].

В качестве параметра передается идентификатор RatioID типа Dem_RatioIdType, если выбрана опция интерфейса «API» [SWS_Dem_00313]. При успешной фиксации результата IUMPR функция возвращает статус E_OK [SWS_Dem_00313].

Параллелизм и поведение при ошибках

В отношении параллелизма служба реентерабельна для различных идентификаторов RatioID, однако нереентерабельна для одного и того же значения RatioID [SWS_Dem_00313]. Поэтому вызывающая сторона должна избегать параллельных вызовов с идентичным идентификатором.

Если соответствующее событие устанавливается как недоступное, модуль DEM обрабатывает его так, как если бы оно не было сконфигурировано в системе [SWS_Dem_01108]. Эта деактивация также явно затрагивает Dem_RepIUMPRFaultDetect [SWS_Dem_01108]; интерпретация: в этом состоянии вызов аналогично остальным затронутым API статуса, предположительно, вернет E_NOT_OK. Вопрос Q-6d1775c9bff08f42 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_SetIUMPRDenCondition [SWS_Dem_00733] 📄 PDF

Std_ReturnType Dem_SetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType ConditionStatus);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to forward the condition status to a Dem of a particular ECU. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_GetIUMPRDenCondition [SWS_Dem_00734] 📄 PDF

Std_ReturnType Dem_GetIUMPRDenCondition (Dem_IumprDenomCondIdType ConditionId, Dem_IumprDenomCondStatusType* ConditionStatus);

In order to communicate the status of the (additional) denominator conditions among the OBD relevant ECUs, the API is used to retrieve the condition status from the Dem of the ECU where the conditions are computed. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_RepIUMPRDenRelease [SWS_Dem_00315] 📄 PDF

Std_ReturnType Dem_RepIUMPRDenRelease (Dem_RatioIdType RatioID);

Service is used to release a denominator of a specific monitor. API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 22348b6c2b61 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция Dem_RepIUMPRDenRelease служит для разрешения знаменателя конкретного монитора по физическим причинам, таким как достижение определенных температурных условий или минимальной активности [SWS_Dem_00315]. DEM предоставляет этот интерфейс для программных компонентов (SW-C), имеющих отношение к IUMPR, чтобы целенаправленно управлять знаменателем, относящимся к соответствующему RatioID [SWS_Dem_00308].

Предоставление и поведение функции подчиняются фиксированным условиям конфигурации и времени выполнения:

  • Доступность и конфигурация: API доступен исключительно в блоках управления, имеющих отношение к OBD, если DemOBDSupport сконфигурирован отличным от DEM_OBD_NO_OBD_SUPPORT [SWS_Dem_00315]. Кроме того, интерфейс для разрешения при специальных условиях предоставляется в том случае, если DemIUMPRDenGroup сконфигурирован как DEM_IUMPR_DEN_PHYS_API [SWS_Dem_00362].
  • Параметры и возвращаемые значения: в качестве входного параметра передается идентификатор RatioID. Функция возвращает E_OK, если статус знаменателя IUMPR был успешно сообщен, в противном случае E_NOT_OK [SWS_Dem_00315].
  • Поведение при ошибках для неактивных событий: если соответствующее событие задано как недоступное, оно обрабатывается так, как если бы оно не было сконфигурировано в системе; вызов Dem_RepIUMPRDenRelease непосредственно затронут этим и возвращает E_NOT_OK [SWS_Dem_01108].

Благодаря реентерабельному исполнению функция при необходимости может вызываться параллельно из различных контекстов SW-C [SWS_Dem_00315].

Этот текст был создан ИИ и не заменяет официальную спецификацию AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_SetPtoStatus [SWS_Dem_00627] 📄 PDF

Std_ReturnType Dem_SetPtoStatus (boolean PtoStatus);

API is needed in OBD-relevant ECUs only API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 047a07d76a94 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная функция Dem_SetPtoStatus ([SWS_Dem_00627]) служит для установки статуса механизма отбора мощности (Power Take-Off, PTO) в Diagnostic Event Manager (DEM). Интерфейс объявлен в заголовочном файле Dem.h и имеет идентификатор сервиса 0x79 ([SWS_Dem_00627]).

  • Параметры: входной параметр PtoStatus (тип boolean) передает статус механизма отбора мощности, где TRUE означает активен, а FALSE — неактивен ([SWS_Dem_00627]). Входные/выходные или выходные параметры отсутствуют.
  • Возвращаемое значение: тип возвращаемого значения — Std_ReturnType. Функция возвращает E_OK, если новый статус PTO был принят DEM, и E_NOT_OK во всех остальных случаях ([SWS_Dem_00627]).

Параллелизм и ограничения

Функция работает синхронно и специфицирована как нереентерабельная (Non Reentrant) ([SWS_Dem_00627]).

Системный контекст и конфигурация

Интерфейс требуется исключительно в OBD-релевантных электронных блоках управления ([SWS_Dem_00627]). Он доступен только тогда, когда конфигурационный параметр DemGeneral.DemOBDSupport не установлен в DEM_OBD_NO_OBD_SUPPORT ([SWS_Dem_00627]).

Этот текст был сгенерирован ИИ и основан на спецификациях модуля DEM в AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция Dem_ReadDataOfPID01 [SWS_Dem_01167] 📄 PDF

Std_ReturnType Dem_ReadDataOfPID01 (uint8* PID01value);

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 24f93781d796 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и параметры

Синхронная функция Dem_ReadDataOfPID01 (Service ID 0xb3) служит для запроса вычисленного модулем Diagnostic Event Manager (DEM) значения PID $01 [SWS_Dem_01167]. Интерфейс предоставляется через заголовочный файл Dem.h [SWS_Dem_01167]. В качестве выходного параметра функция ожидает PID01value, который передается как указатель на буфер [SWS_Dem_01167]. Этот буфер обязательно должен быть выделен и предоставлен вызывающим приложением с фиксированным размером 4 байта для приема вычисленных данных [SWS_Dem_01167].

Обработка ошибок и возвращаемые значения

В качестве типа возвращаемого значения интерфейс формально предоставляет Std_ReturnType, однако, согласно спецификации, без исключений возвращает E_OK [SWS_Dem_01167]. Значение ошибки E_NOT_OK не возникает никогда [SWS_Dem_01167]. Для этого интерфейса не специфицированы ни специфические коды ошибок, ни сообщения в DET или DEM [SWS_Dem_01167].

Параллелизм и ограничения

Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dem_01167]. Поэтому вызывающие компоненты должны гарантировать отсутствие одновременных вызовов. Кроме того, API функционально ограничен и требуется исключительно в ECU с релевантностью к OBD [SWS_Dem_01167].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.

функция Dem_GetDataOfPID21 [SWS_Dem_01093] 📄 PDF

Std_ReturnType Dem_GetDataOfPID21 (uint8* PID21value);

Service to get the value of PID $21 from the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral/DemGeneral OBD.DemOBDCentralizedPID21Handling)} == true) && ({ecuc(Dem/DemGeneral.Dem OBDSupport)} == DEM_OBD_MASTER_ECU)

функция Dem_SetDataOfPID21 [SWS_Dem_00735] 📄 PDF

Std_ReturnType Dem_SetDataOfPID21 (const uint8* PID21value);

Service to set the value of PID $21 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_SetDataOfPID31 [SWS_Dem_00736] 📄 PDF

Std_ReturnType Dem_SetDataOfPID31 (const uint8* PID31value);

Service to set the value of PID $31 in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_SetDataOfPID4D [SWS_Dem_00737] 📄 PDF

Std_ReturnType Dem_SetDataOfPID4D (const uint8* PID4Dvalue);

Service to set the value of PID $4D in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_SetDataOfPID4E [SWS_Dem_00738] 📄 PDF

Std_ReturnType Dem_SetDataOfPID4E (const uint8* PID4Evalue);

Service to set the value of PID $4E in the Dem by a software component. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_GetCycleQualified [SWS_Dem_00740] 📄 PDF

Std_ReturnType Dem_GetCycleQualified (uint8 OperationCycleId, boolean* isQualified);

Returns the qualification state of the dependent operation cycle. API Availability: This API will be available only if any of the ({ecuc(Dem/DemGeneral/Dem OperationCycle.DemLeadingCycleRef)} != NULL)

функция Dem_SetCycleQualified [SWS_Dem_91001] 📄 PDF

Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);

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

функция Dem_GetDTCSeverityAvailabilityMask [SWS_Dem_01168] 📄 PDF

Std_ReturnType Dem_GetDTCSeverityAvailabilityMask (uint8 ClientId, Dem_DTCSeverityType* DTCSeverityMask);

Gets the DTC Severity availability mask.

функция Dem_GetB1Counter [SWS_Dem_01169] 📄 PDF

Std_ReturnType Dem_GetB1Counter (uint16* B1Counter);

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

функция Dem_SetDTR [SWS_Dem_00765] 📄 PDF

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

Reports a DTR result with lower and upper limit. The internal eventstatus serves as master whether the DTR values are forwarded or ignored, also taking the DTRUpdateKind into account. The EventId that is related to the DTR is assigned per configuration (and derived from ServiceNeeds). Processing takes enable/storage conditions into account. API is needed in OBD-relevant ECUs only. API Availability: This API will be available only if ({ecuc(Dem/DemGeneral.DemOBDSupport)} != DEM_OBD_NO_OBD_SUPPORT)

функция Dem_CallbackEventSyncStorageProcessed [SWS_Dem_91042] 📄 PDF

Std_ReturnType Dem_CallbackEventSyncStorageProcessed (void);

Called by the Dem after the internal processing of Dem_SetEventFailedWithSyncFreezeFrame is done and a further call of Dem_SetEventFailedWithSyncFreezeFrame with the same event ID can be processed by the Dem. Tags: atp.Status=draft

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: d0c8e2a4847f Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция обратного вызова Dem_CallbackEventSyncStorageProcessed синхронно вызывается Diagnostic Event Manager (DEM), как только завершается внутренняя обработка Dem_SetEventFailedWithSyncFreezeFrame ([SWS_Dem_91042]). Она уведомляет вызывающий компонент о том, что дальнейший вызов Dem_SetEventFailedWithSyncFreezeFrame для того же ID события может быть обработан DEM ([SWS_Dem_91042]).

Для использования и интеграции действуют следующие свойства интерфейса и выполнения:

  • Параметры и возвращаемое значение: интерфейс не имеет ни входных, ни выходных, ни входных/выходных параметров ([SWS_Dem_91042]). Тип возвращаемого значения — Std_ReturnType, при этом из соображений совместимости с RTE допустимо и возвращается исключительно возвращаемое значение E_OK ([SWS_Dem_91042]).
  • Параллелизм: функция специфицирована как ревходабельная ([SWS_Dem_91042]).
  • Обработка ошибок: специфических кодов ошибок или сообщений в систему отслеживания ошибок разработки (DET) не предусмотрено ([SWS_Dem_91042]).

Что касается взаимодействия и конфигурации, существует строгое предварительное условие: Dem_CallbackEventSyncStorageProcessed разрешается конфигурировать исключительно для диагностических событий, параметр DemEventReportingType которых установлен в IMMEDIATE_FAIL_AND_SYNCHRONOUS_PROCESSING ([SWS_Dem_01356]). Кроме того, в релизе R20-11 этот элемент снабжен аннотацией со статусом draft ([SWS_Dem_91042], [SWS_Dem_01356]).

Это указание по использованию было сгенерировано автоматически на основе требований спецификации.

Руководство разработчика реализации в подготовке (сложность I2)

функция Dem_MainFunction [SWS_Dem_00266] 📄 PDF

void Dem_MainFunction (void);

Processes all not event based Dem internal functions.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0be629ee3c44 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Базовая функция Dem_MainFunction имеет сигнатуру void Dem_MainFunction(void) с Service-ID 0x55 и предоставляется через заголовочный файл SchM_Dem.h ([SWS_Dem_00266]). Она не принимает параметров, не возвращает значения и служит для выполнения всех не основанных на событиях внутренних процессов модуля DEM ([SWS_Dem_00266], [SWS_Dem_00125]).

Для контекста вызова и обработки ошибок действуют особые исключения в жизненном цикле модуля: если обнаружение ошибок разработки DemDevErrorDetect установлено в TRUE, вызов регулярных интерфейсов DEM до полной инициализации приводит к сообщению об ошибке DEM_E_UNINIT; однако Dem_MainFunction явно исключена из этой генерации ошибок ([SWS_Dem_00124]). Аналогичным образом после вызова Dem_Shutdown функция освобождается от сообщения об ошибке DEM_E_UNINIT до тех пор, пока Dem_Init не будет вызван повторно ([SWS_Dem_00368]).

Во взаимодействии с памятью ошибок функция решающим образом управляет сбором и буферизацией диагностических данных:

  • Если DemEnvironmentDataCapture сконфигурирован в DEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING (применительно к DemPrimaryMemory или DemUserDefinedMemory), специфичные для события данные Freeze Frame ([SWS_Dem_00461]) и записи данных Extended Data ([SWS_Dem_01081]) должны собираться не позднее следующего цикла Dem_MainFunction.
  • Если DemEnvironmentDataCapture установлен в DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING, модуль DEM ставит данные окружения в очередь до следующего вызова Dem_MainFunction ([SWS_Dem_01083]). Модуль при этом буферизует как минимум сконфигурированное количество согласно DemMaxNumberEventEntryEventBuffer; при переполнении очереди данные собираются при обработке события внутри Dem_MainFunction ([SWS_Dem_01083]).

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic Release R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_ComponentIdType [SWS_Dem_01114] 📄 PDF

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

тип Dem_ConfigType [SWS_Dem_00924] 📄 PDF

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

тип Dem_DTCRequestType [SWS_Dem_00935] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: 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, который последним был распознан как подтвержденный.

Взаимодействие, параллелизм и обработка ошибок

Тип передается в качестве входного параметра DTCRequest синхронной функции Dem_GetDTCByOccurrenceTime [SWS_Dem_00218]. Через этот параметр задается, по какому критерию должен опрашиваться DTC [SWS_Dem_00218]. Результат возвращается в формате UDS через выходной параметр DTC [SWS_Dem_00218].

Интерфейс реентерабелен для различных вызывающих сторон через разные значения ClientId, однако нереентерабелен для одного и того же ClientId [SWS_Dem_00218]. Возможными возвращаемыми значениями являются E_OK при успешном запросе, E_NOT_OK при ошибках, а также DEM_NO_SUCH_ELEMENT, если соответствующая запись не сохранена [SWS_Dem_00218]. Если результат функции отличается от DEM_OCCURR_OK, параметр DTC не содержит действительных данных [SWS_Dem_00218].

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.

тип Dem_J1939DcmDTCStatusFilterType [SWS_Dem_00945] 📄 PDF

The type to distinguish which DTCs should be filtered.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 92ccd2ad8a5a Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и диапазон значений

Тип Dem_J1939DcmDTCStatusFilterType представляет собой тип перечисления, основанный на uint8 и предоставляемый через заголовочный файл Dem.h [SWS_Dem_00945]. Он служит для определения того, по какому статусу J1939 следует различать и выбирать диагностические коды неисправностей (DTC) при операциях фильтрации [SWS_Dem_00945].

Специфицированы следующие значения фильтра статуса:

  • DEM_J1939DTC_ACTIVE (0): фильтрует по активным кодам неисправностей [SWS_Dem_00945].
  • DEM_J1939DTC_PREVIOUSLY_ACTIVE (1): фильтрует по ранее активным кодам неисправностей [SWS_Dem_00945].
  • DEM_J1939DTC_PENDING (2): фильтрует по ожидающим подтверждения кодам неисправностей [SWS_Dem_00945].
  • DEM_J1939DTC_PERMANENT (3): фильтрует по постоянным кодам неисправностей [SWS_Dem_00945].
  • DEM_J1939DTC_CURRENTLY_ACTIVE (4): выполняет фильтрацию по текущим активным диагностическим кодам неисправностей [SWS_Dem_00945].

Взаимодействие и контекст вызова

Тип фильтра используется в качестве входного параметра DTCStatusFilter в интерфейсе Dem_J1939DcmSetDTCFilter [SWS_Dem_00970]. Функция работает синхронно и настраивает фильтр с учётом категории неисправности (DTCKind), источника памяти (DTCOrigin) и соответствующего ClientId для памяти событий J1939 [SWS_Dem_00970]. В качестве интерпретации предполагается, что вызов обычно выполняется из менеджера диагностической связи для J1939. Вопрос Q-898d508b7b341ef8 (открытый)

Параллелизм и обработка ошибок

Служба Dem_J1939DcmSetDTCFilter является реентерабельной для различных значений ClientId, однако явно нереентерабельна для одного и того же ClientId [SWS_Dem_00970]. Успешная конфигурация фильтра подтверждается службой возвращаемым значением E_OK [SWS_Dem_00970].

Этот текст был создан ИИ на основе документов спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 92989a7111ae Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип структуры Dem_J1939DcmLampStatusType объявлен согласно [SWS_Dem_00948] в Dem.h и служит для сбора статуса ламп J1939 в соответствии с SAE J1939-73. Структура данных объединяет два информационных поля статуса в виде элементов uint8: LampStatus для текущего состояния лампы и FlashLampStatus для соответствующего режима мигания.

При фильтрации DTC J1939 в Diagnostic Event Manager данный тип выступает в роли выходного параметра-указателя в двух синхронных интерфейсах:

  • Через Dem_J1939DcmSetDTCFilter ([SWS_Dem_00970]) при инициализации фильтра DTC для конкретной памяти событий J1939 (адресуемой через ClientId) запрашивается начальный статус ламп.
  • Через Dem_J1939DcmGetNextDTCwithLampStatus ([SWS_Dem_00975]) структура итеративно заполняется соответствующим статусом ламп для каждой подходящей записи в памяти неисправностей.

При обработке ошибок обязательно следует учитывать, что Dem_J1939DcmGetNextDTCwithLampStatus согласно [SWS_Dem_00975] записывает валидные значения в выходной параметр только в том случае, если возвращаемым значением функции является DEM_FILTERED_OK. Если вызов возвращает другое значение, структура не содержит корректных данных.

С точки зрения параллелизма и условий вызова сама структура не имеет внутренней защиты. Реентерабельность зависит от конкретного контекста вызова: Dem_J1939DcmSetDTCFilter реентерабельна для различных идентификаторов клиентов, но нереентерабельна для одного и того же ClientId ([SWS_Dem_00970]). Итеративный опрос через Dem_J1939DcmGetNextDTCwithLampStatus специфицирован как полностью нереентерабельный ([SWS_Dem_00975]).

Этот текст сгенерирован ИИ и основан на спецификациях AUTOSAR релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_J1939DcmDiagnosticReadiness1Type [SWS_Dem_00949] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: 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) [SWS_Dem_00949], [SWS_Dem_00982]:

  • ActiveTroubleCodes: количество активных DTC [SWS_Dem_00949].
  • PreviouslyActiveDiagnosticTroubleCodes: количество ранее активных DTC [SWS_Dem_00949].
  • OBDCompliance: соответствие OBD [SWS_Dem_00949].
  • ContinuouslyMonitoredSystemsSupport_Status: поддержка и статус непрерывно контролируемых систем [SWS_Dem_00949].
  • NonContinuouslyMonitoredSystemsSupport5 и NonContinuouslyMonitoredSystemsSupport6: поддержка не непрерывно контролируемых систем (байты 5 и 6) [SWS_Dem_00949].
  • NonContinuouslyMonitoredSystemsStatus7 и NonContinuouslyMonitoredSystemsStatus8: статус не непрерывно контролируемых систем (байты 7 и 8) [SWS_Dem_00949].

Основное взаимодействие осуществляется с синхронным API Dem_J1939DcmReadDiagnosticReadiness1 (доступным через Dem_J1939Dcm.h) [SWS_Dem_00982]. Вызывающие стороны передают указатель на экземпляр Dem_J1939DcmDiagnosticReadiness1Type через выходной параметр DataValue вместе с соответствующим ClientId для памяти событий J1939 [SWS_Dem_00982].

В отношении параллелизма и обработки ошибок при доступе на чтение действует следующее: опрашивающая функция возвращает E_OK при успешном расчёте и предоставлении значений DM05 модулем DEM, а также E_NOT_OK в случае ошибки [SWS_Dem_00982]. Доступ является реентерабельным для различных значений ClientId, но нереентерабельным для одного и того же ClientId [SWS_Dem_00982]. Поэтому, вероятно, необходимо защищать экземпляры этого типа от одновременных вызовов в контексте одного и того же клиента. Вопрос Q-7613ded1aa18fd2b (открытый)

Этот текст создан ИИ. Источники взяты исключительно из спецификаций релиза R20-11.

тип Dem_J1939DcmDiagnosticReadiness2Type [SWS_Dem_00950] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4e1cd28c8cba Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Тип структуры Dem_J1939DcmDiagnosticReadiness2Type представляет элементы данных диагностического сообщения DM21 (Diagnostic Readiness 2) согласно SAE J1939-73 и объявляется через заголовочный файл Dem.h [SWS_Dem_00950]. Структура объединяет четыре 16-битных счётчика (uint16) в 8-байтовом буфере [SWS_Dem_00950], [SWS_Dem_00983]:

  • DistanceTraveledWhileMILisActivated: суммарный пробег в километрах при включённом индикаторе неисправности (MIL) [SWS_Dem_00950].
  • DistanceSinceDTCsCleared: суммарный пробег с момента сброса связанных с выбросами диагностических кодов неисправностей (DTC) [SWS_Dem_00950].
  • MinutesRunbyEngineWhileMILisActivated: суммарное время работы двигателя в минутах при активном MIL [SWS_Dem_00950].
  • TimeSinceDiagnosticTroubleCodesCleared: суммарное время работы двигателя с момента сброса связанных с выбросами DTC [SWS_Dem_00950].

Этот тип используется в качестве выходного буфера DataValue синхронной службы Dem_J1939DcmReadDiagnosticReadiness2, определённой в Dem_J1939Dcm.h [SWS_Dem_00983]. При вызове J1939-DCM передаёт ClientId для адресации конкретной памяти событий в DEM [SWS_Dem_00983]. Функция определяет текущие показания счётчиков и подтверждает успешное предоставление возвращаемым значением E_OK либо сообщает об ошибке с помощью E_NOT_OK [SWS_Dem_00983].

Что касается параллелизма, считывающая служба реентерабельна для различных значений ClientId, однако нереентерабельна для идентичных значений ClientId [SWS_Dem_00983].

Это указание по использованию сгенерировано автоматически с помощью ИИ. Все утверждения основаны исключительно на предоставленном объёме спецификаций AUTOSAR R20-11.

тип Dem_J1939DcmDiagnosticReadiness3Type [SWS_Dem_00951] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: 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 определяет значения DM26 для переданного ClientId памяти событий J1939 и возвращает значение E_OK при успешном выполнении или E_NOT_OK в случае ошибки [SWS_Dem_00770].

Параллелизм и ограничения: вызов функции считывания является реентерабельным для различных значений ClientId, однако не должен выполняться параллельно для одного и того же ClientId [SWS_Dem_00770]. Предполагается, что в качестве основного вызывающего модуля выступает J1939Dcm. Вопрос Q-e001ad1880fee789 (открытый) Тип объявлен в Dem.h [SWS_Dem_00951], в то время как соответствующая служба считывания предоставляется через Dem_J1939Dcm.h [SWS_Dem_00770].

Это указание по использованию основано на положениях спецификации AUTOSAR для Diagnostic Event Manager.

тип Dem_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().

СОЗДАНО ИИ не проверено Модель: 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]. Этот вызов выполняется синхронно и управляет внутренним состоянием дебаунсинга, не влияя напрямую на квалификацию соответствующего события [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().

СОЗДАНО ИИ не проверено Модель: 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]). Он служит Software-Components (SW-C), а также BSW-модулям для сообщения результатов тестирования диагностического монитора в DEM ([SWS_Dem_00926], [SWS_Dem_00183]).

Тип определяет следующие значения результатов монитора ([SWS_Dem_00926]):

  • DEM_EVENT_STATUS_PASSED (0x00) и DEM_EVENT_STATUS_FAILED (0x01): передача квалифицированных результатов теста (пройден или не пройден соответственно).
  • DEM_EVENT_STATUS_PREPASSED (0x02) и DEM_EVENT_STATUS_PREFAILED (0x03): предварительные, неквалифицированные результаты теста монитора, подавление дребезга которых выполняется внутри DEM.
  • DEM_EVENT_STATUS_FDC_THRESHOLD_REACHED (0x04): запускает сохранение FreezeFrame и ExtendedDataRecord при достижении порогового значения FDC (ON_FDC_THRESHOLD).
  • Диапазоны значений от 0x05 до 0xFF зарезервированы.

Тип используется в качестве входного параметра EventStatus в BSW-API Dem_SetEventStatus() ([SWS_Dem_00183]) и Dem_SetEventStatusWithMonitorData() ([SWS_Dem_91037]), а также через интерфейсы DiagnosticMonitor ([SWS_Dem_00598]) и DiagnosticMonitor_MonitorData ([SWS_Dem_91038]). Вызов выполняется синхронно или асинхронно ([SWS_Dem_00183], [SWS_Dem_91037]).

Функции возвращают Std_ReturnType (E_OK при успехе, E_NOT_OK при ошибках или отклонении), при этом вызывающие BSW-модули могут игнорировать возвращаемое значение Dem_SetEventStatus() ([SWS_Dem_00183]). Что касается параллелизма, вызовы для различных EventId являются реентерабельными, однако для одного и того же EventId — нереентерабельными ([SWS_Dem_00183], [SWS_Dem_91037]). Кроме того, доступность целевых API зависит от конфигурации параметра DemEventReportingType ([SWS_Dem_00183], [SWS_Dem_91037]).

Этот текст сгенерирован ИИ и служит в качестве справочного материала. Обязательную силу имеет спецификация AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_InitMonitorReasonType [SWS_Dem_00942] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: 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) было снова активировано.

Контекст вызова и интерфейсы

Значение передается синхронно и реентерабельно в качестве входного параметра InitMonitorReason через специфический для события C-callback <Module>_DemInitMonitorFor<EventName>(), объявленный в Dem_Externals.h [SWS_Dem_00256]. При наличии интерфейса порта к программному компоненту передача выполняется в операцию InitMonitorForEvent сервисного интерфейса CallbackInitMonitorForEvent [SWS_Dem_00613].

Обработка ошибок и возвращаемые значения

У C-callback возвращаемое значение типа Std_ReturnType не используется и служит исключительно для совместимости с соответствующей операцией RTE [SWS_Dem_00256]. Если интерфейс вызывается через RTE, операция InitMonitorForEvent возвращает значения ошибок E_OK (успешно) или E_NOT_OK (сбой) [SWS_Dem_00613]. Собственные коды ошибок или сообщения DET/DEM для этого типа данных не определены.

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_IumprDenomCondIdType [SWS_Dem_00943] 📄 PDF

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

тип Dem_IumprDenomCondStatusType [SWS_Dem_00944] 📄 PDF

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

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8df8011c88ff Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Тип Dem_IumprDenomCondStatusType основан на uint8 и определяет возможные состояния дополнительного условия знаменателя IUMPR для распределения между OBD-релевантными электронными блоками управления [SWS_Dem_00944]. Тип доступен через Rte_Dem_Type.h и включает следующие значения [SWS_Dem_00944]:

  • DEM_IUMPR_DEN_STATUS_NOT_REACHED (0x00): условие (пока) не выполнено.
  • DEM_IUMPR_DEN_STATUS_REACHED (0x01): условие выполнено.
  • DEM_IUMPR_DEN_STATUS_INHIBITED (0x02): условие заблокировано и не может быть достигнуто.

Значения в диапазоне от 0x03 до 0xFF зарезервированы [SWS_Dem_00944].

Взаимодействие и сервисные интерфейсы

В рамках сервисного интерфейса IUMPRDenominatorCondition передается статус для таких условий, как General Denominator, Cold start, EVAP или 500mi [SWS_Dem_00733] [SWS_Dem_00742]. Существуют две центральные сервисные функции:

  • Dem_SetIUMPRDenCondition: синхронно или асинхронно перенаправляет статус через входной параметр ConditionStatus в DEM электронного блока управления [SWS_Dem_00733].
  • Dem_GetIUMPRDenCondition: синхронно опрашивает статус через выходной параметр-указатель ConditionStatus от электронного блока управления, на котором вычисляются условия [SWS_Dem_00734].

Обработка ошибок и параллелизм

Обе функции специфицированы как реентерабельные [SWS_Dem_00733] [SWS_Dem_00734]. При успешном выполнении эти API возвращают E_OK; если установка или опрос завершаются неудачно либо условие не может быть принято, они возвращают E_NOT_OK [SWS_Dem_00733] [SWS_Dem_00734].

Данное указание по использованию было автоматически сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_IndicatorStatusType [SWS_Dem_00930] 📄 PDF

Indicator mode used by Dem_GetIndicatorStatus().

СОЗДАНО ИИ не проверено Модель: 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], а также в операции GetIndicatorStatus сервисного порта IndicatorStatus [SWS_Dem_00606]. Для каждого сконфигурированного индикатора сервисный компонент DEM предоставляет собственный порт, при этом соответствующий IndicatorId выступает в качестве определяемого портом аргумента [SWS_Dem_00606]. Опрашивающий программный компонент, как правило, использует определенное состояние для управления оптическими или акустическими индикаторными приборами. Вопрос Q-6bfabb33805bd0e8 (открытый)

Вызывающие стороны должны учитывать, что Dem_GetIndicatorStatus() специфицирована как неревходабельная (Non Reentrant) [SWS_Dem_00205]. Кроме того, опрашивающий API доступен только в том случае, если в конфигурации задан как минимум один индикатор в DemIndicator [SWS_Dem_00205]. Операция сообщает о статусе выполнения через возвращаемое значение Std_ReturnType с E_OK при успешной обработке или E_NOT_OK в случае ошибки [SWS_Dem_00205][SWS_Dem_00606].

Этот текст сгенерирован ИИ и служит в качестве ориентировочного руководства в среде AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

тип Dem_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#62971306
Content hash
62971306
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticEventManager.pdf#nameddest=SWS_Dem_00177

Карта тем

Инициализация и состояние

2

Циклические

1

Подробный вид

Выберите элемент в оглавлении.

Инициализация и состояние

Dem_GetVersionInfo функция

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…

Dem_GetB1Counter функция

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);
Dem_GetComponentFailed функция

Gets the failed status of a DemComponent.

Std_ReturnType Dem_GetComponentFailed (Dem_ComponentIdType ComponentId, boolean* ComponentFailed);
Dem_GetCycleQualified функция

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);
Dem_GetDataOfPID21 функция

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);
Dem_GetDTCOfEvent функция

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);
Dem_GetDTCSuppression функция

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);
Dem_GetEventAvailable функция

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);
Dem_GetEventUdsStatus функция

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);
Dem_GetIndicatorStatus функция

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);
Dem_GetMonitorStatus функция

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);
Dem_GetNextFilteredDTC функция

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);
Dem_GetSeverityOfDTC функция

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);
Dem_GetStatusOfDTC функция

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);
Dem_GetTranslationType функция

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);
Dem_SetCycleQualified функция

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

Std_ReturnType Dem_SetCycleQualified (uint8 OperationCycleId);
Dem_SetDataOfPID21 функция

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);
Dem_SetDataOfPID31 функция

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);
Dem_SetDataOfPID4D функция

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);
Dem_SetDataOfPID4E функция

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);
Dem_SetDTCFilter функция

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);
Dem_SetDTCSuppression функция

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);
Dem_SetEnableCondition функция

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);
Dem_SetEventAvailable функция

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);
Dem_SetEventDisabled функция

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);
Dem_SetEventStatus функция

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);
Dem_SetPtoStatus функция

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);
Dem_SetWIRStatus функция

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);
Dem_DcmGetDTRData функция

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);
Dem_DcmReadDataOfPID01 функция

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);
Dem_DcmReadDataOfPID1C функция

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);
Dem_DcmReadDataOfPID21 функция

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);
Dem_DcmReadDataOfPID30 функция

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);
Dem_DcmReadDataOfPID31 функция

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);
Dem_DcmReadDataOfPID41 функция

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);
Dem_DcmReadDataOfPID4D функция

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);
Dem_DcmReadDataOfPID4E функция

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);
Dem_DcmReadDataOfPID91 функция

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…

Dem_J1939DcmClearDTC функция

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…

Dem_SelectDTC функция

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);
Dem_ClearDTC функция

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);
Dem_DisableDTCSetting функция

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);
Dem_EnableDTCSetting функция

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

Std_ReturnType Dem_EnableDTCSetting (uint8 ClientId);
Dem_PreInit функция

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);
Dem_ReadDataOfPID01 функция

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);
Dem_RepIUMPRDenRelease функция

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);
Dem_ResetEventStatus функция

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);
Dem_Shutdown функция

Shuts down this module.

void Dem_Shutdown (void);

Циклические

Dem_MainFunction функция

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.