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;