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;