From c1c862d2c3ec14d6e481154258c5f3fead3099a3 Mon Sep 17 00:00:00 2001 From: tao wang Date: Fri, 20 Dec 2024 16:44:11 +0800 Subject: [PATCH] FIX:fixed the issue of AMS not updating location jira:[STUDIO-9182 STUDIO-9216] Change-Id: I42e57b47abf357cdc99f71e1739ab9fc3a122d85 (cherry picked from commit 43083f1e4834163c11a961e743db1fb7ece52348) --- src/slic3r/GUI/DeviceManager.cpp | 5 +++++ src/slic3r/GUI/Widgets/AMSControl.cpp | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 3b4896f038..7cf6c2565d 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4187,6 +4187,11 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) // new ams added event curr_ams = new_ams; } else { + + if (nozzle_id != ams_it->second->nozzle) { + ams_it->second->nozzle = nozzle_id; + } + curr_ams = ams_it->second; } if (!curr_ams) continue; diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index dbce016a6b..85e66c41e5 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -1009,11 +1009,17 @@ void AMSControl::UpdateAms(std::vector ams_info, std::vectorex if (!test){ // update item bool fresh = false; + + // basic check if (m_ams_info.size() == ams_info.size() && m_extder_data.total_extder_count == data.total_extder_count && m_dev_id == dev_id){ for (int i = 0; i < m_ams_info.size(); i++){ if (m_ams_info[i].ams_id != ams_info[i].ams_id){ fresh = true; } + + if (m_ams_info[i].nozzle_id != ams_info[i].nozzle_id) { + fresh = true; + } } } else{