diff --git a/CanSpamTransmitter.c b/CanSpamTransmitter.c index f96025b..371ab02 100644 --- a/CanSpamTransmitter.c +++ b/CanSpamTransmitter.c @@ -42,7 +42,7 @@ static void sendEventToCan(tCanSpamTransmitter *env) { static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { #if (CCU_Stat1_SEND == 1) - if (env->time_CCU_Stat1_CYC < env->timeMs) { + if (env->time_CCU_Stat1_CYC <= env->timeMs) { env->time_CCU_Stat1_CYC = env->timeMs + CCU_Stat1_CYC; env->can_id = Pack_CCU_Stat1_candb(&ccu_candb_tx.CCU_Stat1, env->canFrame.data, &env->canFrame.dlc, &env->ide); @@ -53,7 +53,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { #if (CCU_Stat2_SEND == 1) - if (env->time_CCU_Stat2_CYC < env->timeMs) { + if (env->time_CCU_Stat2_CYC <= env->timeMs) { env->time_CCU_Stat2_CYC = env->timeMs + CCU_Stat2_CYC; env->can_id = Pack_CCU_Stat2_candb(&ccu_candb_tx.CCU_Stat2, env->canFrame.data, &env->canFrame.dlc, &env->ide); @@ -63,7 +63,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { #endif #if (CCU_Stat3_SEND == 1) - if (env->time_CCU_Stat3_CYC < env->timeMs) { + if (env->time_CCU_Stat3_CYC <= env->timeMs) { env->time_CCU_Stat3_CYC = env->timeMs + CCU_Stat3_CYC; env->can_id = Pack_CCU_Stat3_candb(&ccu_candb_tx.CCU_Stat3, env->canFrame.data, &env->canFrame.dlc, &env->ide); @@ -73,7 +73,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { #endif #if (CCU_Errors_SEND == 1) - if (env->time_CCU_Errors_CYC < env->timeMs) { + if (env->time_CCU_Errors_CYC <= env->timeMs) { env->time_CCU_Errors_CYC = env->timeMs + CCU_Errors_CYC; env->can_id = Pack_CCU_Errors_candb(&ccu_candb_tx.CCU_Errors, env->canFrame.data, &env->canFrame.dlc, @@ -86,7 +86,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { #if (CCU_Requests_SEND == 1) - if (env->time_CCU_Requests < env->timeMs) { + if (env->time_CCU_Requests <= env->timeMs) { env->time_CCU_Requests = env->timeMs + CCU_Requests_CYC; env->can_id = Pack_CCU_Requests_candb(&ccu_candb_tx.CCU_Requests, env->canFrame.data, &env->canFrame.dlc, @@ -100,7 +100,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало--------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ // начало--------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ #if (CCU_HVC_Req_Msg_SEND == 1) - if (env->time_CCU_HVC_Req_Msg < env->timeMs) { + if (env->time_CCU_HVC_Req_Msg <= env->timeMs) { env->time_CCU_HVC_Req_Msg = env->timeMs + CCU_HVC_Req_Msg_CYC; // Rolling Counter [0 - 15] @@ -138,7 +138,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- #if (CCU_VCU_Msg1_SEND == 1) - if (env->time_CCU_VCU_Msg1 < env->timeMs) { + if (env->time_CCU_VCU_Msg1 <= env->timeMs) { env->time_CCU_VCU_Msg1 = env->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, @@ -155,7 +155,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- #if (CCU_VCU_Msg2_SEND == 1) - if (env->time_CCU_VCU_Msg2 < env->timeMs) { + if (env->time_CCU_VCU_Msg2 <= env->timeMs) { env->time_CCU_VCU_Msg2 = env->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, @@ -172,7 +172,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- #if (CCU_Msg1_SEND == 1) - if (env->time_CCU_Msg1 < env->timeMs) { + if (env->time_CCU_Msg1 <= env->timeMs) { env->time_CCU_Msg1 = env->timeMs + CCU_Msg1_CYC; // Rolling Counter [0 - 15] @@ -218,7 +218,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало--------------------------------------0x501 CCU_Msg3------------------------------------------------------- // начало--------------------------------------0x501 CCU_Msg3------------------------------------------------------- #if (CCU_Msg3_SEND == 1) - if (env->time_CCU_Msg3 < env->timeMs) { + if (env->time_CCU_Msg3 <= env->timeMs) { env->time_CCU_Msg3 = env->timeMs + CCU_Msg3_CYC; // Rolling Counter [0 - 15] @@ -255,7 +255,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- #if (CU_AC_Ctrl_SEND == 1) - if (env->time_CCU_AC_Ctrl < env->timeMs) { + if (env->time_CCU_AC_Ctrl <= env->timeMs) { env->time_CCU_AC_Ctrl = env->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, @@ -296,15 +296,16 @@ void set_CCU_Mute(tCanSpamTransmitter *env, bool mute) { static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) { for (;;) { + SystemDelayMs(100); + if (osMutexAcquire(env->access, 5000) == osOK) { if (env->isMute == false) { - env->timeMs = GetSystemTick(); + env->timeMs += 100; while (isEventTransmitter(env) != event_CCU_none) { sendEventToCan(env); - env->timeMs = GetSystemTick(); } } @@ -313,7 +314,7 @@ static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) { } else { LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanSpamTransmitter_Thread"); } - SystemDelayMs(1); + } }