diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index c3e7d7c22..f6ce0ed69 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2336,18 +2336,36 @@ int MachineObject::parse_json(std::string payload) big_fan1_speed = (int)((fan_gear & 0x0000FF00) >> 8); cooling_fan_speed= (int)((fan_gear & 0x000000FF) >> 0); } - /* if (jj.contains("cooling_fan_speed")) { - cooling_fan_speed = stoi(jj["cooling_fan_speed"].get()); + else { + if (jj.contains("cooling_fan_speed")) { + cooling_fan_speed = stoi(jj["cooling_fan_speed"].get()); + cooling_fan_speed = round(floor(cooling_fan_speed / float(1.5))); + } + else { + cooling_fan_speed = 0; + } + + if (jj.contains("big_fan1_speed")) { + big_fan1_speed = stoi(jj["big_fan1_speed"].get()); + big_fan1_speed = round(floor(big_fan1_speed / float(1.5))); + } + else { + big_fan1_speed = 0; + } + + if (jj.contains("big_fan2_speed")) { + big_fan2_speed = stoi(jj["big_fan2_speed"].get()); + big_fan2_speed = round(floor(big_fan2_speed / float(1.5))); + } + else { + big_fan2_speed = 0; + } } - if (jj.contains("big_fan1_speed")) { - big_fan1_speed = stoi(jj["big_fan1_speed"].get()); - } - if (jj.contains("big_fan2_speed")) { - big_fan2_speed = stoi(jj["big_fan2_speed"].get()); - }*/ + if (jj.contains("heatbreak_fan_speed")) { heatbreak_fan_speed = stoi(jj["heatbreak_fan_speed"].get()); } + /* parse speed */ try { if (jj.contains("spd_lvl")) { diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index f5d54fed6..aa76bc129 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1734,7 +1734,7 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj) if (m_switch_nozzle_fan_timeout > 0) { m_switch_nozzle_fan_timeout--; } else{ - int speed = floor(obj->cooling_fan_speed / float(25.5)); + int speed = round(obj->cooling_fan_speed / float(25.5)); m_switch_nozzle_fan->SetValue(speed > 0 ? true : false); m_switch_nozzle_fan->setFanValue(speed * 10); m_fan_control_popup.update_fan_data(MachineObject::FanType::COOLING_FAN, obj); @@ -1744,7 +1744,7 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj) if (m_switch_printing_fan_timeout > 0) { m_switch_printing_fan_timeout--; }else{ - int speed = floor(obj->big_fan1_speed / float(25.5)); + int speed = round(obj->big_fan1_speed / float(25.5)); m_switch_printing_fan->SetValue(speed > 0 ? true : false); m_switch_printing_fan->setFanValue(speed * 10); m_fan_control_popup.update_fan_data(MachineObject::FanType::BIG_COOLING_FAN, obj); @@ -1754,7 +1754,7 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj) if (m_switch_cham_fan_timeout > 0) { m_switch_cham_fan_timeout--; }else{ - int speed = floor(obj->big_fan2_speed / float(25.5)); + int speed = round(obj->big_fan2_speed / float(25.5)); m_switch_cham_fan->SetValue(speed > 0 ? true : false); m_switch_cham_fan->setFanValue(speed * 10); m_fan_control_popup.update_fan_data(MachineObject::FanType::CHAMBER_FAN, obj); diff --git a/src/slic3r/GUI/Widgets/FanControl.cpp b/src/slic3r/GUI/Widgets/FanControl.cpp index 65a9e2232..7e4eadb61 100644 --- a/src/slic3r/GUI/Widgets/FanControl.cpp +++ b/src/slic3r/GUI/Widgets/FanControl.cpp @@ -462,7 +462,7 @@ void FanControl::set_name(wxString name) void FanControl::set_fan_speed(int g) { if (g < 0 || g > 255) return; - int speed = floor(float(g) / float(25.5)); + int speed = round(float(g) / float(25.5)); if (m_current_speed != speed) { m_current_speed = speed;