Обновление 23.06.2026

This commit is contained in:
Дарья Бараева 2026-06-23 13:41:46 +03:00
parent eeee7dbcc0
commit 4ea1ab24dd
2 changed files with 33 additions and 18 deletions

View File

@ -45,7 +45,7 @@ static void sendEventToCan(tCanSpamDebugTransmitter *env) {
env->canFrame.standard_id = env->can_id; env->canFrame.standard_id = env->can_id;
} }
env->ioCanFrame->transmit(env->ioCanFrame->env, (uint8_t *) &env->canFrame.data, env->canFrame.dlc, env->ioCanFrame->transmit(env->ioCanFrame->env, (uint8_t * ) & env->canFrame.data, env->canFrame.dlc,
env->can_id, env->canFrame.id_type, 100); env->can_id, env->canFrame.id_type, 100);
} }
@ -428,9 +428,11 @@ void set_CanDebugSpamTransmitter(tCanSpamDebugTransmitter *env) {
memcpy(&ccu_candb_dbg_tx.dbg_Act2, &rtY.dbgCAN_dbg_Act2_model, sizeof(ccu_candb_dbg_tx.dbg_Act2)); memcpy(&ccu_candb_dbg_tx.dbg_Act2, &rtY.dbgCAN_dbg_Act2_model, sizeof(ccu_candb_dbg_tx.dbg_Act2));
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, sizeof(ccu_candb_dbg_tx.dbg_Logic_Blower)); memcpy(&ccu_candb_dbg_tx.dbg_Logic_Blower, &rtY.dbgCAN_dbg_Logic_Blower_model,
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)); memcpy(&ccu_candb_dbg_tx.dbg_Sen_Amb, &rtY.dbgCAN_dbg_Sen_Amb_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Amb));
memcpy(&ccu_candb_dbg_tx.dbg_Sen_Incar, &rtY.dbgCAN_dbg_Sen_Incar_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_Incar)); memcpy(&ccu_candb_dbg_tx.dbg_Sen_Incar, &rtY.dbgCAN_dbg_Sen_Incar_model,
sizeof(ccu_candb_dbg_tx.dbg_Sen_Incar));
memcpy(&ccu_candb_dbg_tx.dbg_Sen_0, &rtY.dbgCAN_dbg_Sen_0_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_0)); memcpy(&ccu_candb_dbg_tx.dbg_Sen_0, &rtY.dbgCAN_dbg_Sen_0_model, sizeof(ccu_candb_dbg_tx.dbg_Sen_0));
memcpy(&ccu_candb_dbg_tx.dbg_Logic_Ac, &rtY.dbg_Logic_Ac_model, sizeof(ccu_candb_dbg_tx.dbg_Logic_Ac)); memcpy(&ccu_candb_dbg_tx.dbg_Logic_Ac, &rtY.dbg_Logic_Ac_model, sizeof(ccu_candb_dbg_tx.dbg_Logic_Ac));
@ -442,30 +444,42 @@ void set_CanDebugSpamTransmitter(tCanSpamDebugTransmitter *env) {
} }
} }
void set_CCU_Mute(tCanSpamDebugTransmitter *env, bool mute) {
if (osMutexAcquire(env->access, 5000) == osOK) {
env->isMute = mute;
osMutexRelease(env->access);
} else {
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Mute");
}
}
static _Noreturn void CanSpamDebugTransmitter_Thread(tCanSpamDebugTransmitter *env) { static _Noreturn void CanSpamDebugTransmitter_Thread(tCanSpamDebugTransmitter *env) {
for (;;) { for (;;) {
SystemDelayMs(50); SystemDelayMs(50);
if (osMutexAcquire(env->access, 5000) == osOK) { if (env->isMute == false) {
env->timeMs += 50; if (osMutexAcquire(env->access, 5000) == osOK) {
while (isEventTransmitter(env) != event_dbg_none) { env->timeMs += 50;
sendEventToCan(env);
while (isEventTransmitter(env) != event_dbg_none) {
sendEventToCan(env);
}
osMutexRelease(env->access);
} else {
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanSpamDebugTransmitter_Thread");
} }
osMutexRelease(env->access);
} else {
LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanSpamDebugTransmitter_Thread");
} }
} }
}
void CanSpamDebugTransmitter_StartThread(tCanSpamDebugTransmitter *env) { void CanSpamDebugTransmitter_StartThread(tCanSpamDebugTransmitter *env) {
if (!env->thread.id) { if (!env->thread.id) {
env->thread.id = osThreadNew((osThreadFunc_t) (CanSpamDebugTransmitter_Thread), (void *) (env), env->thread.id = osThreadNew((osThreadFunc_t) (CanSpamDebugTransmitter_Thread), (void *) (env),
&env->thread.attr); &env->thread.attr);
} }
} }

View File

@ -111,6 +111,7 @@ typedef struct {
osMutexId_t access; osMutexId_t access;
can_rx_message_type canFrame; can_rx_message_type canFrame;
osMutexId_t modelTaskAccess; osMutexId_t modelTaskAccess;
bool isMute;
tCanSpamDebugReceiver *canSpamDebugReceiver; tCanSpamDebugReceiver *canSpamDebugReceiver;