This commit is contained in:
cfif 2026-06-08 18:53:58 +03:00
parent 027a497637
commit c169e14b59
3 changed files with 272 additions and 150 deletions

View File

@ -404,7 +404,7 @@ static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
&env->canFrame.dlc, &env->ide);
++env->dbg_Sen_Incar_MultMsg_Idx;
if (env->dbg_Sen_Incar_MultMsg_Idx > 3) {
if (env->dbg_Sen_Incar_MultMsg_Idx > 1) {
env->dbg_Sen_Incar_MultMsg_Idx = 0;
}

View File

@ -11,7 +11,7 @@
// ============================================================================
// 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;
@ -68,13 +68,52 @@ uint32_t Pack_dbg_Sen_Incar_candb_dbg2(dbg_Sen_Incar_t* _m, uint8_t* _d, uint8_t
*_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)
{
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);
@ -112,8 +151,7 @@ uint32_t Pack_dbg_DiffBlr_ValveOpen_candb_dbg2(dbg_DiffBlr_ValveOpen_t* _m, uint
// 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)
{
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);
@ -159,7 +197,7 @@ uint32_t Pack_dbg_CCU_Info_candb_dbg2(dbg_CCU_Info_t* _m, uint8_t* _d, uint8_t*
// ============================================================================
// 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;
@ -224,13 +262,78 @@ uint32_t Pack_dbg_Sen_Duct_candb_dbg2(dbg_Sen_Duct_t* _m, uint8_t* _d, uint8_t*
*_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)
{
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);
@ -326,8 +429,7 @@ uint32_t Pack_dbg_Auto_Duct_candb_dbg2(dbg_Auto_Duct_t* _m, uint8_t* _d, uint8_t
// 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)
{
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);

View File

@ -11,6 +11,26 @@
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;
/**
* @brief Упаковка данных датчиков салона (исправленная версия)
* @param _m Указатель на структуру с данными