diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 1af457773..5cad11fff 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1946,7 +1946,7 @@ int MachineObject::command_start_calibration(bool vibration, bool bed_leveling, } } -int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, bool is_manual) +int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, int mode) { pa_calib_results.clear(); if ((printer_type == "BL-P001" || printer_type == "BL-P002")) { @@ -1954,7 +1954,7 @@ int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, bo j["print"]["command"] = "extrusion_cali"; j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); j["print"]["nozzle_diameter"] = to_string_nozzle_diameter(pa_data.calib_datas[0].nozzle_diameter); - j["print"]["manual"] = is_manual; + j["print"]["mode"] = mode; for (int i = 0; i < pa_data.calib_datas.size(); ++i) { j["print"]["filaments"][i]["tray_id"] = pa_data.calib_datas[i].tray_id; @@ -3914,7 +3914,8 @@ int MachineObject::parse_json(std::string payload) else if ((*it)["n_coef"].is_string()) pa_calib_result.n_coef = stof((*it)["n_coef"].get().c_str()); - pa_calib_result.confidence = (*it)["confidence"].get(); + if ((*it).contains("confidence")) + pa_calib_result.confidence = (*it)["confidence"].get(); pa_calib_results.push_back(pa_calib_result); } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 03e8ee727..fd1c2008e 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -338,7 +338,7 @@ public: std::string name; float k_value; float n_coef; - int confidence; + int confidence = -1; }; struct PACalibIndexInfo @@ -827,7 +827,7 @@ public: int command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali); // PA calibration - int command_start_pa_calibration(const X1CCalibInfos& pa_data, bool is_manual = false); + int command_start_pa_calibration(const X1CCalibInfos& pa_data, int mode = 0); // 0: automatic mode; 1: manual mode. default: automatic mode int command_set_pa_calibration(const std::vector& pa_calib_values); int command_delete_pa_calibration(const PACalibIndexInfo& pa_calib); int command_get_pa_calibration_tab(float nozzle_diameter, const std::string &filament_id = ""); diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index bba89cd26..22eca1ac9 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -92,7 +92,7 @@ CalibMode CalibUtils::get_calib_mode_by_name(const std::string &name) return CalibMode::Calib_None; } -void CalibUtils::calib_PA(const X1CCalibInfos &calib_infos, std::string &error_message, bool is_manual) +void CalibUtils::calib_PA(const X1CCalibInfos &calib_infos, std::string &error_message, int mode) { DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev) @@ -103,7 +103,7 @@ void CalibUtils::calib_PA(const X1CCalibInfos &calib_infos, std::string &error_m return; if (calib_infos.calib_datas.size() > 0) - obj_->command_start_pa_calibration(calib_infos, is_manual); + obj_->command_start_pa_calibration(calib_infos, mode); } void CalibUtils::emit_get_PA_calib_results(float nozzle_diameter) diff --git a/src/slic3r/Utils/CalibUtils.hpp b/src/slic3r/Utils/CalibUtils.hpp index a7679fc4b..b49432fd9 100644 --- a/src/slic3r/Utils/CalibUtils.hpp +++ b/src/slic3r/Utils/CalibUtils.hpp @@ -30,7 +30,7 @@ public: static CalibMode get_calib_mode_by_name(const std::string &name); - static void calib_PA(const X1CCalibInfos &calib_infos, std::string &error_message, bool is_manual = false); + static void calib_PA(const X1CCalibInfos &calib_infos, std::string &error_message, int mode = 0); // 0: automatic mode; 1: manual mode. default: automatic mode static void emit_get_PA_calib_results(float nozzle_diameter); static bool get_PA_calib_results(std::vector &pa_calib_results);