Обновление платы на V2

This commit is contained in:
cfif 2026-05-13 17:48:21 +03:00
parent 292fe8b914
commit d03380a269
2 changed files with 74 additions and 7 deletions

View File

@ -39,6 +39,75 @@ static void sendEventToCan(tCanSpamDebugTransmitter *env) {
env->can_id, env->canFrame.id_type, 100); env->can_id, env->canFrame.id_type, 100);
} }
uint32_t Pack_dbg_Sen_Duct_candb_dbg2(dbg_Sen_Duct_t* _m, uint8_t* _d, uint8_t* _len, uint8_t* _ide)
{
for (uint8_t i = 0u; i < CANDB_DBG_VALIDATE_DLC(dbg_Sen_Duct_DLC); _d[i++] = CANDB_DBG_INITIAL_BYTE_VALUE);
// Устанавливаем мультиплексор (биты 0-1)
_d[0] |= (uint8_t) (_m->dbg_Sen_Duct_MultMsg_Idx & 0x03U);
// Выбираем набор сигналов в зависимости от мультиплексора
switch(_m->dbg_Sen_Duct_MultMsg_Idx) {
case 0: // FL (передний левый)
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Fb_Select & 0x01U) << 3U);
// FL_Upper_Tgt (startbit 4, length 12)
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Upper_Tgt_ro & 0x0FU) << 4U);
_d[1] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Upper_Tgt_ro >> 4U) & 0xFFU);
// FL_Upper_Fb (startbit 16, length 12)
_d[2] |= (uint8_t) (_m->dbg_Sen_Duct_FL_Upper_Fb_ro & 0xFFU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Upper_Fb_ro >> 8U) & 0x0FU);
// FL_Side_Fb (startbit 28, length 12)
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Side_Fb_ro & 0x0FU) << 4U);
_d[4] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Side_Fb_ro >> 4U) & 0xFFU);
// FL_Lower_Tgt (startbit 40, length 12)
_d[5] |= (uint8_t) (_m->dbg_Sen_Duct_FL_Lower_Tgt_ro & 0xFFU);
_d[6] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Lower_Tgt_ro >> 8U) & 0x0FU);
// FL_Lower_Fb (startbit 52, length 12)
_d[6] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Lower_Fb_ro & 0x0FU) << 4U);
_d[7] |= (uint8_t) ((_m->dbg_Sen_Duct_FL_Lower_Fb_ro >> 4U) & 0xFFU);
break;
case 1: // FR (передний правый)
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Fb_Select & 0x01U) << 3U);
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Upper_Tgt_ro & 0x0FU) << 4U);
_d[1] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Upper_Tgt_ro >> 4U) & 0xFFU);
_d[2] |= (uint8_t) (_m->dbg_Sen_Duct_FR_Upper_Fb_ro & 0xFFU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Upper_Fb_ro >> 8U) & 0x0FU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Side_Fb_ro & 0x0FU) << 4U);
_d[4] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Side_Fb_ro >> 4U) & 0xFFU);
_d[5] |= (uint8_t) (_m->dbg_Sen_Duct_FR_Lower_Tgt_ro & 0xFFU);
_d[6] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Lower_Tgt_ro >> 8U) & 0x0FU);
_d[6] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Lower_Fb_ro & 0x0FU) << 4U);
_d[7] |= (uint8_t) ((_m->dbg_Sen_Duct_FR_Lower_Fb_ro >> 4U) & 0xFFU);
break;
case 2: // RL (задний левый)
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Fb_Select & 0x01U) << 3U);
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Tgt_ro & 0x0FU) << 4U);
_d[1] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Tgt_ro >> 4U) & 0xFFU);
_d[2] |= (uint8_t) (_m->dbg_Sen_Duct_RL_Fb_ro & 0xFFU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Fb_ro >> 8U) & 0x0FU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Side_Fb_ro & 0x0FU) << 4U);
_d[4] |= (uint8_t) ((_m->dbg_Sen_Duct_RL_Side_Fb_ro >> 4U) & 0xFFU);
break;
case 3: // RR (задний правый)
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Fb_Select & 0x01U) << 3U);
_d[0] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Tgt_ro & 0x0FU) << 4U);
_d[1] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Tgt_ro >> 4U) & 0xFFU);
_d[2] |= (uint8_t) (_m->dbg_Sen_Duct_RR_Fb_ro & 0xFFU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Fb_ro >> 8U) & 0x0FU);
_d[3] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Side_Fb_ro & 0x0FU) << 4U);
_d[4] |= (uint8_t) ((_m->dbg_Sen_Duct_RR_Side_Fb_ro >> 4U) & 0xFFU);
break;
}
*_len = (uint8_t) dbg_Sen_Duct_DLC;
*_ide = (uint8_t) dbg_Sen_Duct_IDE;
return dbg_Sen_Duct_CANID;
}
static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) { static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
#if (dbg_Act0_SEND == 1) #if (dbg_Act0_SEND == 1)
@ -488,8 +557,6 @@ static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
// multiplex variable // multiplex variable
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0; ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FL_Upper_Fb_ro = 0;
// multiplex variable // multiplex variable
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0; ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Side_Fb_ro = 0;
// multiplex variable // multiplex variable
@ -532,7 +599,6 @@ static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0; ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_FR_Fb_Select = 0;
// multiplex variable // multiplex variable
ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0; ccu_candb_dbg_tx.dbg_Sen_Duct.dbg_Sen_Duct_RL_Tgt_ro = 0;
// multiplex variable // multiplex variable
@ -583,7 +649,7 @@ static eTimeEventDbgTransmit isEventTransmitter(tCanSpamDebugTransmitter *env) {
env->can_id = Pack_dbg_Sen_Duct_candb_dbg(&ccu_candb_dbg_tx.dbg_Sen_Duct, env->canFrame.data, env->can_id = Pack_dbg_Sen_Duct_candb_dbg2(&ccu_candb_dbg_tx.dbg_Sen_Duct, env->canFrame.data,
&env->canFrame.dlc, &env->ide); &env->canFrame.dlc, &env->ide);
++env->dbg_Sen_Duct_MultMsg_Idx; ++env->dbg_Sen_Duct_MultMsg_Idx;
@ -629,8 +695,9 @@ void set_CanDebugSpamTransmitter(tCanSpamDebugTransmitter *env) {
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Duct, &rtY.dbgCAN_dbg_Sen_Duct_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Duct)); memcpy(&ccu_candb_dbg_tx.dbg_Sen_Duct, &rtY.dbgCAN_dbg_Sen_Duct_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Duct));
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Eva, &rtY.dbgCAN_dbg_Sen_Eva_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Eva)); memcpy(&ccu_candb_dbg_tx.dbg_Sen_Eva, &rtY.dbgCAN_dbg_Sen_Eva_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Eva));
memcpy(&ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model, memcpy(&ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model, sizeof(ccu_candb_dbg_tx.dbg_Logic_Blower));
sizeof(ccu_candb_dbg_tx.dbg_Logic_Blower));
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Amb, &rtY.dbgCAN_dbg_Sen_Amb_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Amb));
osMutexRelease(env->access); osMutexRelease(env->access);
} else { } else {

View File

@ -35,7 +35,7 @@
#define dbg_Logic_State_SEND 0 #define dbg_Logic_State_SEND 0
#define dbg_Logic_Valve_SEND 0 #define dbg_Logic_Valve_SEND 0
#define dbg_Sen_0_SEND 0 #define dbg_Sen_0_SEND 0
#define dbg_Sen_Amb_SEND 0 #define dbg_Sen_Amb_SEND 1
#define dbg_Sen_Demist_SEND 0 #define dbg_Sen_Demist_SEND 0
#define dbg_Sen_Duct_SEND 1 #define dbg_Sen_Duct_SEND 1
#define dbg_Sen_Eva_SEND 1 #define dbg_Sen_Eva_SEND 1