С моей точки зрения, это не правильное решение. Проблемы, которые я вижу сейчас:
- сброс внутренних данных, не сохраненных в Nvm (счетчики отказов и рабочие циклы)
- необходимо вызвать Nvm_WriteAll или Nvm_Write для блока, используемого DEM
- при деинициализированной DEM-диагностике c сервисы с SID 0x19 и 0x14 будут возвращать NRC10
Я думаю, что лучшим решением является настройка одного дополнительного DemEnableCondition и добавление к каждому DemEnableConditionGroups . Каждый DT C должен иметь одну из DemEnableConditionGroup .
Это условие должно обрабатываться FIM. Если мы хотим прекратить сообщать о кодах DTC, FIM установит состояние этого условия в FALSE, и после обработки значение может быть переключено обратно в TRUE, что разблокирует сообщающие коды DTC.