From 18514376d13a0787312154b3e1ba0d4951c7755d Mon Sep 17 00:00:00 2001 From: cfif Date: Tue, 28 Apr 2026 10:38:59 +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 | 38 +++++++++++++++++++++++++++++++------- CanSpamTransmitter.h | 13 +++++++++++++ 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/CanSpamTransmitter.c b/CanSpamTransmitter.c index 2182ddb..a20687f 100644 --- a/CanSpamTransmitter.c +++ b/CanSpamTransmitter.c @@ -38,6 +38,7 @@ static void sendEventToCan(tCanSpamTransmitter *env) { static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { +#if (CCU_Stat1_SEND == 1) if (env->time_CCU_Stat1_CYC < env->timeMs) { env->time_CCU_Stat1_CYC = env->timeMs + CCU_Stat1_CYC; @@ -45,7 +46,10 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Stat1_CYC; } +#endif + +#if (CCU_Stat2_SEND == 1) if (env->time_CCU_Stat2_CYC < env->timeMs) { env->time_CCU_Stat2_CYC = env->timeMs + CCU_Stat2_CYC; @@ -53,7 +57,9 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Stat2_CYC; } +#endif +#if (CCU_Stat3_SEND == 1) if (env->time_CCU_Stat3_CYC < env->timeMs) { env->time_CCU_Stat3_CYC = env->timeMs + CCU_Stat3_CYC; @@ -61,7 +67,9 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Stat3_CYC; } +#endif +#if (CCU_Errors_SEND == 1) if (env->time_CCU_Errors_CYC < env->timeMs) { env->time_CCU_Errors_CYC = env->timeMs + CCU_Errors_CYC; @@ -71,8 +79,10 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Errors_CYC; } +#endif +#if (CCU_Requests_SEND == 1) if (env->time_CCU_Requests < env->timeMs) { env->time_CCU_Requests = env->timeMs + CCU_Requests_CYC; @@ -81,10 +91,12 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Requests; } +#endif // начало--------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ // начало--------------------------------------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) { env->time_CCU_HVC_Req_Msg = env->timeMs + CCU_HVC_Req_Msg_CYC; @@ -93,6 +105,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_HVC_Req_Msg; } +#endif // конец ---------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ // конец ---------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ // конец ---------------------------------------0x310 CCU_HVC_Req_Msg------------------------------------------------ @@ -100,6 +113,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- +#if (CCU_VCU_Msg1_SEND == 1) if (env->time_CCU_VCU_Msg1 < env->timeMs) { env->time_CCU_VCU_Msg1 = env->timeMs + CCU_VCU_Msg1_CYC; @@ -108,6 +122,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_VCU_Msg1; } +#endif // конец РЕЗЕРВ---------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- // конец РЕЗЕРВ---------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- // конец РЕЗЕРВ---------------------------------------0x315 CCU_VCU_Msg1--------------------------------------------------- @@ -115,6 +130,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- +#if (CCU_VCU_Msg2_SEND == 1) if (env->time_CCU_VCU_Msg2 < env->timeMs) { env->time_CCU_VCU_Msg2 = env->timeMs + CCU_VCU_Msg2_CYC; @@ -123,6 +139,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_VCU_Msg2; } +#endif // конец РЕЗЕРВ---------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- // конец РЕЗЕРВ---------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- // конец РЕЗЕРВ---------------------------------------0x316 CCU_VCU_Msg2--------------------------------------------------- @@ -130,6 +147,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- +#if (CCU_Msg1_SEND == 1) if (env->time_CCU_Msg1 < env->timeMs) { env->time_CCU_Msg1 = env->timeMs + CCU_Msg1_CYC; @@ -137,6 +155,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Msg1; } +#endif // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- // начало--------------------------------------0x380 CCU_Msg1------------------------------------------------------- @@ -144,6 +163,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало--------------------------------------0x501 CCU_Msg3------------------------------------------------------- // начало--------------------------------------0x501 CCU_Msg3------------------------------------------------------- // начало--------------------------------------0x501 CCU_Msg3------------------------------------------------------- +#if (CCU_Msg3_SEND == 1) if (env->time_CCU_Msg3 < env->timeMs) { env->time_CCU_Msg3 = env->timeMs + CCU_Msg3_CYC; @@ -151,6 +171,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_Msg3; } +#endif // конец--------------------------------------0x501 CCU_Msg3------------------------------------------------------- // конец--------------------------------------0x501 CCU_Msg3------------------------------------------------------- // конец--------------------------------------0x501 CCU_Msg3------------------------------------------------------- @@ -158,6 +179,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { // начало РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- // начало РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- +#if (CU_AC_Ctrl_SEND == 1) if (env->time_CCU_AC_Ctrl < env->timeMs) { env->time_CCU_AC_Ctrl = env->timeMs + CCU_AC_Ctrl_CYC; @@ -166,6 +188,7 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { return event_CCU_AC_Ctrl; } +#endif // конец РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- // конец РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- // конец РЕЗЕРВ--------------------------------------0x18FFF200 CCU_AC_Ctrl ------------------------------------------------------- @@ -174,26 +197,26 @@ static eTimeEventTransmit isEventTransmitter(tCanSpamTransmitter *env) { } void set_CCU_Errors(tCanSpamTransmitter *env, CCU_Errors_t *CCU_Errors) { - if (osMutexAcquire(env->access, 1000) == osOK) { + if (osMutexAcquire(env->access, 5000) == osOK) { memcpy(&ccu_candb_tx.CCU_Errors, CCU_Errors, sizeof(CCU_Errors_t)); osMutexRelease(env->access); } else { - LoggerInfoStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Errors"); + LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Errors"); } } void set_CCU_Mute(tCanSpamTransmitter *env, bool mute) { - if (osMutexAcquire(env->access, 1000) == osOK) { + if (osMutexAcquire(env->access, 5000) == osOK) { env->isMute = mute; osMutexRelease(env->access); } else { - LoggerInfoStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Mute"); + LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error set_CCU_Mute"); } } static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) { for (;;) { - if (osMutexAcquire(env->access, 1000) == osOK) { + if (osMutexAcquire(env->access, 5000) == osOK) { if (env->isMute == false) { @@ -206,9 +229,10 @@ static _Noreturn void CanSpamTransmitter_Thread(tCanSpamTransmitter *env) { } osMutexRelease(env->access); - SystemDelayMs(1); - + } else { + LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error CanSpamTransmitter_Thread"); } + SystemDelayMs(1); } } diff --git a/CanSpamTransmitter.h b/CanSpamTransmitter.h index a44beb9..d2112eb 100644 --- a/CanSpamTransmitter.h +++ b/CanSpamTransmitter.h @@ -10,6 +10,19 @@ #include "ccu_candb-binutil.h" #include "LoggerInterface.h" +#define CCU_Stat1_SEND 1 +#define CCU_Stat2_SEND 1 +#define CCU_Stat3_SEND 1 +#define CCU_Errors_SEND 1 +#define CCU_Requests_SEND 1 +#define CCU_HVC_Req_Msg_SEND 1 +#define CCU_VCU_Msg1_SEND 1 +#define CCU_VCU_Msg2_SEND 1 +#define CCU_Msg1_SEND 1 +#define CCU_Msg3_SEND 1 +#define CU_AC_Ctrl_SEND 1 + + typedef enum { event_CCU_none = 0x00, event_CCU_Stat1_CYC = 0x01,