// // Created by cfif on 15.12.2025. // #ifndef HVAC_M7_ADCTASKS_H #define HVAC_M7_ADCTASKS_H #include "AdcIO.h" #include "stdbool.h" #include #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; uint32_t step; 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; uint32_t step; 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