#pragma once #include "base/appdep.hpp" namespace iflytop { using namespace transmit_disfection_protocol; class HeaterController { ZGPIO m_ctrlGpio; ZADC m_iAdc; ZADC m_tempAdc; bool m_isInitialized = false; public: void initialize(Pin_t ctrlGpio, ADC_HandleTypeDef* iadc, uint32_t ich, ADC_HandleTypeDef* tadc, uint32_t tch); bool isInitialized(); void heater_ctrl(int32_t val); void heater_ctrl_safe_valve(int32_t val); int32_t heater_read_temperature_data(); int32_t heater_read_ei(); int32_t heater_read_iadc(); int32_t heater_read_tadc(); // PP void fn_heater_ctrl(ProcessContext* cxt); void fn_heater_ctrl_safe_valve(ProcessContext* cxt); void fn_heater_read_ei(ProcessContext* cxt); void fn_heater_read_temperature_data(ProcessContext* cxt); void fn_heater_read_ei_adc_raw(ProcessContext* cxt); void fn_heater_read_temperature_data_adc_raw(ProcessContext* cxt); void fn_heater_is_open(ProcessContext* cxt); private: void periodTask(); }; } // namespace iflytop