Обновление

This commit is contained in:
cfif 2026-04-24 13:39:48 +03:00
parent 55b7bd9306
commit a215d4952d
2 changed files with 8 additions and 5 deletions

View File

@ -48,10 +48,12 @@ static void showLogCommand(tMma *env, char *LOG_SIGN, uint8_t BUS_ADR, uint8_t C
} }
} }
#if (LOG_LIN_ACTUATOR == 1)
#define IS_LOGGING_ENABLED(numAct) \ #define IS_LOGGING_ENABLED(numAct) \
( (numAct == 1 && LOG_LIN1_ACTUATOR == 1) || \ ( (numAct == 1 && LOG_LIN1_ACTUATOR == 1) || \
(numAct == 2 && LOG_LIN2_ACTUATOR == 1) || \ (numAct == 2 && LOG_LIN2_ACTUATOR == 1) || \
(numAct == 3 && LOG_LIN3_ACTUATOR == 1) ) (numAct == 3 && LOG_LIN3_ACTUATOR == 1) )
#endif
// actuator_Command_Model_local - Выход модели (команды для актуаторов) ЛОКАЛЬНО // actuator_Command_Model_local - Выход модели (команды для актуаторов) ЛОКАЛЬНО
// actuator_Command_Model_trigger_local - Выход модели (команды для актуаторов) ЗАХВАТ // actuator_Command_Model_trigger_local - Выход модели (команды для актуаторов) ЗАХВАТ
@ -86,12 +88,13 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, uint8_t numAc
#endif #endif
actuator_Output_Model_local->Busy = 0; actuator_Output_Model_local->Busy = 0;
// Разрешение обработки новой команды // Разрешение обработки новой команды
env->isActuatorNoGetNextCommand = false; env->isActuatorNoGetNextCommand[numAct - 1] = false;
// Установка входной команды в LIN_ACT_CFR_NONE // Обнуляем команду в локальном буфере
actuator_Command_Model_local->COM[i] = LIN_ACT_CFR_NONE; actuator_Command_Model_local->COM[i] = LIN_ACT_CFR_NONE;
} }
// ТОЛЬКО если команда не SUCCESSFUL, копируем новые данные
linTaskActuator->linCommandActuator[i].COM = actuator_Command_Model_local->COM[i]; linTaskActuator->linCommandActuator[i].COM = actuator_Command_Model_local->COM[i];
linTaskActuator->linCommandActuator[i].Stall_SET = actuator_Command_Model_local->Stall_SET[i]; linTaskActuator->linCommandActuator[i].Stall_SET = actuator_Command_Model_local->Stall_SET[i];
linTaskActuator->linCommandActuator[i].Lnoise_SET = actuator_Command_Model_local->Lnoise_SET[i]; linTaskActuator->linCommandActuator[i].Lnoise_SET = actuator_Command_Model_local->Lnoise_SET[i];
@ -125,7 +128,7 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, uint8_t numAc
if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) { if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) {
// Если прията команда и актуатор не занят (может принимать команды) // Если прията команда и актуатор не занят (может принимать команды)
if ((*triggerCommand == true) && (env->isActuatorNoGetNextCommand == false)) { if ((*triggerCommand == true) && (env->isActuatorNoGetNextCommand[numAct - 1] == false)) {
*triggerCommand = false; *triggerCommand = false;
@ -148,7 +151,7 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, uint8_t numAc
actuator_Output_Model_local->Busy = 1; actuator_Output_Model_local->Busy = 1;
// Запрещение обработки новой команды // Запрещение обработки новой команды
env->isActuatorNoGetNextCommand = true; env->isActuatorNoGetNextCommand[numAct - 1] = true;
// начало --- ВЫХОД МОДЕЛИ ---------- // начало --- ВЫХОД МОДЕЛИ ----------

View File

@ -96,7 +96,7 @@ typedef struct {
ActuatorCmdBusInput actuator_Ch2_Input_Model_local_3; ActuatorCmdBusInput actuator_Ch2_Input_Model_local_3;
bool isActuatorNoGetNextCommand; bool isActuatorNoGetNextCommand[3];
} tMma; } tMma;