From 7380ee0a2c488bc5b206f4f6462e81ff744cc8d2 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Thu, 23 Jan 2025 11:38:06 +0800 Subject: [PATCH] FIX:k value is set to default value when editing k value on printer jira: STUDIO-10120 Change-Id: I6c67efb77ca681aab510399031deed7faa473713 --- src/slic3r/GUI/DeviceManager.cpp | 136 ++++++++++++++++--------------- src/slic3r/GUI/DeviceManager.hpp | 1 + 2 files changed, 72 insertions(+), 65 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index e01f80d03..2dbffa04f 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2508,7 +2508,7 @@ int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, in filament_ids += pa_data.calib_datas[i].filament_id; } - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali: " << j.dump(); try { json js; @@ -2554,7 +2554,7 @@ int MachineObject::command_set_pa_calibration(const std::vector & j["print"]["filaments"][i]["n_coef"] = "0.0"; } - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_set: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali_set: " << j.dump(); return this->publish_json(j.dump()); } @@ -2572,7 +2572,7 @@ int MachineObject::command_delete_pa_calibration(const PACalibIndexInfo& pa_cali j["print"]["cali_idx"] = pa_calib.cali_idx; j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(pa_calib.nozzle_diameter); - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_del: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali_del: " << j.dump(); return this->publish_json(j.dump()); } @@ -2590,7 +2590,8 @@ int MachineObject::command_get_pa_calibration_tab(const PACalibExtruderInfo &cal j["print"]["nozzle_id"] = generate_nozzle_id(calib_info.nozzle_volume_type, to_string_nozzle_diameter(calib_info.nozzle_diameter)).ToStdString(); j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(calib_info.nozzle_diameter); - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_get: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali_get: " << j.dump(); + request_tab_from_bbs = true; return this->publish_json(j.dump()); } @@ -2601,7 +2602,7 @@ int MachineObject::command_get_pa_calibration_result(float nozzle_diameter) j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(nozzle_diameter); - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_get_result: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali_get_result: " << j.dump(); return this->publish_json(j.dump()); } @@ -2617,7 +2618,7 @@ int MachineObject::commnad_select_pa_calibration(const PACalibIndexInfo& pa_cali j["print"]["filament_id"] = pa_calib_info.filament_id; j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(pa_calib_info.nozzle_diameter); - BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_sel: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "extrusion_cali_sel: " << j.dump(); return this->publish_json(j.dump()); } @@ -2657,7 +2658,7 @@ int MachineObject::command_start_flow_ratio_calibration(const X1CCalibInfos& cal if (agent) agent->track_event("cali", js.dump()); } catch (...) {} - BOOST_LOG_TRIVIAL(trace) << "flowrate_cali: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "flowrate_cali: " << j.dump(); return this->publish_json(j.dump()); } return -1; @@ -2670,7 +2671,7 @@ int MachineObject::command_get_flow_ratio_calibration_result(float nozzle_diamet j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(nozzle_diameter); - BOOST_LOG_TRIVIAL(trace) << "flowrate_get_result: " << j.dump(); + BOOST_LOG_TRIVIAL(info) << "flowrate_get_result: " << j.dump(); return this->publish_json(j.dump()); } @@ -4848,7 +4849,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) info = reason; } GUI::wxGetApp().push_notification(info, _L("Calibration error"), UserNotificationStyle::UNS_WARNING_CONFIRM); - BOOST_LOG_TRIVIAL(trace) << cali_mode << " result fail, reason = " << reason; + BOOST_LOG_TRIVIAL(info) << cali_mode << " result fail, reason = " << reason; } } } else if (jj["command"].get() == "extrusion_cali_set") { @@ -4955,73 +4956,78 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) } else if (jj["command"].get() == "extrusion_cali_get") { std::string str = jj.dump(); - BOOST_LOG_TRIVIAL(info) << "extrusion_cali_get: " << str; - reset_pa_cali_history_result(); - bool is_succeed = true; - if (jj.contains("result") && jj.contains("reason")) { - if (jj["result"].get() == "fail") { - if (jj.contains("err_code")) { - auto err_code = jj["err_code"].get(); - print_error = err_code; + if (request_tab_from_bbs) { + BOOST_LOG_TRIVIAL(info) << "bbs extrusion_cali_get: " << str; + request_tab_from_bbs = false; + reset_pa_cali_history_result(); + bool is_succeed = true; + if (jj.contains("result") && jj.contains("reason")) { + if (jj["result"].get() == "fail") { + if (jj.contains("err_code")) { + auto err_code = jj["err_code"].get(); + print_error = err_code; + } + is_succeed = false; } - is_succeed = false; } - } - if (is_succeed) { - last_cali_version = cali_version; - has_get_pa_calib_tab = true; - } + if (is_succeed) { + last_cali_version = cali_version; + has_get_pa_calib_tab = true; + } - if (jj.contains("filaments") && jj["filaments"].is_array()) { - try { - for (auto it = jj["filaments"].begin(); it != jj["filaments"].end(); it++) { - PACalibResult pa_calib_result; - pa_calib_result.filament_id = (*it)["filament_id"].get(); - pa_calib_result.name = (*it)["name"].get(); - pa_calib_result.cali_idx = (*it)["cali_idx"].get(); + if (jj.contains("filaments") && jj["filaments"].is_array()) { + try { + for (auto it = jj["filaments"].begin(); it != jj["filaments"].end(); it++) { + PACalibResult pa_calib_result; + pa_calib_result.filament_id = (*it)["filament_id"].get(); + pa_calib_result.name = (*it)["name"].get(); + pa_calib_result.cali_idx = (*it)["cali_idx"].get(); - if ((*it).contains("setting_id")) { - pa_calib_result.setting_id = (*it)["setting_id"].get(); + if ((*it).contains("setting_id")) { + pa_calib_result.setting_id = (*it)["setting_id"].get(); + } + + if ((*it).contains("extruder_id")) { + pa_calib_result.extruder_id = (*it)["extruder_id"].get(); + } + + if ((*it).contains("nozzle_id")) { + pa_calib_result.nozzle_volume_type = convert_to_nozzle_type((*it)["nozzle_id"].get()); + } + + if (jj["nozzle_diameter"].is_number_float()) { + pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); + } else if (jj["nozzle_diameter"].is_string()) { + pa_calib_result.nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); + } + + if ((*it)["k_value"].is_number_float()) + pa_calib_result.k_value = (*it)["k_value"].get(); + else if ((*it)["k_value"].is_string()) + pa_calib_result.k_value = string_to_float((*it)["k_value"].get()); + + if ((*it)["n_coef"].is_number_float()) + pa_calib_result.n_coef = (*it)["n_coef"].get(); + else if ((*it)["n_coef"].is_string()) + pa_calib_result.n_coef = string_to_float((*it)["n_coef"].get()); + + if (check_pa_result_validation(pa_calib_result)) + pa_calib_tab.push_back(pa_calib_result); + else { + BOOST_LOG_TRIVIAL(info) << "pa result is invalid"; + } } - if ((*it).contains("extruder_id")) { - pa_calib_result.extruder_id = (*it)["extruder_id"].get(); - } - - if ((*it).contains("nozzle_id")) { - pa_calib_result.nozzle_volume_type = convert_to_nozzle_type((*it)["nozzle_id"].get()); - } - - if (jj["nozzle_diameter"].is_number_float()) { - pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); - } else if (jj["nozzle_diameter"].is_string()) { - pa_calib_result.nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); - } - - if ((*it)["k_value"].is_number_float()) - pa_calib_result.k_value = (*it)["k_value"].get(); - else if ((*it)["k_value"].is_string()) - pa_calib_result.k_value = string_to_float((*it)["k_value"].get()); - - if ((*it)["n_coef"].is_number_float()) - pa_calib_result.n_coef = (*it)["n_coef"].get(); - else if ((*it)["n_coef"].is_string()) - pa_calib_result.n_coef = string_to_float((*it)["n_coef"].get()); - - if (check_pa_result_validation(pa_calib_result)) - pa_calib_tab.push_back(pa_calib_result); - else { - BOOST_LOG_TRIVIAL(info) << "pa result is invalid"; - } } + catch (...) { + } } - catch (...) { - - } + // notify cali history to update + } else { + BOOST_LOG_TRIVIAL(info) << "printer extrusion_cali_get: " << str; } - // notify cali history to update } else if (jj["command"].get() == "extrusion_cali_get_result") { std::string str = jj.dump(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 74ad99f5f..59cf41592 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -843,6 +843,7 @@ public: ManualPaCaliMethod manual_pa_cali_method = ManualPaCaliMethod::PA_LINE; bool has_get_pa_calib_tab{ false }; + bool request_tab_from_bbs { false }; std::vector pa_calib_tab; bool get_pa_calib_result { false }; std::vector pa_calib_results;