From 66eb52c018e6d5cd23467c8a69e0220225a52d0c Mon Sep 17 00:00:00 2001 From: tao wang Date: Sun, 8 Oct 2023 17:11:41 +0800 Subject: [PATCH] ENH:check if waiting for sending to end is supported Change-Id: I297778c0e0593bd23b0614c043a3e9878ba61947 --- src/slic3r/GUI/DeviceManager.cpp | 4 ++++ src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/Jobs/PrintJob.cpp | 6 ++++++ 3 files changed, 11 insertions(+) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index c015d34a1..78c7f1c76 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -3054,8 +3054,12 @@ int MachineObject::parse_json(std::string payload) this->set_print_state(jj["gcode_state"].get()); } if (jj.contains("job_id")) { + is_support_wait_sending_finish = true; this->job_id_ = jj["job_id"].get(); } + else { + is_support_wait_sending_finish = false; + } if (jj.contains("queue_number")) { this->queue_number = jj["queue_number"].get(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index a02a5c80e..8bca80aa4 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -729,6 +729,7 @@ public: bool is_support_mqtt_alive {false}; bool is_support_tunnel_mqtt{false}; bool is_support_motor_noise_cali{false}; + bool is_support_wait_sending_finish{false}; int nozzle_max_temperature = -1; int bed_temperature_limit = -1; diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index 884c42504..3cc9c3327 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -397,6 +397,11 @@ void PrintJob::process() auto wait_fn = [this, curr_percent, &obj](int state, std::string job_info) { BOOST_LOG_TRIVIAL(info) << "print_job: get_job_info = " << job_info; + + if (!obj->is_support_wait_sending_finish) { + return true; + } + std::string curr_job_id; json job_info_j; try { @@ -426,6 +431,7 @@ void PrintJob::process() boost::this_thread::sleep_for(boost::chrono::milliseconds(1000)); } this->update_status(curr_percent, _L("Print task sending times out.")); + m_plater->update_print_error_info(BAMBU_NETWORK_ERR_TIMEOUT, "Print task sending times out.", ""); BOOST_LOG_TRIVIAL(info) << "print_job: timeout, cancel the job" << obj->job_id_; /* handle tiemout */ obj->command_task_cancel(curr_job_id);