HVAC_M7_CAN_DEBUG_SPAM/candb_dbg_fixed.c

596 lines
31 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// candb_dbg_fixed.c
// Исправленные версии функций для мультиплексированных сообщений
#include "candb_dbg_fixed.h"
// candb_dbg_fixed.c
// Исправленные версии функций для мультиплексированных сообщений
#include "candb_dbg_fixed.h"
// ============================================================================
// 1. dbg_Sen_Incar - Датчики в салоне (MultMsg_Idx)
// ============================================================================
/*
uint32_t Pack_dbg_Sen_Incar_candb_dbg2(dbg_Sen_Incar_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
{
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Sen_Incar_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
switch(_m->dbg_Sen_Incar_MultMsg_Idx) {
case 0: // Кадр 0: Raw_FL и FL
_d[0] |= (uint8_t)((_m->dbg_Sen_Incar_MultMsg_Idx & 0x03) |
((_m->dbg_Sen_Incar_Raw_FL_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Incar_Raw_FL_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Incar_FL_ro & 0xFF);
_d[3] |= (uint8_t)(((_m->dbg_Sen_Incar_FL_ro >> 8) & 0x0F) |
((_m->dbg_Sen_Incar_Raw_FR_ro & 0x0F) << 4));
_d[4] |= (uint8_t)((_m->dbg_Sen_Incar_Raw_FR_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Incar_FR_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Incar_FR_ro >> 8) & 0x0F);
break;
case 1: // Кадр 1: FR и Raw_FR
_d[0] |= (uint8_t)((_m->dbg_Sen_Incar_MultMsg_Idx & 0x03) |
((_m->dbg_Sen_Incar_FR_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Incar_FR_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Incar_Raw_FR_ro & 0xFF);
_d[3] |= (uint8_t)(((_m->dbg_Sen_Incar_Raw_FR_ro >> 8) & 0x0F) |
((_m->dbg_Sen_Incar_Raw_RL_ro & 0x0F) << 4));
_d[4] |= (uint8_t)((_m->dbg_Sen_Incar_Raw_RL_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Incar_RL_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Incar_RL_ro >> 8) & 0x0F);
break;
case 2: // Кадр 2: Raw_RL и RL
_d[0] |= (uint8_t)((_m->dbg_Sen_Incar_MultMsg_Idx & 0x03) |
((_m->dbg_Sen_Incar_Raw_RL_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Incar_Raw_RL_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Incar_RL_ro & 0xFF);
_d[3] |= (uint8_t)(((_m->dbg_Sen_Incar_RL_ro >> 8) & 0x0F) |
((_m->dbg_Sen_Incar_Raw_RR_ro & 0x0F) << 4));
_d[4] |= (uint8_t)((_m->dbg_Sen_Incar_Raw_RR_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Incar_RR_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Incar_RR_ro >> 8) & 0x0F);
break;
case 3: // Кадр 3: RR и Raw_RR
_d[0] |= (uint8_t)((_m->dbg_Sen_Incar_MultMsg_Idx & 0x03) |
((_m->dbg_Sen_Incar_RR_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Incar_RR_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Incar_Raw_RR_ro & 0xFF);
_d[3] |= (uint8_t)(((_m->dbg_Sen_Incar_Raw_RR_ro >> 8) & 0x0F));
break;
}
*_len = (uint8_t) dbg_Sen_Incar_DLC;
*_ide = (uint8_t) dbg_Sen_Incar_IDE;
return dbg_Sen_Incar_CANID;
}
*/
uint32_t Pack_dbg_Sen_Incar_candb_dbg2(dbg_Sen_Incar_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Sen_Incar_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
dbg_Sen_Incar_Frame0_t *dbg_Sen_Incar_Frame0 = (dbg_Sen_Incar_Frame0_t *) _d;
switch (_m->dbg_Sen_Incar_MultMsg_Idx) {
case 0:
dbg_Sen_Incar_Frame0->dbg_Sen_Incar_MultMsg_Idx = _m->dbg_Sen_Incar_MultMsg_Idx;
dbg_Sen_Incar_Frame0->reserved0 = 0;
dbg_Sen_Incar_Frame0->value1 = _m->dbg_Sen_Incar_FL_ro;
dbg_Sen_Incar_Frame0->value2 = _m->dbg_Sen_Incar_FR_ro;
dbg_Sen_Incar_Frame0->value3 = _m->dbg_Sen_Incar_RL_ro;
dbg_Sen_Incar_Frame0->value4 = _m->dbg_Sen_Incar_RR_ro;
break;
case 1:
dbg_Sen_Incar_Frame0->dbg_Sen_Incar_MultMsg_Idx = _m->dbg_Sen_Incar_MultMsg_Idx;
dbg_Sen_Incar_Frame0->reserved0 = 0;
dbg_Sen_Incar_Frame0->value1 = _m->dbg_Sen_Incar_Raw_FL_ro;
dbg_Sen_Incar_Frame0->value2 = _m->dbg_Sen_Incar_Raw_FR_ro;
dbg_Sen_Incar_Frame0->value3 = _m->dbg_Sen_Incar_Raw_RL_ro;
dbg_Sen_Incar_Frame0->value4 = _m->dbg_Sen_Incar_Raw_RR_ro;
break;
}
*_len = (uint8_t)dbg_Sen_Incar_DLC;
*_ide = (uint8_t)dbg_Sen_Incar_IDE;
return dbg_Sen_Incar_CANID;
}
// ============================================================================
// 2. dbg_DiffBlr_ValveOpen - Открытие клапанов DiffBlr (MultMsg_Idx)
// ============================================================================
uint32_t Pack_dbg_DiffBlr_ValveOpen_candb_dbg2(dbg_DiffBlr_ValveOpen_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_DiffBlr_ValveOpen_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
_d[0] |= (uint8_t)(_m->Logic_ValveOpen_MultMsg_Idx & 0x03);
switch (_m->Logic_ValveOpen_MultMsg_Idx) {
case 0: // Кадр 0: SFL позиции
_d[1] |= (uint8_t)(_m->Logic_ValveOpen_R2_SFL & 0xFF);
_d[2] |= (uint8_t)(_m->Logic_ValveOpen_R1_SFL & 0xFF);
break;
case 1: // Кадр 1: CFL позиции
_d[1] |= (uint8_t)(_m->Logic_ValveOpen_R2_CFL & 0xFF);
_d[2] |= (uint8_t)(_m->Logic_ValveOpen_R1_CFL & 0xFF);
break;
case 2: // Кадр 2: CFR позиции
_d[3] |= (uint8_t)(_m->Logic_ValveOpen_R2_CFR & 0xFF);
_d[4] |= (uint8_t)(_m->Logic_ValveOpen_R1_CFR & 0xFF);
break;
case 3: // Кадр 3: SFR позиции
_d[3] |= (uint8_t)(_m->Logic_ValveOpen_R2_SFR & 0xFF);
_d[4] |= (uint8_t)(_m->Logic_ValveOpen_R1_SFR & 0xFF);
break;
}
*_len = (uint8_t)dbg_DiffBlr_ValveOpen_DLC;
*_ide = (uint8_t)dbg_DiffBlr_ValveOpen_IDE;
return dbg_DiffBlr_ValveOpen_CANID;
}
// ============================================================================
// 3. dbg_CCU_Info - Информация о CCU (MultMsg_Idx)
// ============================================================================
uint32_t Pack_dbg_CCU_Info_candb_dbg2(dbg_CCU_Info_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_CCU_Info_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
_d[0] |= (uint8_t)(_m->dbg_Info_MultMsg_Idx & 0x03);
switch (_m->dbg_Info_MultMsg_Idx) {
case 0: // Кадр 0: Информация о калибровке
_d[0] |= (uint8_t)((_m->dbg_Info_Calibration_Ver_Date & 0x3F) << 2);
_d[1] |= (uint8_t)((_m->dbg_Info_Calibration_Ver_Date >> 6) & 0xFF);
_d[2] |= (uint8_t)((_m->dbg_Info_Calibration_Ver_Date >> 14) & 0xFF);
_d[3] |= (uint8_t)(_m->dbg_Info_Calibration_Ver_Rev & 0xFF);
break;
case 1: // Кадр 1: Информация о SW
_d[0] |= (uint8_t)((_m->dbg_Info_CCU_SW_Ver_Date & 0x3F) << 2);
_d[1] |= (uint8_t)((_m->dbg_Info_CCU_SW_Ver_Date >> 6) & 0xFF);
_d[2] |= (uint8_t)((_m->dbg_Info_CCU_SW_Ver_Date >> 14) & 0xFF);
_d[3] |= (uint8_t)(_m->dbg_Info_CCU_SW_Ver_Rev & 0xFF);
break;
case 2: // Кадр 2: Конфигурация и MBD версия
_d[4] |= (uint8_t)(_m->dbg_Info_ActivatedCAL & 0x0F);
_d[4] |= (uint8_t)((_m->dbg_Info_CCU_Aroma_Cfg & 0x0F) << 4);
_d[5] |= (uint8_t)(_m->dbg_Info_CCU_Algorithm_Cfg & 0x0F);
_d[5] |= (uint8_t)((_m->dbg_Info_MBD_Ver_Date & 0x3F) << 2);
_d[6] |= (uint8_t)((_m->dbg_Info_MBD_Ver_Date >> 6) & 0xFF);
_d[7] |= (uint8_t)((_m->dbg_Info_MBD_Ver_Date >> 14) & 0xFF);
_d[7] |= (uint8_t)(_m->dbg_Info_MBD_Ver_Rev & 0xFF);
break;
case 3: // Кадр 3: Информация о кузове
_d[6] |= (uint8_t)(_m->dbg_Info_VehicleBody & 0xFF);
_d[7] |= (uint8_t)((_m->dbg_Info_VehicleBody >> 8) & 0xFF);
break;
}
*_len = (uint8_t)dbg_CCU_Info_DLC;
*_ide = (uint8_t)dbg_CCU_Info_IDE;
return dbg_CCU_Info_CANID;
}
// ============================================================================
// 4. dbg_Sen_Duct - Датчики воздуховодов (MultMsg_Idx)
// ============================================================================
/*
uint32_t Pack_dbg_Sen_Duct_candb_dbg2(dbg_Sen_Duct_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
{
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Sen_Duct_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
_d[0] |= (uint8_t)(_m->dbg_Sen_Duct_MultMsg_Idx & 0x03);
switch(_m->dbg_Sen_Duct_MultMsg_Idx) {
case 0: // Кадр 0: Данные передних верхних датчиков
_d[0] |= (uint8_t)(((_m->dbg_Sen_Duct_FL_Upper_Tgt_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Upper_Tgt_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Duct_FL_Upper_Fb_ro & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Upper_Fb_ro >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Upper_Tgt_ro & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Upper_Tgt_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Duct_FR_Upper_Fb_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Upper_Fb_ro >> 8) & 0x0F);
break;
case 1: // Кадр 1: Данные задних датчиков и боковых
_d[0] |= (uint8_t)(((_m->dbg_Sen_Duct_RL_Tgt_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Duct_RL_Tgt_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Duct_RL_Fb_ro & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_RL_Fb_ro >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_RR_Tgt_ro & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Sen_Duct_RR_Tgt_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Duct_RR_Fb_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_RR_Fb_ro >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Side_Fb_ro & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Side_Fb_ro >> 4) & 0xFF);
_d[7] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Side_Fb_ro & 0x0F) << 4);
break;
case 2: // Кадр 2: Данные нижних передних датчиков
_d[0] |= (uint8_t)(((_m->dbg_Sen_Duct_FL_Lower_Tgt_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Lower_Tgt_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Duct_FL_Lower_Fb_ro & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Lower_Fb_ro >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Lower_Tgt_ro & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Lower_Tgt_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Duct_FR_Lower_Fb_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Lower_Fb_ro >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_RL_Side_Fb_ro & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Sen_Duct_RL_Side_Fb_ro >> 4) & 0xFF);
_d[7] |= (uint8_t)((_m->dbg_Sen_Duct_RR_Side_Fb_ro & 0x0F) << 4);
break;
case 3: // Кадр 3: Данные боковых датчиков
_d[0] |= (uint8_t)(((_m->dbg_Sen_Duct_FR_Side_Fb_ro & 0x0F) << 4));
_d[1] |= (uint8_t)((_m->dbg_Sen_Duct_FR_Side_Fb_ro >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Sen_Duct_RR_Side_Fb_ro & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_RR_Side_Fb_ro >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Side_Fb_ro & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Sen_Duct_FL_Side_Fb_ro >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Sen_Duct_RL_Side_Fb_ro & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Sen_Duct_RL_Side_Fb_ro >> 8) & 0x0F);
break;
}
*_len = (uint8_t) dbg_Sen_Duct_DLC;
*_ide = (uint8_t) dbg_Sen_Duct_IDE;
return dbg_Sen_Duct_CANID;
}
*/
uint32_t Pack_dbg_Sen_Duct_candb_dbg2(dbg_Sen_Duct_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Sen_Duct_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
dbg_Sen_Duct_Frame0_t *dbg_Sen_Duct_Frame0 = (dbg_Sen_Duct_Frame0_t *) _d;
switch (_m->dbg_Sen_Duct_MultMsg_Idx) {
case 0: // Кадр 0: Данные передних верхних датчиков
dbg_Sen_Duct_Frame0->dbg_Sen_Duct_MultMsg_Idx = _m->dbg_Sen_Duct_MultMsg_Idx;
dbg_Sen_Duct_Frame0->reserved0 = 0;
dbg_Sen_Duct_Frame0->select = _m->dbg_Sen_Duct_FL_Fb_Select;
dbg_Sen_Duct_Frame0->value1 = _m->dbg_Sen_Duct_FL_Upper_Tgt_ro;
dbg_Sen_Duct_Frame0->value2 = _m->dbg_Sen_Duct_FL_Upper_Fb_ro;
dbg_Sen_Duct_Frame0->value3 = _m->dbg_Sen_Duct_FL_Side_Fb_ro;
dbg_Sen_Duct_Frame0->value4 = _m->dbg_Sen_Duct_FL_Lower_Tgt_ro;
dbg_Sen_Duct_Frame0->value5 = _m->dbg_Sen_Duct_FL_Lower_Fb_ro;
break;
case 1: // Кадр 1: Данные задних датчиков и боковых
dbg_Sen_Duct_Frame0->dbg_Sen_Duct_MultMsg_Idx = _m->dbg_Sen_Duct_MultMsg_Idx;
dbg_Sen_Duct_Frame0->reserved0 = 0;
dbg_Sen_Duct_Frame0->select = _m->dbg_Sen_Duct_FR_Fb_Select;
dbg_Sen_Duct_Frame0->value1 = _m->dbg_Sen_Duct_FR_Upper_Tgt_ro;
dbg_Sen_Duct_Frame0->value2 = _m->dbg_Sen_Duct_FR_Upper_Fb_ro;
dbg_Sen_Duct_Frame0->value3 = _m->dbg_Sen_Duct_FR_Side_Fb_ro;
dbg_Sen_Duct_Frame0->value4 = _m->dbg_Sen_Duct_FR_Lower_Tgt_ro;
dbg_Sen_Duct_Frame0->value5 = _m->dbg_Sen_Duct_FR_Lower_Fb_ro;
break;
case 2: // Кадр 2: Данные нижних передних датчиков
dbg_Sen_Duct_Frame0->dbg_Sen_Duct_MultMsg_Idx = _m->dbg_Sen_Duct_MultMsg_Idx;
dbg_Sen_Duct_Frame0->reserved0 = 0;
dbg_Sen_Duct_Frame0->select = _m->dbg_Sen_Duct_RL_Fb_Select;
dbg_Sen_Duct_Frame0->value1 = _m->dbg_Sen_Duct_RL_Tgt_ro;
dbg_Sen_Duct_Frame0->value2 = _m->dbg_Sen_Duct_RL_Fb_ro;
dbg_Sen_Duct_Frame0->value3 = _m->dbg_Sen_Duct_RL_Side_Fb_ro;
dbg_Sen_Duct_Frame0->value4 = 0;
dbg_Sen_Duct_Frame0->value5 = 0;
break;
case 3: // Кадр 3: Данные боковых датчиков
dbg_Sen_Duct_Frame0->dbg_Sen_Duct_MultMsg_Idx = _m->dbg_Sen_Duct_MultMsg_Idx;
dbg_Sen_Duct_Frame0->reserved0 = 0;
dbg_Sen_Duct_Frame0->select = _m->dbg_Sen_Duct_RR_Fb_Select;
dbg_Sen_Duct_Frame0->value1 = _m->dbg_Sen_Duct_RR_Tgt_ro;
dbg_Sen_Duct_Frame0->value2 = _m->dbg_Sen_Duct_RR_Fb_ro;
dbg_Sen_Duct_Frame0->value3 = _m->dbg_Sen_Duct_RR_Side_Fb_ro;
dbg_Sen_Duct_Frame0->value4 = 0;
dbg_Sen_Duct_Frame0->value5 = 0;
break;
}
*_len = (uint8_t)dbg_Sen_Duct_DLC;
*_ide = (uint8_t)dbg_Sen_Duct_IDE;
return dbg_Sen_Duct_CANID;
}
// ============================================================================
// 5. dbg_Auto_Duct - Автоматические воздуховоды (MultMsg_Idx)
// ============================================================================
uint32_t Pack_dbg_Auto_Duct_candb_dbg2(dbg_Auto_Duct_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Auto_Duct_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
dbg_Auto_Duct_Frame0_t *dbg_Auto_Duct_Frame0 = (dbg_Auto_Duct_Frame0_t *) _d;
dbg_Auto_Duct_Multi_6_Frame0_t *dbg_Auto_Duct_Multi_6_Frame0 = (dbg_Auto_Duct_Multi_6_Frame0_t *) _d;
// _d[0] |= (uint8_t) (_m->dbg_Auto_Duct_MultMsg_Idx & 0x0F);
switch (_m->dbg_Auto_Duct_MultMsg_Idx) {
case 0: // Кадр 0: FL верхние параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_FL_Upper_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_FL_Upper_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_FL_Upper_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_FL_Upper_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_FL_Upper_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FL_Upper_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FL_Upper_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_FL_Upper_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_FL_Upper_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FL_Upper_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FL_Upper_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_FL_Upper_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_FL_Upper_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FL_Upper_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FL_Upper_ro >> 4) & 0xFF);
*/
break;
case 1: // Кадр 1: FR верхние параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_FR_Upper_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_FR_Upper_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_FR_Upper_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_FR_Upper_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_FR_Upper_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FR_Upper_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FR_Upper_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_FR_Upper_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_FR_Upper_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FR_Upper_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FR_Upper_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_FR_Upper_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_FR_Upper_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FR_Upper_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FR_Upper_ro >> 4) & 0xFF);
*/
break;
case 2: // Кадр 2: FL нижние параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_FL_Lower_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_FL_Lower_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_FL_Lower_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_FL_Lower_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_FL_Lower_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FL_Lower_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FL_Lower_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_FL_Lower_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_FL_Lower_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FL_Lower_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FL_Lower_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_FL_Lower_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_FL_Lower_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FL_Lower_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FL_Lower_ro >> 4) & 0xFF);
*/
break;
case 3: // Кадр 3: FR нижние параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_FR_Lower_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_FR_Lower_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_FR_Lower_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_FR_Lower_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_FR_Lower_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FR_Lower_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_FR_Lower_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_FR_Lower_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_FR_Lower_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FR_Lower_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_FR_Lower_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_FR_Lower_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_FR_Lower_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FR_Lower_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_FR_Lower_ro >> 4) & 0xFF);
*/
break;
case 4: // Кадр 4: RL параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_RL_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_RL_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_RL_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_RL_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_RL_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_RL_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_RL_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_RL_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_RL_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_RL_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_RL_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_RL_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_RL_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_RL_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_RL_ro >> 4) & 0xFF);
*/
break;
case 5: // Кадр 5: RR параметры
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Frame0->value1 = _m->dbg_Auto_Duct_Tgt_RR_ro;
dbg_Auto_Duct_Frame0->value2 = _m->dbg_Auto_Duct_Tg_RR_ro;
dbg_Auto_Duct_Frame0->value3 = _m->dbg_Auto_Duct_Incar_RR_ro;
dbg_Auto_Duct_Frame0->value4 = _m->dbg_Auto_Duct_Amb_RR_ro;
dbg_Auto_Duct_Frame0->value5 = _m->dbg_Auto_Duct_Sun_RR_ro;
/*
_d[0] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_RR_ro & 0x0F) << 4);
_d[1] |= (uint8_t) ((_m->dbg_Auto_Duct_Tgt_RR_ro >> 4) & 0xFF);
_d[2] |= (uint8_t) (_m->dbg_Auto_Duct_Tg_RR_ro & 0xFF);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Tg_RR_ro >> 8) & 0x0F);
_d[3] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_RR_ro & 0x0F) << 4);
_d[4] |= (uint8_t) ((_m->dbg_Auto_Duct_Incar_RR_ro >> 4) & 0xFF);
_d[5] |= (uint8_t) (_m->dbg_Auto_Duct_Amb_RR_ro & 0xFF);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Amb_RR_ro >> 8) & 0x0F);
_d[6] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_RR_ro & 0x0F) << 4);
_d[7] |= (uint8_t) ((_m->dbg_Auto_Duct_Sun_RR_ro >> 4) & 0xFF);
*/
break;
case 6: // Кадр 6:
dbg_Auto_Duct_Frame0->dbg_Auto_Duct_MultMsg_Idx = _m->dbg_Auto_Duct_MultMsg_Idx;
dbg_Auto_Duct_Multi_6_Frame0->value1 = _m->dbg_Auto_Duct_Tg_Incar_FL_Upper_ro;
dbg_Auto_Duct_Multi_6_Frame0->value2 = _m->dbg_Auto_Duct_Tg_Incar_FR_Upper_ro;
dbg_Auto_Duct_Multi_6_Frame0->value3 = _m->dbg_Auto_Duct_Tg_Incar_FL_Lower_ro;
dbg_Auto_Duct_Multi_6_Frame0->value4 = _m->dbg_Auto_Duct_Tg_Incar_FR_Lower_ro;
dbg_Auto_Duct_Multi_6_Frame0->value5 = _m->dbg_Auto_Duct_Tg_Incar_RL_ro;
dbg_Auto_Duct_Multi_6_Frame0->value6 = _m->dbg_Auto_Duct_Tg_Incar_RR_ro;
break;
}
*_len = (uint8_t)dbg_Auto_Duct_DLC;
*_ide = (uint8_t)dbg_Auto_Duct_IDE;
return dbg_Auto_Duct_CANID;
}
// ============================================================================
// 6. dbg_Auto_AF - Автоматическая коррекция AF (MultMsg_Idx)
// ============================================================================
uint32_t Pack_dbg_Auto_AF_candb_dbg2(dbg_Auto_AF_t *_m, uint8_t *_d, uint8_t *_len, uint8_t *_ide) {
uint8_t i;
for (i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Auto_AF_DLC);
_d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
dbg_Auto_AF_Frame0_t *dbg_Auto_AF_Frame0 = (dbg_Auto_AF_Frame0_t *) _d;
// _d[0] |= (uint8_t)(_m->dbg_Auto_AF_MultMsg_Idx & 0x03);
switch (_m->dbg_Auto_AF_MultMsg_Idx) {
case 0: // Кадр 0: FL коррекция
dbg_Auto_AF_Frame0->dbg_Auto_AF_MultMsg_Idx = _m->dbg_Auto_AF_MultMsg_Idx;
dbg_Auto_AF_Frame0->value1 = _m->dbg_Auto_AF_Correct_FL;
dbg_Auto_AF_Frame0->value2 = _m->dbg_Auto_AF_Vtg_FL;
dbg_Auto_AF_Frame0->value3 = _m->dbg_Auto_AF_Incar_FL;
dbg_Auto_AF_Frame0->value4 = _m->dbg_Auto_AF_Amb_FL;
dbg_Auto_AF_Frame0->value5 = _m->dbg_Auto_AF_Sun_FL;
/*
_d[0] |= (uint8_t)((_m->dbg_Auto_AF_Correct_FL & 0x0F) << 4);
_d[1] |= (uint8_t)((_m->dbg_Auto_AF_Correct_FL >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Auto_AF_Vtg_FL & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Vtg_FL >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Incar_FL & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Auto_AF_Incar_FL >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Auto_AF_Amb_FL & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Amb_FL >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Sun_FL & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Auto_AF_Sun_FL >> 4) & 0xFF);
*/
break;
case 1: // Кадр 1: FR коррекция
dbg_Auto_AF_Frame0->dbg_Auto_AF_MultMsg_Idx = _m->dbg_Auto_AF_MultMsg_Idx;
dbg_Auto_AF_Frame0->value1 = _m->dbg_Auto_AF_Correct_FR;
dbg_Auto_AF_Frame0->value2 = _m->dbg_Auto_AF_Vtg_FR;
dbg_Auto_AF_Frame0->value3 = _m->dbg_Auto_AF_Incar_FR;
dbg_Auto_AF_Frame0->value4 = _m->dbg_Auto_AF_Amb_FR;
dbg_Auto_AF_Frame0->value5 = _m->dbg_Auto_AF_Sun_FR;
/*
_d[0] |= (uint8_t)((_m->dbg_Auto_AF_Correct_FR & 0x0F) << 4);
_d[1] |= (uint8_t)((_m->dbg_Auto_AF_Correct_FR >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Auto_AF_Vtg_FR & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Vtg_FR >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Incar_FR & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Auto_AF_Incar_FR >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Auto_AF_Amb_FR & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Amb_FR >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Sun_FR & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Auto_AF_Sun_FR >> 4) & 0xFF);
*/
break;
case 2: // Кадр 2: RL коррекция
dbg_Auto_AF_Frame0->dbg_Auto_AF_MultMsg_Idx = _m->dbg_Auto_AF_MultMsg_Idx;
dbg_Auto_AF_Frame0->value1 = _m->dbg_Auto_AF_Correct_RL;
dbg_Auto_AF_Frame0->value2 = _m->dbg_Auto_AF_Vtg_RL;
dbg_Auto_AF_Frame0->value3 = _m->dbg_Auto_AF_Incar_RL;
dbg_Auto_AF_Frame0->value4 = _m->dbg_Auto_AF_Amb_RL;
dbg_Auto_AF_Frame0->value5 = _m->dbg_Auto_AF_Sun_RL;
/*
_d[0] |= (uint8_t)((_m->dbg_Auto_AF_Correct_RL & 0x0F) << 4);
_d[1] |= (uint8_t)((_m->dbg_Auto_AF_Correct_RL >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Auto_AF_Vtg_RL & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Vtg_RL >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Incar_RL & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Auto_AF_Incar_RL >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Auto_AF_Amb_RL & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Amb_RL >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Sun_RL & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Auto_AF_Sun_RL >> 4) & 0xFF);
*/
break;
case 3: // Кадр 3: RR коррекция
dbg_Auto_AF_Frame0->dbg_Auto_AF_MultMsg_Idx = _m->dbg_Auto_AF_MultMsg_Idx;
dbg_Auto_AF_Frame0->value1 = _m->dbg_Auto_AF_Correct_RR;
dbg_Auto_AF_Frame0->value2 = _m->dbg_Auto_AF_Vtg_RR;
dbg_Auto_AF_Frame0->value3 = _m->dbg_Auto_AF_Incar_RR;
dbg_Auto_AF_Frame0->value4 = _m->dbg_Auto_AF_Amb_RR;
dbg_Auto_AF_Frame0->value5 = _m->dbg_Auto_AF_Sun_RR;
/*
_d[0] |= (uint8_t)((_m->dbg_Auto_AF_Correct_RR & 0x0F) << 4);
_d[1] |= (uint8_t)((_m->dbg_Auto_AF_Correct_RR >> 4) & 0xFF);
_d[2] |= (uint8_t)(_m->dbg_Auto_AF_Vtg_RR & 0xFF);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Vtg_RR >> 8) & 0x0F);
_d[3] |= (uint8_t)((_m->dbg_Auto_AF_Incar_RR & 0x0F) << 4);
_d[4] |= (uint8_t)((_m->dbg_Auto_AF_Incar_RR >> 4) & 0xFF);
_d[5] |= (uint8_t)(_m->dbg_Auto_AF_Amb_RR & 0xFF);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Amb_RR >> 8) & 0x0F);
_d[6] |= (uint8_t)((_m->dbg_Auto_AF_Sun_RR & 0x0F) << 4);
_d[7] |= (uint8_t)((_m->dbg_Auto_AF_Sun_RR >> 4) & 0xFF);
*/
break;
}
*_len = (uint8_t)dbg_Auto_AF_DLC;
*_ide = (uint8_t)dbg_Auto_AF_IDE;
return dbg_Auto_AF_CANID;
}