HVAC_M7_ADC_TASKS/AdcTasks.h

227 lines
5.7 KiB
C

//
// Created by cfif on 15.12.2025.
//
#ifndef HVAC_M7_ADCTASKS_H
#define HVAC_M7_ADCTASKS_H
#include "AdcIO.h"
#include "stdbool.h"
#include <cmsis_os.h>
#include "Gpios.h"
#include "LoggerInterface.h"
#include "AdcFilter.h"
typedef struct {
uint32_t Sensor_Ambient_Temp;
uint32_t IGN_ANS;
uint32_t Sensor_AC_Pressure;
uint32_t Sensor_Incar_Temp_FL;
uint32_t Sensor_Incar_Temp_RL;
uint32_t Sensor_Rear_Evap_Temp;
uint32_t Sensor_Evap_Temp;
uint32_t Sensor_Rear_Duct1;
uint32_t Sensor_Rear_Duct2;
uint32_t Sensor_Front_Duct1;
uint32_t Sensor_Front_Duct2;
uint32_t Sensor_Front_Duct3;
uint32_t Sensor_Front_Duct4;
uint32_t Sensor_Rear_Duct3;
uint32_t Sensor_Rear_Duct4;
uint32_t Sensor_Incar_Temp_FR;
uint32_t Sensor_Incar_Temp_RR;
uint32_t Sensor_Rear_Duct5;
uint32_t Sensor_Rear_Duct6;
uint32_t Reserve_Sensor_Duct_Temp_1;
uint32_t Sensor_Front_Duct5;
uint32_t Sensor_Front_Duct6;
uint32_t BTS5120_2EKA_ShutoffValvePowerTXV1; //
uint32_t BTS5120_2EKA_ShutoffValvePowerTXV2; //
uint32_t Pressure_DIAG;
uint32_t BTS5180_2EKA_ShutOFFValveFront; //
uint32_t BTS5180_2EKA_ShutOFFValveRear; //
uint32_t BTS5180_2EKA_TwoWayValve; //
uint32_t BTS5180_2EKA_ReservePowerSupply; //
uint32_t BTS5180_2EKA_FrontIncarMotor; //
uint32_t BTS5180_2EKA_RearIncarMotor; //
uint32_t BTS5180_2EKA_ChannelPTCPower1; //
uint32_t BTS5180_2EKA_ChannelPTCPower2; //
uint32_t Reserve_Sensor_Duct_Temp_2;
uint32_t Sensor_PT_rHVAC_P;
uint32_t Sensor_A_T_reserve;
} tADC0_data;
typedef struct {
uint32_t VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB;
uint32_t VN7008AJ_DIAG_RearLINActuatorPowerDriverC;
uint32_t PBATT_CHECK;
uint32_t VN7008AJ_FrontLINActuatorPowerDriverAB;
uint32_t VN7008AJ_RearLINActuatorPowerDriverC;
uint32_t PT_F_HVAC_VCC_DIAG;
uint32_t PT_HVBchiller_VCC_DIAG;
uint32_t PT_R_HVAC_VCC_DIAG;
uint32_t Sensor_PT_fHVAC_P;
uint32_t Sensor_PT_fHVAC_T;
uint32_t Sensor_PT_rHVAC_T;
uint32_t Sensor_HVBchiller_P;
uint32_t Sensor_HVBchiller_T;
uint32_t Sensor_PT_P_reserve;
uint32_t Sensor_PT_T_reserve;
uint32_t Sensor_B_T_reserve;
} tADC1_data;
typedef struct {
ADC_Filter Sensor_Ambient_Temp;
ADC_Filter IGN_ANS;
ADC_Filter Sensor_AC_Pressure;
ADC_Filter Sensor_Incar_Temp_FL;
ADC_Filter Sensor_Incar_Temp_RL;
ADC_Filter Sensor_Rear_Evap_Temp;
ADC_Filter Sensor_Evap_Temp;
ADC_Filter Sensor_Rear_Duct1;
ADC_Filter Sensor_Rear_Duct2;
ADC_Filter Sensor_Front_Duct1;
ADC_Filter Sensor_Front_Duct2;
ADC_Filter Sensor_Front_Duct3;
ADC_Filter Sensor_Front_Duct4;
ADC_Filter Sensor_Rear_Duct3;
ADC_Filter Sensor_Rear_Duct4;
ADC_Filter Sensor_Incar_Temp_FR;
ADC_Filter Sensor_Incar_Temp_RR;
ADC_Filter Sensor_Rear_Duct5;
ADC_Filter Sensor_Rear_Duct6;
ADC_Filter Reserve_Sensor_Duct_Temp_1;
ADC_Filter Sensor_Front_Duct5;
ADC_Filter Sensor_Front_Duct6;
ADC_Filter BTS5120_2EKA_ShutoffValvePowerTXV1; //
ADC_Filter BTS5120_2EKA_ShutoffValvePowerTXV2; //
ADC_Filter Pressure_DIAG;
ADC_Filter BTS5180_2EKA_ShutOFFValveFront; //
ADC_Filter BTS5180_2EKA_ShutOFFValveRear; //
ADC_Filter BTS5180_2EKA_TwoWayValve; //
ADC_Filter BTS5180_2EKA_ReservePowerSupply; //
ADC_Filter BTS5180_2EKA_FrontIncarMotor; //
ADC_Filter BTS5180_2EKA_RearIncarMotor; //
ADC_Filter BTS5180_2EKA_ChannelPTCPower1; //
ADC_Filter BTS5180_2EKA_ChannelPTCPower2; //
ADC_Filter Reserve_Sensor_Duct_Temp_2;
ADC_Filter Sensor_PT_rHVAC_P;
ADC_Filter Sensor_A_T_reserve;
} tADC0_Filter_data;
typedef struct {
ADC_Filter VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB;
ADC_Filter VN7008AJ_DIAG_RearLINActuatorPowerDriverC;
ADC_Filter PBATT_CHECK;
ADC_Filter VN7008AJ_FrontLINActuatorPowerDriverAB;
ADC_Filter VN7008AJ_RearLINActuatorPowerDriverC;
ADC_Filter PT_F_HVAC_VCC_DIAG;
ADC_Filter PT_HVBchiller_VCC_DIAG;
ADC_Filter PT_R_HVAC_VCC_DIAG;
ADC_Filter Sensor_PT_fHVAC_P;
ADC_Filter Sensor_PT_fHVAC_T;
ADC_Filter Sensor_PT_rHVAC_T;
ADC_Filter Sensor_HVBchiller_P;
ADC_Filter Sensor_HVBchiller_T;
ADC_Filter Sensor_PT_P_reserve;
ADC_Filter Sensor_PT_T_reserve;
ADC_Filter Sensor_B_T_reserve;
} tADC1_Filter_data;
typedef struct {
tAdcIO *adcIO;
osMutexId_t access;
tADC0_data ADC0_Data;
tADC0_Filter_data ADC0_Filter_data;
osMutexId_t modelTaskAccess;
uint8_t ADC_ChannelCount;
tGpios *gpios;
uint8_t ADC0_BTS5120_2EKA_Channel;
osMessageQueueId_t queueRandom;
tLoggerInterface *logger;
struct {
osThreadId_t id;
uint32_t stack[384];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
} tAdc0Task;
typedef struct {
tAdcIO *adcIO;
osMutexId_t access;
tADC1_data ADC1_Data;
tADC1_Filter_data ADC1_Filter_data;
osMutexId_t modelTaskAccess;
uint8_t ADC_ChannelCount;
tGpios *gpios;
tLoggerInterface *logger;
struct {
osThreadId_t id;
uint32_t stack[384];
StaticTask_t controlBlock;
osThreadAttr_t attr;
} thread;
} tAdc1Task;
uint32_t getRandom32(tAdc0Task *env);
void Adc_0_Init(tAdc0Task *env,
osMutexId_t modelTaskAccess,
tAdcIO *adcIO,
tGpios *gpios,
tLoggerInterface *logger);
void Adc_0_StartThread(tAdc0Task *env);
void Adc_1_Init(tAdc1Task *env,
osMutexId_t modelTaskAccess,
tAdcIO *adcIO,
tGpios *gpios,
tLoggerInterface *logger);
void Adc_1_StartThread(tAdc1Task *env);
#endif //HVAC_M7_ADCTASKS_H