From cb5f5a26cffe983aece8841fb3012ebed3a50386 Mon Sep 17 00:00:00 2001 From: Stone Li Date: Thu, 17 Nov 2022 11:38:46 +0800 Subject: [PATCH] NEW: support calibrate option of printer Change-Id: Iacc974d5cfec54789223f9ba298db21bea277d18 Signed-off-by: Stone Li --- src/slic3r/GUI/Calibration.cpp | 3 ++- src/slic3r/GUI/DeviceManager.cpp | 18 +++++++++++++++++- src/slic3r/GUI/DeviceManager.hpp | 3 ++- src/slic3r/GUI/Monitor.cpp | 2 +- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Calibration.cpp b/src/slic3r/GUI/Calibration.cpp index 6d775f66cf..d8b2b50e64 100644 --- a/src/slic3r/GUI/Calibration.cpp +++ b/src/slic3r/GUI/Calibration.cpp @@ -218,7 +218,8 @@ void CalibrationDialog::on_start_calibration(wxMouseEvent &event) Close(); } else { BOOST_LOG_TRIVIAL(info) << "on_start_calibration"; - m_obj->command_start_calibration(); + //TODO set checkbox value here + m_obj->command_start_calibration(true, true, true); } } } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index f1c2123eb0..963b648698 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1513,10 +1513,23 @@ int MachineObject::command_axis_control(std::string axis, double unit, double va return this->publish_gcode(cmd); } -int MachineObject::command_start_calibration() + +bool MachineObject::is_support_command_calibration() { if (printer_type == "BL-P001" || printer_type == "BL-P002") { + auto ap_ver_it = module_vers.find("rv1126"); + if (ap_ver_it != module_vers.end()) { + if (ap_ver_it->second.sw_ver.compare("00.00.15.79") < 0) + return false; + } + } + return true; +} + +int MachineObject::command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali) +{ + if (!is_support_command_calibration()) { // fixed gcode file json j; j["print"]["command"] = "gcode_file"; @@ -1527,6 +1540,9 @@ int MachineObject::command_start_calibration() json j; j["print"]["command"] = "calibration"; j["print"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++); + j["print"]["option"] = (vibration ? 1 << 2 : 0) + + (bed_leveling ? 1 << 1 : 0) + + (xcam_cali ? 1 << 0 : 0); return this->publish_json(j.dump()); } } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 8e05459376..d2342a6f91 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -614,7 +614,8 @@ public: int command_axis_control(std::string axis, double unit = 1.0f, double value = 1.0f, int speed = 3000); // calibration printer - int command_start_calibration(); + bool is_support_command_calibration(); + int command_start_calibration(bool vibration, bool bed_leveling, bool xcam_cali); int command_unload_filament(); diff --git a/src/slic3r/GUI/Monitor.cpp b/src/slic3r/GUI/Monitor.cpp index 3563ecde61..6090f6f4c7 100644 --- a/src/slic3r/GUI/Monitor.cpp +++ b/src/slic3r/GUI/Monitor.cpp @@ -506,7 +506,7 @@ void MonitorPanel::show_status(int status) return; last_status = status; - BOOST_LOG_TRIVIAL(trace) << "monitor: show_status = " << status; + BOOST_LOG_TRIVIAL(info) << "monitor: show_status = " << status; if (((status & (int) MonitorStatus::MONITOR_DISCONNECTED) != 0) || ((status & (int) MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)) { if ((status & (int) MonitorStatus::MONITOR_DISCONNECTED_SERVER))