86 lines
2.0 KiB
C
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
|