// candb_dbg_fixed.h // Исправленные версии функций для мультиплексированных сообщений // Версия без CANDB_DBG_USE_CANSTRUCT #ifndef CANDB_DBG_FIXED_H #define CANDB_DBG_FIXED_H #include "candb_dbg.h" #ifdef __cplusplus extern "C" { #endif typedef struct { uint32_t dbg_Sen_Duct_MultMsg_Idx: 2; uint32_t reserved0: 1; uint32_t select: 1; uint32_t value1: 12; //4 uint32_t value2: 12; //16 uint32_t value3: 12; //28 uint32_t value4: 12; //40 uint32_t value5: 12; //52 } __attribute__((packed)) dbg_Sen_Duct_Frame0_t; typedef struct { uint32_t dbg_Sen_Incar_MultMsg_Idx: 2; uint32_t reserved0: 2; uint32_t value1: 12; //4 uint32_t value2: 12; //16 uint32_t value3: 12; //28 uint32_t value4: 12; //40 } __attribute__((packed)) dbg_Sen_Incar_Frame0_t; typedef struct { uint32_t dbg_Auto_Duct_MultMsg_Idx: 4; uint32_t value1: 12; //4 uint32_t value2: 12; //16 uint32_t value3: 12; //28 uint32_t value4: 12; //40 uint32_t value5: 12; //52 } __attribute__((packed)) dbg_Auto_Duct_Frame0_t; typedef struct { uint32_t dbg_Auto_Duct_MultMsg_Idx: 4; uint32_t value1: 10; //4 uint32_t value2: 10; //14 uint32_t value3: 10; //24 uint32_t value4: 10; //34 uint32_t value5: 10; //44 uint32_t value6: 10; //54 } __attribute__((packed)) dbg_Auto_Duct_Multi_6_Frame0_t; typedef struct { uint32_t dbg_Auto_AF_MultMsg_Idx: 2; uint32_t reserved0: 2; uint32_t value1: 12; //4 uint32_t value2: 12; //16 uint32_t value3: 12; //28 uint32_t value4: 12; //40 uint32_t value5: 12; //52 } __attribute__((packed)) dbg_Auto_AF_Frame0_t; typedef struct { uint32_t dbg_Info_MultMsg_Idx: 2; uint32_t dbg_Info_CCU_SW_Ver_Date: 22; uint32_t dbg_Info_CCU_SW_Ver_Rev: 8; uint32_t dbg_Info_ActivatedCAL: 4; uint32_t dbg_Info_CCU_Aroma_Cfg: 4; uint32_t dbg_Info_CCU_Algorithm_Cfg: 4; uint32_t reserved0: 4; uint32_t dbg_Info_VehicleBody: 16; } __attribute__((packed)) dbg_CCU_Info_Frame0_t; typedef struct { uint32_t dbg_Info_MultMsg_Idx: 2; uint32_t dbg_Info_Calibration_Ver_Date: 22; //2 uint32_t dbg_Info_Calibration_Ver_Rev: 8; //24 uint32_t reserved0: 2; uint32_t dbg_Info_MBD_Ver_Date: 22; //34 uint32_t dbg_Info_MBD_Ver_Rev: 8;//56 } __attribute__((packed)) dbg_CCU_Info_Frame1_t; typedef struct { uint32_t dbg_PID_MultMsg_Idx: 4; uint32_t dbg_P: 12; uint32_t dbg_I: 12; uint32_t dbg_D: 12; uint32_t reserved0: 24; } __attribute__((packed)) dbg_Stat_PID_Frame0_t; /** * @brief Упаковка данных датчиков салона (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю dbg_Sen_Incar_MultMsg_Idx (0-3) */ uint32_t Pack_dbg_Sen_Incar_candb_dbg2(dbg_Sen_Incar_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); /** * @brief Упаковка данных открытия клапанов DiffBlr (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю Logic_ValveOpen_MultMsg_Idx (0-3) */ uint32_t Pack_dbg_DiffBlr_ValveOpen_candb_dbg2(dbg_DiffBlr_ValveOpen_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); /** * @brief Упаковка информационных данных CCU (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю dbg_Info_MultMsg_Idx (0-3) */ uint32_t Pack_dbg_CCU_Info_candb_dbg2(dbg_CCU_Info_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); /** * @brief Упаковка данных датчиков воздуховодов (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю dbg_Sen_Duct_MultMsg_Idx (0-3) */ uint32_t Pack_dbg_Sen_Duct_candb_dbg2(dbg_Sen_Duct_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); /** * @brief Упаковка данных автоматических воздуховодов (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю dbg_Auto_Duct_MultMsg_Idx (0-5) */ uint32_t Pack_dbg_Auto_Duct_candb_dbg2(dbg_Auto_Duct_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); /** * @brief Упаковка данных автоматической коррекции AF (исправленная версия) * @param _m Указатель на структуру с данными * @param _d Указатель на буфер данных (8 байт) * @param _len Указатель на длину данных * @param _ide Указатель на флаг IDE * @return CAN ID сообщения * @note Мультиплексирование по полю dbg_Auto_AF_MultMsg_Idx (0-3) */ uint32_t Pack_dbg_Auto_AF_candb_dbg2(dbg_Auto_AF_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide); uint32_t Pack_dbg_Stat_PID_candb_dbg2(dbg_Stat_PID_t *_m, uint8_t dbg_PID_MultMsg_Idx, uint8_t *_d, uint8_t *_len, uint8_t *_ide); #ifdef __cplusplus } #endif #endif // CANDB_DBG_FIXED_H