From 08d55ec3b7d0ca7200e52650a943703c5064814e Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 6 Apr 2026 14:33:50 +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 --- LinActuatorWork.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/LinActuatorWork.c b/LinActuatorWork.c index ba23d94..48d45fc 100644 --- a/LinActuatorWork.c +++ b/LinActuatorWork.c @@ -7,6 +7,42 @@ //#define LOG_SIGN "Lin" #define LOGGER &env->slog.logger +static bool isBroadCastTriggered(tLinTaskActuator *env, ActuatorCmdBus *actuator_Command_Model_trigger_local) { + + for (uint8_t j = 0; j < env->LIN_ISSR_ALL; ++j) { + if (actuator_Command_Model_trigger_local->BUS_ADR[j] != 0) { + return false; + } + } + + return true; +} + +static void showLogCommand(tMma *env, char *LOG_SIGN, uint8_t COM) { + switch (COM) { + case LIN_ACT_CFR_MOD: { + LoggerInfoStatic(LOGGER, LOG_SIGN, "LIN_ACT_CFR_MOD") + break; + } + + case LIN_ACT_CFR_INI: { + LoggerInfoStatic(LOGGER, LOG_SIGN, "LIN_ACT_CFR_INI") + break; + } + + case LIN_ACT_CFR_SET: { + LoggerInfoStatic(LOGGER, LOG_SIGN, "LIN_ACT_CFR_SET") + break; + } + + default: { + LoggerInfoStatic(LOGGER, LOG_SIGN, "UNKNOWN (Error)") + break; + } + + } +} + // actuator_Command_Model_local - Выход модели (команды для актуаторов) ЛОКАЛЬНО // actuator_Command_Model_trigger_local - Выход модели (команды для актуаторов) ЗАХВАТ // actuator_Output_Model_local - Вход модели (состояния актуаторов) ЛОКАЛЬНЫЙ @@ -78,7 +114,15 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, // Если принята команда if (*triggerCommand == true) { #if (LOG_LIN_ACTUATOR == 1) - LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND") + if (isBroadCastTriggered(linTaskActuator, actuator_Command_Model_trigger_local)) { + LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND (BROADCAST):") + showLogCommand(env, LOG_SIGN, actuator_Command_Model_trigger_local->COM[0]); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND (NO BROADCAST):") + for (uint8_t i = 0; i < linTaskActuator->LIN_ISSR_ALL; ++i) { + showLogCommand(env, LOG_SIGN, actuator_Command_Model_trigger_local->COM[i]); + } + } #endif // actuator_Output_Model_local->Busy = 1;