From b63e0ee5565ef7d9d7f47dcc345ed4621065a0bc Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Thu, 16 Jan 2025 14:52:49 +0800 Subject: [PATCH] FIX: disable send print while the ams is during setting up jira: [STUDIO-9813] Change-Id: I55dcca9aab4a9923636c1cf7a0a27bc7e4b9586d (cherry picked from commit 5b800d034266489e5b288aa7a51ce6d244ae06b8) --- src/slic3r/GUI/DeviceManager.cpp | 16 ++++++++++++++++ src/slic3r/GUI/DeviceManager.hpp | 2 ++ src/slic3r/GUI/SelectMachine.cpp | 12 +++++++++++- src/slic3r/GUI/SelectMachine.hpp | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 7e2edb3395..9b7e5b38f3 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -912,6 +912,20 @@ bool MachineObject::is_support_amx_ext_mix_mapping() { return true; } +/* the API is developing by AP, not completed now*/ +bool MachineObject::is_ams_on_settingup() const +{ + for (const auto& ext : m_extder_data.extders) + { + if (ext.ams_stat != 0) + { + return true; + } + } + + return false; +} + void MachineObject::get_ams_colors(std::vector &ams_colors) { ams_colors.clear(); ams_colors.reserve(amsList.size()); @@ -4299,6 +4313,8 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) /*AMS without initialization*/ if (nozzle_id == 0xE) { + ams_id_set.erase(ams_id); + amsList.erase(ams_id); continue; } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 6a74fd5cab..ce12a34270 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -700,6 +700,8 @@ public: bool is_ams_need_update; inline bool is_ams_unload() { return m_tray_tar.compare("255") == 0; } + [[nodiscard]] bool is_ams_on_settingup() const; + Ams* get_curr_Ams(); AmsTray* get_curr_tray(); AmsTray *get_ams_tray(std::string ams_id, std::string tray_id); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index bc5e8340ca..e3e811d21e 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1743,6 +1743,10 @@ void SelectMachineDialog::show_status(PrintDialogStatus status, std::vectoris_ams_on_settingup()) + { + show_status(PrintDialogStatus::PrintStatusAmsOnSettingup); + return; + } + struct ExtruderStatus { bool has_ams{false}; diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 7588fcbc8b..e3ae28736e 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -75,6 +75,7 @@ enum PrintDialogStatus { PrintStatusInSystemPrinting, PrintStatusInPrinting, PrintStatusDisableAms, + PrintStatusAmsOnSettingup, PrintStatusAmsMappingSuccess, PrintStatusAmsMappingInvalid, PrintStatusAmsMappingU0Invalid,