From 59b6b59a9a974432ca6ccdb40278cb1ad2f56b3f Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Thu, 6 Jul 2023 19:12:27 +0800 Subject: [PATCH] FIX: cannot calibrate when printer is offline [STUDIO-3387] Change-Id: I93cf532363bc41feee0deb9782906bd3e79ee127 --- src/slic3r/GUI/CalibrationWizard.cpp | 7 +++++++ src/slic3r/GUI/CalibrationWizardCaliPage.cpp | 2 +- src/slic3r/GUI/CalibrationWizardPresetPage.cpp | 9 +++++++++ src/slic3r/GUI/CalibrationWizardPresetPage.hpp | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 2dafff88d..e9182d2f0 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -556,6 +556,13 @@ void PressureAdvanceWizard::on_cali_start() void PressureAdvanceWizard::on_cali_save() { if (curr_obj) { + if (curr_obj->is_connecting() || !curr_obj->is_connected()) + { + MessageDialog msg_dlg(nullptr, _L("Connecting to printer..."), wxEmptyString, wxOK); + msg_dlg.ShowModal(); + return; + } + if (curr_obj->get_printer_series() == PrinterSeries::SERIES_X1) { if (m_cali_method == CalibrationMethod::CALI_METHOD_AUTO) { std::vector new_pa_cali_results; diff --git a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp index ceccc72e2..23edc25e1 100644 --- a/src/slic3r/GUI/CalibrationWizardCaliPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardCaliPage.cpp @@ -144,7 +144,7 @@ void CalibrationCaliPage::update(MachineObject* obj) if (obj->print_status == "RUNNING") m_is_between_start_and_running = false; - if (m_is_between_start_and_running) { + if (obj->is_connecting() || !obj->is_connected() || m_is_between_start_and_running) { reset_printing_values(); m_action_panel->enable_button(CaliPageActionType::CALI_ACTION_CALI_NEXT, false); return; diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index f1e5e9968..0e6ce4d57 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -1159,6 +1159,10 @@ void CalibrationPresetPage::update_show_status() show_status(CaliPresetPageStatus::CaliPresetStatusUnsupportedPrinter); return; } + else if (obj_->is_connecting() || !obj_->is_connected()) { + show_status(CaliPresetPageStatus::CaliPresetStatusInConnecting); + return; + } else if (obj_->is_in_upgrading()) { show_status(CaliPresetPageStatus::CaliPresetStatusInUpgrading); return; @@ -1310,6 +1314,11 @@ void CalibrationPresetPage::show_status(CaliPresetPageStatus status) update_print_status_msg(wxEmptyString, false); Enable_Send_Button(false); } + else if (status == CaliPresetPageStatus::CaliPresetStatusInConnecting) { + wxString msg_text = _L("Connecting to printer"); + update_print_status_msg(msg_text, true); + Enable_Send_Button(false); + } Layout(); } diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.hpp b/src/slic3r/GUI/CalibrationWizardPresetPage.hpp index 698384a5c..daf793a93 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.hpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.hpp @@ -118,6 +118,7 @@ enum CaliPresetPageStatus CaliPresetStatusNeedForceUpgrading, CaliPresetStatusNeedConsistencyUpgrading, CaliPresetStatusUnsupportedPrinter, + CaliPresetStatusInConnecting, CaliPresetStatusFilamentIncompatible, };