diff --git a/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp b/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp index 1d87612..cdc5e9d 100644 --- a/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp +++ b/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.cpp @@ -49,17 +49,16 @@ void WaterCoolingTemperatureControlModule::createDefaultConfig(config_t* cfg) { cfg->fanlevel = 90; cfg->min_fanlevel = 10; cfg->pumplevel = 100; - cfg->pid_cfg.kp = 10; + cfg->pid_cfg.kp = 50; cfg->pid_cfg.ki = 0.5; cfg->pid_cfg.kd = 0; cfg->pid_cfg.max_output = 100; cfg->pid_cfg.min_output = -100; - cfg->pid_cfg.max_integral = 200; - cfg->pid_cfg.min_integral = -200; + cfg->pid_cfg.max_integral = 150; + cfg->pid_cfg.min_integral = -150; cfg->pidcompute_periodms = 1000; } - -int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { +int32_t WaterCoolingTemperatureControlModule::_module_xxx_reg(int32_t param_id, bool read, int32_t& val) { switch (param_id) { MODULE_COMMON_PROCESS_REG_CB(); PROCESS_REG(kreg_water_cooling_tmp_controler_pid_kp, REG_GET_FLOAT(m_cfg.pid_cfg.kp, 0.01), REG_SET_FLOAT(m_cfg.pid_cfg.kp, 0.01)); @@ -84,7 +83,14 @@ int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, b return err::kmodule_not_find_reg; break; } + return 0; +} + +int32_t WaterCoolingTemperatureControlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { + int32_t ret = _module_xxx_reg(param_id, read, val); + if (ret != 0) return ret; if (!read) module_active_cfg(); + return 0; } int32_t WaterCoolingTemperatureControlModule::gettemperature_sensor_state(int32_t& state) { @@ -173,7 +179,7 @@ void WaterCoolingTemperatureControlModule::workloop() { peltier_set_power_level(out); i++; if (i % 10 == 0) { - int32_t fanspeed = prvabs(out) * 1; + int32_t fanspeed = prvabs(out) * 0.7; if (fanspeed > 100) fanspeed = 100; if (fanspeed < m_cfg.min_fanlevel) fanspeed = m_cfg.min_fanlevel; fan_start(fanspeed); diff --git a/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp b/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp index 4407741..5a834cc 100644 --- a/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp +++ b/components/water_cooling_temperature_control_module/water_cooling_temperature_control_module.hpp @@ -94,8 +94,8 @@ class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoo virtual int32_t temp_controler_enable_log(int32_t enablelog) override; private: - void workloop(); - + void workloop(); + int32_t _module_xxx_reg(int32_t param_id, bool read, int32_t& val); int32_t module_xxx_reg(int32_t param_id, bool read, int32_t& val); int32_t checkdevice(); float read_pid_temperature(); @@ -109,7 +109,7 @@ class WaterCoolingTemperatureControlModule : public ZIModule, public ZI_WaterCoo private: int32_t gettemperature_sensor_state(int32_t& state); - float getTemperatureSensorVal(int32_t index); + float getTemperatureSensorVal(int32_t index); }; } // namespace iflytop