HVAC_M7_MODEL/Model_Task.h

86 lines
2.0 KiB
C

//
// Created by cfif on 19.12.2025.
//
#ifndef HVAC_M7_MODEL_TASK_H
#define HVAC_M7_MODEL_TASK_H
#include <cmsis_os.h>
#include "stdbool.h"
#include "LoggerInterface.h"
#include "HVAC_model.h"
#include "LinActuatorTasks.h"
#include "AdcTasks.h"
#include "ccu_candb-binutil.h"
#include "ccu_candb_dbg-binutil.h"
#include "CanSpamTransmitter.h"
#include "CanSpamDebugTransmitter.h"
#include "Pwms.h"
#include "CanSpamReceiver.h"
#include "DiagnosticTask.h"
typedef struct {
tAdc0Task *adc0Task;
tAdc1Task *adc1Task;
tCanSpamReceiver *canSpamReceiver;
tCanSpamTransmitter *canSpamTransmitter;
tCanSpamDebugTransmitter *canSpamDebugTransmitter;
tGpios *gpios;
tPwms *pwms;
tDiagnostic *diagnostic;
ccu_candb_tx_t ccu_candb_tx;
ccu_candb_dbg_tx_t ccu_candb_dbg_tx;
osMutexId_t access;
tLoggerInterface *logger;
tLinTaskActuator *linTaskActuator1;
tLinTaskActuator *linTaskActuator2;
tLinTaskActuator *linTaskActuator3;
bool triggerCommand1;
bool triggerCommand2;
bool triggerCommand3;
ActuatorCmdBus triggerActuatorCmdBus_1;
ActuatorCmdBus triggerActuatorCmdBus_2;
ActuatorCmdBus triggerActuatorCmdBus_3;
bool isRunning;
struct {
osThreadId_t id;
uint32_t stack[1024];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
} tModelTask;
void ModelTask_Init(
tModelTask *env,
tLinTaskActuator *linTaskActuator1,
tLinTaskActuator *linTaskActuator2,
tLinTaskActuator *linTaskActuator3,
tPwms *pwms,
tGpios *gpios,
tAdc0Task *adc0Task,
tAdc1Task *adc1Task,
tCanSpamReceiver *canSpamReceiver,
tCanSpamTransmitter *canSpamTransmitter,
tCanSpamDebugTransmitter *canSpamDebugTransmitter,
tDiagnostic *diagnostic,
tLoggerInterface *logger
);
void ModelTask_StartThread(tModelTask *env);
void ModelTask_StopThread(tModelTask *env);
#endif //HVAC_M7_MODEL_TASK_H