From 4ea1ab24ddb6c260a2a8258ee2a7c20c475651b1 Mon Sep 17 00:00:00 2001 From: darya Date: Tue, 23 Jun 2026 13:41:46 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=2023.06.2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CanSpamDebugTransmitter.c | 50 +++++++++++++++++++++++++-------------- CanSpamDebugTransmitter.h | 1 + 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/CanSpamDebugTransmitter.c b/CanSpamDebugTransmitter.c index 584e6c4..5cd58ee 100644 --- a/CanSpamDebugTransmitter.c +++ b/CanSpamDebugTransmitter.c @@ -45,7 +45,7 @@ static void sendEventToCan(tCanSpamDebugTransmitter *env) { 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); } @@ -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_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_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_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_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) { for (;;) { 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) { - sendEventToCan(env); + env->timeMs += 50; + + 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) { - if (!env->thread.id) { - env->thread.id = osThreadNew((osThreadFunc_t) (CanSpamDebugTransmitter_Thread), (void *) (env), - &env->thread.attr); - } -} \ No newline at end of file + void CanSpamDebugTransmitter_StartThread(tCanSpamDebugTransmitter *env) { + if (!env->thread.id) { + env->thread.id = osThreadNew((osThreadFunc_t) (CanSpamDebugTransmitter_Thread), (void *) (env), + &env->thread.attr); + } + } \ No newline at end of file diff --git a/CanSpamDebugTransmitter.h b/CanSpamDebugTransmitter.h index a1e07a3..3c6c7fa 100644 --- a/CanSpamDebugTransmitter.h +++ b/CanSpamDebugTransmitter.h @@ -111,6 +111,7 @@ typedef struct { osMutexId_t access; can_rx_message_type canFrame; osMutexId_t modelTaskAccess; + bool isMute; tCanSpamDebugReceiver *canSpamDebugReceiver;