// // Created by cfif on 23.01.2026. // #ifndef HVAC_M7_DIAGNOSTICTASK_H #define HVAC_M7_DIAGNOSTICTASK_H #include #include "LoggerInterface.h" #include "ccu_candb-binutil.h" #include "lfs.h" #define LOG_DTC 1 #define DTC_TEST_FAILED 1 #define DTC_TEST_CONFIRMED 8 #define DTC_TEST_FAILED_CONFIRMED (DTC_TEST_FAILED | DTC_TEST_CONFIRMED) typedef struct { uint8_t mask; uint8_t *dataResponse; } tDiagnosticDTC; typedef struct { osMutexId_t access; tLoggerInterface *logger; bool isNoBitsDTC; bool isCleanDTC; } tDiagnostic; void Diagnostic_Init(tDiagnostic *env, tLoggerInterface *logger); void set_NoBitsDTC(tDiagnostic *env, bool noBitsDTC); void set_Dtc_state(tDiagnostic *env, CCU_Errors_t *CCU_Errors, uint8_t *dtc_state_error_model, char *VIN, ccu_candb_error_missing_rx_t *CAN_ERROR_MISSLE, ccu_candb_time_missing_rx_t *CAN_TIME_MISSLE); uint32_t diagnostic_ClearDiagnosticInformation_14(tDiagnostic *env); uint32_t diagnostic_UDS_ReadDTCInformation_19_count(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC); uint32_t diagnostic_UDS_ReadDTCInformation_19_dtc(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC); uint32_t diagnostic_UDS_ReadDTCSupportDTC_19_dtc(tDiagnostic *env, tDiagnosticDTC *diagnosticDTC); #endif //HVAC_M7_DIAGNOSTICTASK_H