From 9e8affc91fac3851cefbd73eeaf13ba8add306c8 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 8 Dec 2025 11:31:45 +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?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CanSpamTransmitter.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ CanSpamTransmitter.h | 7 +++++++ 2 files changed, 51 insertions(+) diff --git a/CanSpamTransmitter.c b/CanSpamTransmitter.c index 6cb2ad0..362806e 100644 --- a/CanSpamTransmitter.c +++ b/CanSpamTransmitter.c @@ -19,6 +19,9 @@ void CanSpamTransmitter_Init(tCanSpamTransmitter *env, static void TransCanSpamTransmitter(tCanSpamTransmitter *env) { + CCU_AC_Ctrl_t CCU_AC_Ctrl; + + uint32_t timeMs = GetSystemTick(); if (env->time_CCU_Stat1_CYC < timeMs) { @@ -46,6 +49,47 @@ static void TransCanSpamTransmitter(tCanSpamTransmitter *env) { } + if (env->time_CCU_Requests < timeMs) { + env->time_CCU_Requests = timeMs + CCU_Requests_CYC; + env->can_id = Pack_CCU_Requests_candb(&ccu_candb_tx.CCU_Requests, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_HVC_Req_Msg < timeMs) { + env->time_CCU_HVC_Req_Msg = timeMs + CCU_HVC_Req_Msg_CYC; + env->can_id = Pack_CCU_HVC_Req_Msg_candb(&ccu_candb_tx.CCU_HVC_Req_Msg, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_VCU_Msg1 < timeMs) { + env->time_CCU_VCU_Msg1 = timeMs + CCU_VCU_Msg1_CYC; + env->can_id = Pack_CCU_VCU_Msg1_candb(&ccu_candb_tx.CCU_VCU_Msg1, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_VCU_Msg2 < timeMs) { + env->time_CCU_VCU_Msg2 = timeMs + CCU_VCU_Msg2_CYC; + env->can_id = Pack_CCU_VCU_Msg2_candb(&ccu_candb_tx.CCU_VCU_Msg2, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_Msg1 < timeMs) { + env->time_CCU_Msg1 = timeMs + CCU_Msg1_CYC; + env->can_id = Pack_CCU_Msg1_candb(&ccu_candb_tx.CCU_Msg1, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_Msg3 < timeMs) { + env->time_CCU_Msg3 = timeMs + CCU_Msg3_CYC; + env->can_id = Pack_CCU_Msg3_candb(&ccu_candb_tx.CCU_Msg3, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } + + if (env->time_CCU_AC_Ctrl < timeMs) { + env->time_CCU_AC_Ctrl = timeMs + CCU_AC_Ctrl_CYC; + env->can_id = Pack_CCU_AC_Ctrl_candb(&ccu_candb_tx.CCU_AC_Ctrl, env->canFrame.data, &env->canFrame.dlc, &env->ide); + return; + } } static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) { diff --git a/CanSpamTransmitter.h b/CanSpamTransmitter.h index 95edf6c..67fb6fa 100644 --- a/CanSpamTransmitter.h +++ b/CanSpamTransmitter.h @@ -22,6 +22,13 @@ typedef struct { uint32_t time_CCU_Stat2_CYC; uint32_t time_CCU_Stat3_CYC; uint32_t time_CCU_Errors_CYC; + uint32_t time_CCU_Requests; + uint32_t time_CCU_HVC_Req_Msg; + uint32_t time_CCU_VCU_Msg1; + uint32_t time_CCU_VCU_Msg2; + uint32_t time_CCU_Msg1; + uint32_t time_CCU_Msg3; + uint32_t time_CCU_AC_Ctrl; struct { osThreadId_t id;