// 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; /** * @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); #ifdef __cplusplus } #endif #endif // CANDB_DBG_FIXED_H