From 443413732cb13b23333c68665874e1d0ca953b5c Mon Sep 17 00:00:00 2001 From: cfif Date: Tue, 30 Jun 2026 16:28:23 +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=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B8=D1=80=D0=BE=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8=2030.06.2026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CanSpamReceiver.c | 22 +++++++++++++++++++++- CanSpamReceiver.h | 2 ++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CanSpamReceiver.c b/CanSpamReceiver.c index dc607f9..4ab18da 100644 --- a/CanSpamReceiver.c +++ b/CanSpamReceiver.c @@ -25,7 +25,7 @@ void CanSpamReceiver_Init(tCanSpamReceiver *env, static void ListenCanSpamReceiver(tCanSpamReceiver *env) { - uint16_t recv = env->ioCanFrame->receive(env->ioCanFrame->env, PROTOCOL_CAN_RAW, (uint8_t * ) & env->canFrame, 1, + uint16_t recv = env->ioCanFrame->receive(env->ioCanFrame->env, PROTOCOL_CAN_RAW, (uint8_t *) &env->canFrame, 1, 1000); if (recv == 0) { @@ -51,6 +51,26 @@ static void ListenCanSpamReceiver(tCanSpamReceiver *env) { } +bool get_is_NoNull_CanSpam_BCM_PowerTrain_Receiver(tCanSpamReceiver *env) { + if (osMutexAcquire(env->access, 5000) == osOK) { + + uint8_t *data = (uint8_t *) &ccu_candb_rx.BCM_Powertrain; + + for (uint8_t i = 0; i < (uint8_t)sizeof(BCM_Powertrain_t); ++i) { + if (data[i] != 0) { + osMutexRelease(env->access); + return true; + } + } + + osMutexRelease(env->access); + } else { + LoggerErrorStatic(LOGGER, LOG_SIGN, "Access error get_CanSpamReceiver"); + } + + return false; +} + void get_CanSpamReceiver(tCanSpamReceiver *env) { if (osMutexAcquire(env->access, 5000) == osOK) { memcpy(&rtDW.TM_CP_model, &ccu_candb_rx.TM_CP, sizeof(rtDW.TM_CP_model)); diff --git a/CanSpamReceiver.h b/CanSpamReceiver.h index 2eb8b2f..224c820 100644 --- a/CanSpamReceiver.h +++ b/CanSpamReceiver.h @@ -34,4 +34,6 @@ void CanSpamReceiver_StartThread(tCanSpamReceiver *env); void get_CanSpamReceiver(tCanSpamReceiver *env); +bool get_is_NoNull_CanSpam_BCM_PowerTrain_Receiver(tCanSpamReceiver *env); + #endif //HVAC_CAN_SPAM_RECEIVER_H