From 43083f1e4834163c11a961e743db1fb7ece52348 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 --- src/slic3r/GUI/DeviceManager.cpp | 5 +++++ src/slic3r/GUI/Widgets/AMSControl.cpp | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 100db365e..b292ca529 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4223,6 +4223,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 3cdd5f402..21fbb22d4 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -3404,16 +3404,23 @@ 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{ fresh = true; } + m_ams_info.clear(); m_ams_info = ams_info; m_ext_info.clear();