From 99045ae070bb03641d1086993cc4ffaf51408730 Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Thu, 13 Mar 2025 10:05:55 +0800 Subject: [PATCH] FIX: the AMS refreshing problem jira: [STUDIO-10643] Change-Id: I6bd94f2e608b833e880033fdace236d465b9db38 --- src/slic3r/GUI/StatusPanel.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index b5376251b..f7d32d58c 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -3428,10 +3428,19 @@ void StatusPanel::update_ams(MachineObject *obj) std::string tray_id = tray_it->first; int tray_id_int = atoi(tray_id.c_str()); // new protocol - if ((obj->tray_reading_bits & (1 << (ams_id_int * 4 + tray_id_int))) != 0) { - m_ams_control->PlayRridLoading(ams_id, tray_id); + if (ams_id_int < 128) { + if ((obj->tray_reading_bits & (1 << (ams_id_int * 4 + tray_id_int))) != 0) { + m_ams_control->PlayRridLoading(ams_id, tray_id); + } else { + m_ams_control->StopRridLoading(ams_id, tray_id); + } } else { - m_ams_control->StopRridLoading(ams_id, tray_id); + int check_flag = (1 << 16) + ams_id_int - 128; + if ((obj->tray_reading_bits & check_flag) != 0) { + m_ams_control->PlayRridLoading(ams_id, tray_id); + } else { + m_ams_control->StopRridLoading(ams_id, tray_id); + } } } } catch (...) {}