From 6b130cda428b139c4995c7f93b266de62f56927b Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 16 Feb 2026 12:23:25 +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 | 7 ++++--- LinActuatorWork.h | 11 ++++++----- MainModesArbiter.c | 17 ++++++++++------- MainModesArbiter_InitStage.c | 2 +- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/LinActuatorWork.c b/LinActuatorWork.c index d44b0c5..459cdbb 100644 --- a/LinActuatorWork.c +++ b/LinActuatorWork.c @@ -17,6 +17,7 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, ActuatorCmdBus *actuator_Command_Model_trigger_local, ActuatorCmdBusInput *actuator_Output_Model_local, ActuatorCmdBusInput *actuator_Output_Model_model, + bool *triggerCommand, char *LOG_SIGN) { if (osMutexAcquire(linTaskActuator->access, 5000) == osOK) { @@ -72,7 +73,7 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, if (osMutexAcquire(env->ModelTask.access, 5000) == osOK) { // Если принята команда - if (env->ModelTask.triggerCommand == true) { + if (*triggerCommand == true) { #if (LOG_LIN_ACTUATOR == 1) LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND") #endif @@ -81,9 +82,9 @@ void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, } // Если прията команда и актуатор не занят - if ((env->ModelTask.triggerCommand == true) && (env->isActuatorWorkBusy == false)) { + if ((*triggerCommand == true) && (env->isActuatorWorkBusy == false)) { - env->ModelTask.triggerCommand = false; + *triggerCommand = false; env->isActuatorWorkBusy = true; // начало --- ВЫХОД МОДЕЛИ ---------- diff --git a/LinActuatorWork.h b/LinActuatorWork.h index fa26ce2..47cc474 100644 --- a/LinActuatorWork.h +++ b/LinActuatorWork.h @@ -9,10 +9,11 @@ #include "HVAC_model_types.h" void LinActuatorWork(tMma *env, tLinTaskActuator *linTaskActuator, - ActuatorCmdBus *actuator_Command_Model_local, - ActuatorCmdBus *actuator_Command_Model_trigger_local, - ActuatorCmdBusInput *actuator_Output_Model_local, - ActuatorCmdBusInput *actuator_Output_Model_model, - char *LOG_SIGN); + ActuatorCmdBus *actuator_Command_Model_local, + ActuatorCmdBus *actuator_Command_Model_trigger_local, + ActuatorCmdBusInput *actuator_Output_Model_local, + ActuatorCmdBusInput *actuator_Output_Model_model, + bool *triggerCommand, + char *LOG_SIGN); #endif //HVAC_M7_LINACTUATORWORK_H diff --git a/MainModesArbiter.c b/MainModesArbiter.c index f888b1a..d1da166 100644 --- a/MainModesArbiter.c +++ b/MainModesArbiter.c @@ -279,13 +279,15 @@ static _Noreturn void Mma_Thread(tMma *env) { env->pwms->pwmFrontIo.run(env->pwms->pwmFrontIo.env); // env->pwms->pwmRearIo.run(env->pwms->pwmRearIo.env); - env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, 50); - env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, 50); - env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, 50); - env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, 50); + for (;;) { -/* + + env->pwms->pwmFrontIo.setActivePercent(env->pwms->pwmFrontIo.env, 40); + env->pwms->pwmRearIo.setActivePercent(env->pwms->pwmRearIo.env, 50); + env->pwms->pwmFrontReservedIo.setActivePercent(env->pwms->pwmFrontReservedIo.env, 60); + env->pwms->pwmRearReservedIo.setActivePercent(env->pwms->pwmRearReservedIo.env, 70); + SystemDelayMs(10); uint8_t pwm1 = env->pwms->pwmFrontCaptureIO.getPwm(env->pwms->pwmFrontCaptureIO.env); LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "PWM (Front) = %d", pwm1) @@ -301,13 +303,14 @@ static _Noreturn void Mma_Thread(tMma *env) { SystemDelayMs(10); uint8_t pwm4 = env->pwms->pwmRearCaptureIO.getPwm(env->pwms->pwmRearReservedCaptureIO.env); LoggerFormatInfo(LOGGER, LOG_TASK_ARB, "PWM (Rear Reserve) = %d", pwm4) -*/ + + LoadDataInFromModel(env); LinActuatorWork(env, &env->linTaskActuator1, &env->actuator_Ch0_Command_Model_local_1, &env->ModelTask.triggerActuatorCmdBus_1, &env->actuator_Ch0_Input_Model_local_1, - &rtDW.Actuator_Ch0_Status_Model, "Ln1 "); + &rtDW.Actuator_Ch0_Status_Model, &env->ModelTask.triggerCommand1, "Ln1 "); SystemDelayMs(50); diff --git a/MainModesArbiter_InitStage.c b/MainModesArbiter_InitStage.c index 2fe7772..742aa68 100644 --- a/MainModesArbiter_InitStage.c +++ b/MainModesArbiter_InitStage.c @@ -154,7 +154,7 @@ static void Mma_InitSubSystems(tMma *env) { StandBy_Init(&env->standBy); - ModelTask_Init(&env->ModelTask, &env->slog.logger); + ModelTask_Init(&env->ModelTask, &env->linTaskActuator1, &env->linTaskActuator2, &env->linTaskActuator3, &env->slog.logger); LoggerInfoStatic(&env->slog.logger, LOG_TASK_MAIN, "End of subsystem initialization")