227 lines
5.7 KiB
C
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
|