From 668cd517ad1e357cb56dd6e77bdaa9c6ccc029e1 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 --- Model_Task.c | 18 +++++++++++------- Model_Task.h | 17 +++++++++++++++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Model_Task.c b/Model_Task.c index b9a4024..fb2b98b 100644 --- a/Model_Task.c +++ b/Model_Task.c @@ -12,9 +12,17 @@ void ModelTask_Init( tModelTask *env, + tLinTaskActuator *linTaskActuator1, + tLinTaskActuator *linTaskActuator2, + tLinTaskActuator *linTaskActuator3, tLoggerInterface *logger ) { HVAC_model_initialize(); + + env->linTaskActuator1 = linTaskActuator1; + env->linTaskActuator2 = linTaskActuator2; + env->linTaskActuator3 = linTaskActuator3; + env->access = osMutexNew(NULL); env->logger = logger; InitThreadAtrStatic(&env->thread.attr, "ModelTask", env->thread.controlBlock, env->thread.stack, osPriorityNormal); @@ -23,12 +31,10 @@ void ModelTask_Init( static bool setActuatorBusy(tModelTask *env) { - for (uint8_t i = 0; i < 9; ++i) { + for (uint8_t i = 0; i < env->linTaskActuator1->LIN_ISSR_ALL; ++i) { if (Actuator_Ch0_Command_Model.COM[i] != 0) { -#if (LOG_LIN_ACTUATOR == 1) - LoggerInfoStatic(LOGGER, LOG_SIGN, "DETECT COMMAND") -#endif - env->triggerCommand = true; + + env->triggerCommand1 = true; memcpy(&env->triggerActuatorCmdBus_1, &Actuator_Ch0_Command_Model, sizeof(ActuatorCmdBus)); @@ -44,8 +50,6 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) { for (;;) { if (osMutexAcquire(env->access, 1000) == osOK) { - //LoggerFormatInfo(LOGGER, LOG_SIGN, "in_Busy_Ch0 = %d in_Act_Stall_Slave_Ch0 = %d", rtU.in_Busy_Ch0, rtU.in_Act_Stall_Slave_Ch0[7]) - HVAC_model_step(); setActuatorBusy(env); env->isUpdate = true; diff --git a/Model_Task.h b/Model_Task.h index 8efa132..4ec63fd 100644 --- a/Model_Task.h +++ b/Model_Task.h @@ -9,6 +9,7 @@ #include "stdbool.h" #include "LoggerInterface.h" #include "HVAC_model.h" +#include "LinActuatorTasks.h" typedef struct { @@ -16,7 +17,13 @@ typedef struct { tLoggerInterface *logger; - bool triggerCommand; + tLinTaskActuator *linTaskActuator1; + tLinTaskActuator *linTaskActuator2; + tLinTaskActuator *linTaskActuator3; + + bool triggerCommand1; + bool triggerCommand2; + bool triggerCommand3; ActuatorCmdBus triggerActuatorCmdBus_1; ActuatorCmdBus triggerActuatorCmdBus_2; ActuatorCmdBus triggerActuatorCmdBus_3; @@ -33,7 +40,13 @@ typedef struct { } tModelTask; -void ModelTask_Init(tModelTask *env, tLoggerInterface *logger); +void ModelTask_Init( + tModelTask *env, + tLinTaskActuator *linTaskActuator1, + tLinTaskActuator *linTaskActuator2, + tLinTaskActuator *linTaskActuator3, + tLoggerInterface *logger +); void ModelTask_StartThread(tModelTask *env);