diff --git a/LinActuatorWork.c b/LinActuatorWork.c index 433cf78..fdda274 100644 --- a/LinActuatorWork.c +++ b/LinActuatorWork.c @@ -48,12 +48,17 @@ static void showLogCommand(tMma *env, char *LOG_SIGN, uint8_t BUS_ADR, uint8_t C } } +#define IS_LOGGING_ENABLED(numAct) \ + ( (numAct == 1 && LOG_LIN1_ACTUATOR == 1) || \ + (numAct == 2 && LOG_LIN2_ACTUATOR == 1) || \ + (numAct == 3 && LOG_LIN3_ACTUATOR == 1) ) + // actuator_Command_Model_local - Выход модели (команды для актуаторов) ЛОКАЛЬНО // actuator_Command_Model_trigger_local - Выход модели (команды для актуаторов) ЗАХВАТ // actuator_Output_Model_local - Вход модели (состояния актуаторов) ЛОКАЛЬНЫЙ // actuator_Output_Model_model - Вход модели (состояния актуаторов) МОДЕЛИ -void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, +void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, uint8_t numAct, ActuatorCmdBus *actuator_Command_Model_local, ActuatorCmdBus *actuator_Command_Model_trigger_local, ActuatorCmdBusInput *actuator_Output_Model_local, @@ -75,7 +80,9 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, // Если команда выполнена if (linTaskActuator->linCommandActuator[i].COM == LIN_ACT_CFR_SUCCESSFUL) { #if (LOG_LIN_ACTUATOR == 1) - LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR: %d - SUCCESSFUL COMMAND (UNSET BUSY)", i + 1) + if (IS_LOGGING_ENABLED(numAct)) { + LoggerFormatInfo(LOGGER, LOG_SIGN, "BUS_ADR: %d - SUCCESSFUL COMMAND (UNSET BUSY)", i + 1) + } #endif actuator_Output_Model_local->Busy = 0; // Разрешение обработки новой команды @@ -123,15 +130,17 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, *triggerCommand = false; #if (LOG_LIN_ACTUATOR == 1) - if (isBroadCastTriggered(linTaskActuator, actuator_Command_Model_trigger_local)) { - LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND (BROADCAST):") - showLogCommand(env, LOG_SIGN, actuator_Command_Model_trigger_local->BUS_ADR[0], - 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->BUS_ADR[i], - actuator_Command_Model_trigger_local->COM[i]); + if (IS_LOGGING_ENABLED(numAct)) { + if (isBroadCastTriggered(linTaskActuator, actuator_Command_Model_trigger_local)) { + LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND (BROADCAST):") + showLogCommand(env, LOG_SIGN, actuator_Command_Model_trigger_local->BUS_ADR[0], + 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->BUS_ADR[i], + actuator_Command_Model_trigger_local->COM[i]); + } } } #endif @@ -149,7 +158,9 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, // Сброс STALL в состоянии актуатор (локальном состоянии) #if (LOG_LIN_ACTUATOR == 1) - LoggerInfoStatic(LOGGER, linTaskActuator->SIGN_LOG, "Reset LOCAL STALL (DETECT STALL RESET)") + if (IS_LOGGING_ENABLED(numAct)) { + LoggerInfoStatic(LOGGER, linTaskActuator->SIGN_LOG, "Reset LOCAL STALL (DETECT STALL RESET)") + } #endif for (uint8_t i = 0; i < linTaskActuator->LIN_ISSR_ALL; ++i) { actuator_Output_Model_local->in_Act_Stall_Slave[i] = LIN_STALL_STA_OFF; diff --git a/LinActuatorWork.h b/LinActuatorWork.h index 47cc474..536624d 100644 --- a/LinActuatorWork.h +++ b/LinActuatorWork.h @@ -8,7 +8,7 @@ #include "MainModesArbiter_Private.h" #include "HVAC_model_types.h" -void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, +void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, uint8_t numAct, ActuatorCmdBus *actuator_Command_Model_local, ActuatorCmdBus *actuator_Command_Model_trigger_local, ActuatorCmdBusInput *actuator_Output_Model_local, diff --git a/MainModesArbiter.c b/MainModesArbiter.c index 23a1643..037d6f5 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -105,16 +105,15 @@ void ANALOG_SENSOR(tMma *env, char *desc, uint16_t adc_value) { } void LoadDataInFromModel(tMma *env) { - int16_t temp1 = 0; - float temp2 = 0; +// int16_t temp1 = 0; +// float temp2 = 0; - if (osMutexAcquire(env->adcTask0.access, 1000) == osOK) { + if (osMutexAcquire(env->adcTask0.access, 5000) == osOK) { if (env->adcTask0.ADC_isUpdate) { env->adcTask0.ADC_isUpdate = false; memcpy(&env->ADC_Data_Model_local, &env->adcTask0.ADC0_Data, sizeof(env->adcTask0.ADC0_Data)); - asm("nop"); @@ -182,7 +181,7 @@ void LoadDataInFromModel(tMma *env) { } - if (osMutexAcquire(env->adcTask1.access, 1000) == osOK) { + if (osMutexAcquire(env->adcTask1.access, 5000) == osOK) { if (env->adcTask1.ADC_isUpdate) { env->adcTask1.ADC_isUpdate = false; @@ -390,25 +389,27 @@ static _Noreturn void Mma_Thread(tMma *env) { */ LoadDataInFromModel(env); -/* - LinActuatorWork(env, &env->linTaskActuator1, + + LinActuatorWork(env, &env->linTaskActuator1, 1, &env->actuator_Ch0_Command_Model_local_1, &env->ModelTask.triggerActuatorCmdBus_1, &env->actuator_Ch0_Input_Model_local_1, &Actuator_Ch0_Status_Model, &env->ModelTask.triggerCommand1, "Ln1 "); -*/ - LinActuatorWork(env, &env->linTaskActuator2, + + + LinActuatorWork(env, &env->linTaskActuator2, 2, &env->actuator_Ch1_Command_Model_local_2, &env->ModelTask.triggerActuatorCmdBus_2, &env->actuator_Ch1_Input_Model_local_2, &Actuator_Ch1_Status_Model, &env->ModelTask.triggerCommand2, "Ln2 "); -/* - LinActuatorWork(env, &env->linTaskActuator3, + + + LinActuatorWork(env, &env->linTaskActuator3, 3, &env->actuator_Ch2_Command_Model_local_3, &env->ModelTask.triggerActuatorCmdBus_3, &env->actuator_Ch2_Input_Model_local_3, &Actuator_Ch2_Status_Model, &env->ModelTask.triggerCommand3, "Ln3 "); -*/ + SystemDelayMs(50);