From 1494731eab410f5a01e0c9eafac3be74a7384f26 Mon Sep 17 00:00:00 2001 From: "xin.zhang" Date: Mon, 25 Aug 2025 18:02:54 +0800 Subject: [PATCH] FIX: check with internal filament type jira: [STUDIO-14216] Change-Id: I89e0d62b572872d7e2ea8e6e57ac662b64baf92b (cherry picked from commit 6767c2334bbfcffa41d4d020ee4f2e183a327cee) --- src/slic3r/GUI/AmsWidgets.cpp | 2 +- src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp | 36 ++++++++++----------- src/slic3r/GUI/DeviceCore/DevFilaSystem.h | 4 +-- src/slic3r/GUI/DeviceManager.cpp | 22 +++++++------ src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/Plater.cpp | 4 +-- src/slic3r/GUI/SelectMachine.cpp | 2 +- src/slic3r/GUI/SyncAmsInfoDialog.cpp | 2 +- 8 files changed, 39 insertions(+), 34 deletions(-) diff --git a/src/slic3r/GUI/AmsWidgets.cpp b/src/slic3r/GUI/AmsWidgets.cpp index 5102f1127f..86014d31e9 100644 --- a/src/slic3r/GUI/AmsWidgets.cpp +++ b/src/slic3r/GUI/AmsWidgets.cpp @@ -157,7 +157,7 @@ void TrayListModel::update(MachineObject* obj) m_titleColValues.push_back(title_text); wxString color_text = wxString::Format("%s", tray->wx_color.GetAsString()); m_colorColValues.push_back(color_text); - wxString meterial_text = wxString::Format("%s", tray->type); + wxString meterial_text = wxString::Format("%s", tray->m_fila_type); m_meterialColValues.push_back(meterial_text); wxString weight_text = wxString::Format("%sg", tray->weight); m_weightColValues.push_back(weight_text); diff --git a/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp b/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp index ab5c61d26a..2ef791b723 100644 --- a/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp +++ b/src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp @@ -43,7 +43,7 @@ void DevAmsTray::reset() tag_uid = ""; setting_id = ""; filament_setting_id = ""; - type = ""; + m_fila_type = ""; sub_brands = ""; color = ""; weight = ""; @@ -67,7 +67,7 @@ void DevAmsTray::reset() bool DevAmsTray::is_tray_info_ready() const { if (color.empty()) return false; - if (type.empty()) return false; + if (m_fila_type.empty()) return false; //if (setting_id.empty()) return false; return true; } @@ -75,27 +75,27 @@ bool DevAmsTray::is_tray_info_ready() const bool DevAmsTray::is_unset_third_filament() const { if (this->is_bbl) return false; - return (color.empty() || type.empty()); + return (color.empty() || m_fila_type.empty()); } std::string DevAmsTray::get_display_filament_type() const { - if (type == "PLA-S") return "Sup.PLA"; - if (type == "PA-S") return "Sup.PA"; - if (type == "ABS-S") return "Sup.ABS"; - return type; + if (m_fila_type == "PLA-S") return "Sup.PLA"; + if (m_fila_type == "PA-S") return "Sup.PA"; + if (m_fila_type == "ABS-S") return "Sup.ABS"; + return m_fila_type; } std::string DevAmsTray::get_filament_type() { - if (type == "Sup.PLA") { return "PLA-S"; } - if (type == "Sup.PA") { return "PA-S"; } - if (type == "Sup.ABS") { return "ABS-S"; } - if (type == "Support W") { return "PLA-S"; } - if (type == "Support G") { return "PA-S"; } - if (type == "Support") { if (setting_id == "GFS00") { type = "PLA-S"; } else if (setting_id == "GFS01") { type = "PA-S"; } else { return "PLA-S"; } } + if (m_fila_type == "Sup.PLA") { return "PLA-S"; } + if (m_fila_type == "Sup.PA") { return "PA-S"; } + if (m_fila_type == "Sup.ABS") { return "ABS-S"; } + if (m_fila_type == "Support W") { return "PLA-S"; } + if (m_fila_type == "Support G") { return "PA-S"; } + if (m_fila_type == "Support") { if (setting_id == "GFS00") { m_fila_type = "PLA-S"; } else if (setting_id == "GFS01") { m_fila_type = "PA-S"; } else { return "PLA-S"; } } - return type; + return m_fila_type; } @@ -513,21 +513,21 @@ void DevFilaSystemParser::ParseV1_0(const json& jj, MachineObject* obj, DevFilaS std::string type = MachineObject::setting_id_to_type(curr_tray->setting_id, (*tray_it)["tray_type"].get()); if (curr_tray->setting_id == "GFS00") { - curr_tray->type = "PLA-S"; + curr_tray->m_fila_type = "PLA-S"; } else if (curr_tray->setting_id == "GFS01") { - curr_tray->type = "PA-S"; + curr_tray->m_fila_type = "PA-S"; } else { - curr_tray->type = type; + curr_tray->m_fila_type = type; } } else { curr_tray->setting_id = ""; - curr_tray->type = ""; + curr_tray->m_fila_type = ""; } if (tray_it->contains("tray_sub_brands")) curr_tray->sub_brands = (*tray_it)["tray_sub_brands"].get(); diff --git a/src/slic3r/GUI/DeviceCore/DevFilaSystem.h b/src/slic3r/GUI/DeviceCore/DevFilaSystem.h index 8b05e022d8..3987476938 100644 --- a/src/slic3r/GUI/DeviceCore/DevFilaSystem.h +++ b/src/slic3r/GUI/DeviceCore/DevFilaSystem.h @@ -28,7 +28,7 @@ public: std::string tag_uid; // tag_uid std::string setting_id; // tray_info_idx std::string filament_setting_id; // setting_id - std::string type; + std::string m_fila_type; std::string sub_brands; std::string color; std::vector cols; @@ -57,7 +57,7 @@ public: // operators bool operator==(DevAmsTray const& o) const { - return id == o.id && type == o.type && filament_setting_id == o.filament_setting_id && color == o.color; + return id == o.id && m_fila_type == o.m_fila_type && filament_setting_id == o.filament_setting_id && color == o.color; } bool operator!=(DevAmsTray const& o) const { return !operator==(o); } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index fb4c9085ae..eda48e6cbf 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -650,7 +650,11 @@ std::string MachineObject::get_filament_id(std::string ams_id, std::string tray_ } std::string MachineObject::get_filament_type(const std::string& ams_id, const std::string& tray_id) const { - return this->get_tray(ams_id, tray_id).type; + return this->get_tray(ams_id, tray_id).get_filament_type(); +} + +std::string MachineObject::get_filament_display_type(const std::string& ams_id, const std::string& tray_id) const { + return this->get_tray(ams_id, tray_id).get_display_filament_type(); } void MachineObject::_parse_ams_status(int ams_status) @@ -3726,7 +3730,7 @@ int MachineObject::parse_json(std::string tunnel, std::string payload, bool key_ vt_slot[0].color = jj["tray_color"].get(); vt_slot[0].setting_id = jj["tray_info_idx"].get(); //vt_tray.type = jj["tray_type"].get(); - vt_slot[0].type = setting_id_to_type(vt_slot[0].setting_id, jj["tray_type"].get()); + vt_slot[0].m_fila_type = setting_id_to_type(vt_slot[0].setting_id, jj["tray_type"].get()); // delay update vt_slot[0].set_hold_count(); } else { @@ -3751,7 +3755,7 @@ int MachineObject::parse_json(std::string tunnel, std::string payload, bool key_ }*/ tray_it->second->setting_id = jj["tray_info_idx"].get(); - tray_it->second->type = setting_id_to_type(tray_it->second->setting_id, jj["tray_type"].get()); + tray_it->second->m_fila_type = setting_id_to_type(tray_it->second->setting_id, jj["tray_type"].get()); // delay update tray_it->second->set_hold_count(); } else { @@ -4632,18 +4636,18 @@ DevAmsTray MachineObject::parse_vt_tray(json vtray) //std::string type = vtray["tray_type"].get(); std::string type = setting_id_to_type(vt_tray.setting_id, vtray["tray_type"].get()); if (vt_tray.setting_id == "GFS00") { - vt_tray.type = "PLA-S"; + vt_tray.m_fila_type = "PLA-S"; } else if (vt_tray.setting_id == "GFS01") { - vt_tray.type = "PA-S"; + vt_tray.m_fila_type = "PA-S"; } else { - vt_tray.type = type; + vt_tray.m_fila_type = type; } } else { vt_tray.setting_id = ""; - vt_tray.type = ""; + vt_tray.m_fila_type = ""; } if (vtray.contains("tray_sub_brands")) vt_tray.sub_brands = vtray["tray_sub_brands"].get(); @@ -5157,7 +5161,7 @@ void MachineObject::check_ams_filament_valid() << slot_id << "filament_id: " << curr_tray->setting_id; - command_ams_filament_settings(std::stoi(ams_id), std::stoi(slot_id), curr_tray->setting_id, preset_setting_id, curr_tray->color, curr_tray->type, + command_ams_filament_settings(std::stoi(ams_id), std::stoi(slot_id), curr_tray->setting_id, preset_setting_id, curr_tray->color, curr_tray->m_fila_type, std::stoi(curr_tray->nozzle_temp_min), std::stoi(curr_tray->nozzle_temp_max)); } continue; @@ -5218,7 +5222,7 @@ void MachineObject::check_ams_filament_valid() if (!is_equation) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " vt_tray filament is not match min max temp and reset, filament_id: " << vt_tray.setting_id; - command_ams_filament_settings(vt_id, 0, vt_tray.setting_id, preset_setting_id, vt_tray.color, vt_tray.type, std::stoi(vt_tray.nozzle_temp_min), + command_ams_filament_settings(vt_id, 0, vt_tray.setting_id, preset_setting_id, vt_tray.color, vt_tray.m_fila_type, std::stoi(vt_tray.nozzle_temp_min), std::stoi(vt_tray.nozzle_temp_max)); } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 1752dd047c..bd73942669 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -274,6 +274,7 @@ public: std::string get_filament_id(std::string ams_id, std::string tray_id) const; std::string get_filament_type(const std::string& ams_id, const std::string& tray_id) const; + std::string get_filament_display_type(const std::string& ams_id, const std::string& tray_id) const; // parse amsStatusMain and ams_status_sub void _parse_ams_status(int ams_status); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 5cc1c21c62..e3251641a6 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2943,13 +2943,13 @@ std::map Sidebar::build_filament_ams_list(MachineObject auto build_tray_config = [](DevAmsTray const &tray, std::string const &name, std::string ams_id, std::string slot_id) { BOOST_LOG_TRIVIAL(info) << boost::format("build_filament_ams_list: name %1% setting_id %2% type %3% color %4%") - % name % tray.setting_id % tray.type % tray.color; + % name % tray.setting_id % tray.m_fila_type % tray.color; DynamicPrintConfig tray_config; tray_config.set_key_value("filament_id", new ConfigOptionStrings{tray.setting_id}); tray_config.set_key_value("tag_uid", new ConfigOptionStrings{tray.tag_uid}); tray_config.set_key_value("ams_id", new ConfigOptionStrings{ams_id}); tray_config.set_key_value("slot_id", new ConfigOptionStrings{slot_id}); - tray_config.set_key_value("filament_type", new ConfigOptionStrings{tray.type}); + tray_config.set_key_value("filament_type", new ConfigOptionStrings{tray.m_fila_type}); tray_config.set_key_value("tray_name", new ConfigOptionStrings{ name }); tray_config.set_key_value("filament_colour", new ConfigOptionStrings{into_u8(wxColour("#" + tray.color).GetAsString(wxC2S_HTML_SYNTAX))}); tray_config.set_key_value("filament_multi_colour", new ConfigOptionStrings{}); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 29b53ff9f6..a612f1e6ce 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1368,7 +1368,7 @@ void SelectMachineDialog::auto_supply_with_ext(std::vector slots) { if (slot.id.empty()) continue; m_ams_mapping_result[i].ams_id = slot.id; m_ams_mapping_result[i].color = slot.color; - m_ams_mapping_result[i].type = slot.type; + m_ams_mapping_result[i].type = slot.m_fila_type; m_ams_mapping_result[i].colors = slot.cols; m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str()); m_ams_mapping_result[i].slot_id = "0"; diff --git a/src/slic3r/GUI/SyncAmsInfoDialog.cpp b/src/slic3r/GUI/SyncAmsInfoDialog.cpp index 3f6c14136b..5c17a81a20 100644 --- a/src/slic3r/GUI/SyncAmsInfoDialog.cpp +++ b/src/slic3r/GUI/SyncAmsInfoDialog.cpp @@ -1497,7 +1497,7 @@ void SyncAmsInfoDialog::auto_supply_with_ext(std::vector slots) if (slot.id.empty()) continue; m_ams_mapping_result[i].ams_id = slot.id; m_ams_mapping_result[i].color = slot.color; - m_ams_mapping_result[i].type = slot.type; + m_ams_mapping_result[i].type = slot.m_fila_type; m_ams_mapping_result[i].colors = slot.cols; m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str()); m_ams_mapping_result[i].slot_id = "0";