HVAC_M7_DebugTesting/MainModesArbiter.h

118 lines
2.6 KiB
C

//
// Created by cfif on 05.05.23.
//
#ifndef WATER_BOX_BSD_MAINMODESARBITER_H
#define WATER_BOX_BSD_MAINMODESARBITER_H
#include "CmsisRtosThreadUtils.h"
//Железные интерфейсы
#include "PeripheralInterfaces.h"
//Подсистемы
#include "PowerManagement.h"
#include "Rtcs.h"
#include "LoggerToSerialPort.h"
#include "Indication.h"
#include "CommandLines.h"
#include "DeviceStorage.h"
#include "SerialPortCan.h"
#include "CanSerialPortFrameXCP.h"
#include "CanSpamReceiver.h"
#include "CanSpamTransmitter.h"
#include "Lins.h"
#include "LinActuatorTasks.h"
#include "AdcTasks.h"
#include "standby.h"
#include "Model_Task.h"
#include "HVAC_model.h"
#include "CanUds.h"
#include "DiagnosticTask.h"
#include "LinSensorTasks.h"
typedef struct {
// Преферийные интерфесы
tGpios *gpios;
tSerialPorts *serialPorts;
tLinPorts *linPorts;
tCanPorts *canPorts;
tLoggerToSerialPort slog;
tStorageOnFlash *flash;
tPwms *pwms;
tCanUds canUds;
tRtcs *rtcs;
tAdcs *adcs;
tDeviceStorage storage;
tPowerManagement power;
tCommandLine cli;
tIndication Indication;
tCanSerialPortFrameXCP CanSerialPortFrameXCP;
tCanSpamReceiver canSpamReceiver;
tCanSpamTransmitter canSpamTransmitter;
tLinTaskActuator linTaskActuator1;
tLinTaskActuator linTaskActuator2;
tLinTaskActuator linTaskActuator3;
tLin4TaskSensor linTaskSensor4;
tLin5TaskSensor linTaskSensor5;
tAdcTask adcTask0;
tAdcTask adcTask1;
tStandBy standBy;
tModelTask ModelTask;
tDiagnostic Diagnostic;
struct {
osThreadId_t id;
uint32_t stack[1024 * 1];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
// Входные данные (локальные) для модели
ActuatorCmdBus actuator_Ch0_Command_Model_local_1;
ActuatorCmdBus actuator_Ch1_Command_Model_local_2;
ActuatorCmdBus actuator_Ch2_Command_Model_local_3;
CmdBusADCData ADC_Data_Model_local;
// Выходные данные (локальные) для модели
ActuatorCmdBusInput actuator_Ch0_Input_Model_local_1;
ActuatorCmdBusInput actuator_Ch1_Input_Model_local_2;
ActuatorCmdBusInput actuator_Ch2_Input_Model_local_3;
bool isActuatorWorkBusy;
} tMma;
void Mma_Init(
tMma *env,
tGpios *gpios,
tAdcs *adcs,
tSerialPorts *serialPorts,
tLinPorts *linPorts,
tCanPorts *canPorts,
tStorageOnFlash *flash,
tPwms *pwms,
tRtcs *rtcs
);
void Mma_StartThread(tMma *env);
#endif //WATER_BOX_BSD_MAINMODESARBITER_H