FIX: check with internal filament type

jira: [STUDIO-14216]
Change-Id: I89e0d62b572872d7e2ea8e6e57ac662b64baf92b
(cherry picked from commit 6767c2334bbfcffa41d4d020ee4f2e183a327cee)
This commit is contained in:
xin.zhang
2025-10-28 15:29:47 +08:00
committed by Noisyfox
parent 2339f5a789
commit 1494731eab
8 changed files with 39 additions and 34 deletions
+1 -1
View File
@@ -157,7 +157,7 @@ void TrayListModel::update(MachineObject* obj)
m_titleColValues.push_back(title_text); m_titleColValues.push_back(title_text);
wxString color_text = wxString::Format("%s", tray->wx_color.GetAsString()); wxString color_text = wxString::Format("%s", tray->wx_color.GetAsString());
m_colorColValues.push_back(color_text); 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); m_meterialColValues.push_back(meterial_text);
wxString weight_text = wxString::Format("%sg", tray->weight); wxString weight_text = wxString::Format("%sg", tray->weight);
m_weightColValues.push_back(weight_text); m_weightColValues.push_back(weight_text);
+18 -18
View File
@@ -43,7 +43,7 @@ void DevAmsTray::reset()
tag_uid = ""; tag_uid = "";
setting_id = ""; setting_id = "";
filament_setting_id = ""; filament_setting_id = "";
type = ""; m_fila_type = "";
sub_brands = ""; sub_brands = "";
color = ""; color = "";
weight = ""; weight = "";
@@ -67,7 +67,7 @@ void DevAmsTray::reset()
bool DevAmsTray::is_tray_info_ready() const bool DevAmsTray::is_tray_info_ready() const
{ {
if (color.empty()) return false; if (color.empty()) return false;
if (type.empty()) return false; if (m_fila_type.empty()) return false;
//if (setting_id.empty()) return false; //if (setting_id.empty()) return false;
return true; return true;
} }
@@ -75,27 +75,27 @@ bool DevAmsTray::is_tray_info_ready() const
bool DevAmsTray::is_unset_third_filament() const bool DevAmsTray::is_unset_third_filament() const
{ {
if (this->is_bbl) return false; 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 std::string DevAmsTray::get_display_filament_type() const
{ {
if (type == "PLA-S") return "Sup.PLA"; if (m_fila_type == "PLA-S") return "Sup.PLA";
if (type == "PA-S") return "Sup.PA"; if (m_fila_type == "PA-S") return "Sup.PA";
if (type == "ABS-S") return "Sup.ABS"; if (m_fila_type == "ABS-S") return "Sup.ABS";
return type; return m_fila_type;
} }
std::string DevAmsTray::get_filament_type() std::string DevAmsTray::get_filament_type()
{ {
if (type == "Sup.PLA") { return "PLA-S"; } if (m_fila_type == "Sup.PLA") { return "PLA-S"; }
if (type == "Sup.PA") { return "PA-S"; } if (m_fila_type == "Sup.PA") { return "PA-S"; }
if (type == "Sup.ABS") { return "ABS-S"; } if (m_fila_type == "Sup.ABS") { return "ABS-S"; }
if (type == "Support W") { return "PLA-S"; } if (m_fila_type == "Support W") { return "PLA-S"; }
if (type == "Support G") { return "PA-S"; } if (m_fila_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 == "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<std::string>()); std::string type = MachineObject::setting_id_to_type(curr_tray->setting_id, (*tray_it)["tray_type"].get<std::string>());
if (curr_tray->setting_id == "GFS00") 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") else if (curr_tray->setting_id == "GFS01")
{ {
curr_tray->type = "PA-S"; curr_tray->m_fila_type = "PA-S";
} }
else else
{ {
curr_tray->type = type; curr_tray->m_fila_type = type;
} }
} }
else else
{ {
curr_tray->setting_id = ""; curr_tray->setting_id = "";
curr_tray->type = ""; curr_tray->m_fila_type = "";
} }
if (tray_it->contains("tray_sub_brands")) if (tray_it->contains("tray_sub_brands"))
curr_tray->sub_brands = (*tray_it)["tray_sub_brands"].get<std::string>(); curr_tray->sub_brands = (*tray_it)["tray_sub_brands"].get<std::string>();
+2 -2
View File
@@ -28,7 +28,7 @@ public:
std::string tag_uid; // tag_uid std::string tag_uid; // tag_uid
std::string setting_id; // tray_info_idx std::string setting_id; // tray_info_idx
std::string filament_setting_id; // setting_id std::string filament_setting_id; // setting_id
std::string type; std::string m_fila_type;
std::string sub_brands; std::string sub_brands;
std::string color; std::string color;
std::vector<std::string> cols; std::vector<std::string> cols;
@@ -57,7 +57,7 @@ public:
// operators // operators
bool operator==(DevAmsTray const& o) const 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); } bool operator!=(DevAmsTray const& o) const { return !operator==(o); }
+13 -9
View File
@@ -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 { 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) 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<std::string>(); vt_slot[0].color = jj["tray_color"].get<std::string>();
vt_slot[0].setting_id = jj["tray_info_idx"].get<std::string>(); vt_slot[0].setting_id = jj["tray_info_idx"].get<std::string>();
//vt_tray.type = jj["tray_type"].get<std::string>(); //vt_tray.type = jj["tray_type"].get<std::string>();
vt_slot[0].type = setting_id_to_type(vt_slot[0].setting_id, jj["tray_type"].get<std::string>()); vt_slot[0].m_fila_type = setting_id_to_type(vt_slot[0].setting_id, jj["tray_type"].get<std::string>());
// delay update // delay update
vt_slot[0].set_hold_count(); vt_slot[0].set_hold_count();
} else { } 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<std::string>(); tray_it->second->setting_id = jj["tray_info_idx"].get<std::string>();
tray_it->second->type = setting_id_to_type(tray_it->second->setting_id, jj["tray_type"].get<std::string>()); tray_it->second->m_fila_type = setting_id_to_type(tray_it->second->setting_id, jj["tray_type"].get<std::string>());
// delay update // delay update
tray_it->second->set_hold_count(); tray_it->second->set_hold_count();
} else { } else {
@@ -4632,18 +4636,18 @@ DevAmsTray MachineObject::parse_vt_tray(json vtray)
//std::string type = vtray["tray_type"].get<std::string>(); //std::string type = vtray["tray_type"].get<std::string>();
std::string type = setting_id_to_type(vt_tray.setting_id, vtray["tray_type"].get<std::string>()); std::string type = setting_id_to_type(vt_tray.setting_id, vtray["tray_type"].get<std::string>());
if (vt_tray.setting_id == "GFS00") { 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") { else if (vt_tray.setting_id == "GFS01") {
vt_tray.type = "PA-S"; vt_tray.m_fila_type = "PA-S";
} }
else { else {
vt_tray.type = type; vt_tray.m_fila_type = type;
} }
} }
else { else {
vt_tray.setting_id = ""; vt_tray.setting_id = "";
vt_tray.type = ""; vt_tray.m_fila_type = "";
} }
if (vtray.contains("tray_sub_brands")) if (vtray.contains("tray_sub_brands"))
vt_tray.sub_brands = vtray["tray_sub_brands"].get<std::string>(); vt_tray.sub_brands = vtray["tray_sub_brands"].get<std::string>();
@@ -5157,7 +5161,7 @@ void MachineObject::check_ams_filament_valid()
<< slot_id << "filament_id: " << curr_tray->setting_id; << 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)); std::stoi(curr_tray->nozzle_temp_min), std::stoi(curr_tray->nozzle_temp_max));
} }
continue; continue;
@@ -5218,7 +5222,7 @@ void MachineObject::check_ams_filament_valid()
if (!is_equation) { if (!is_equation) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__
<< " vt_tray filament is not match min max temp and reset, filament_id: " << vt_tray.setting_id; << " 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)); std::stoi(vt_tray.nozzle_temp_max));
} }
+1
View File
@@ -274,6 +274,7 @@ public:
std::string get_filament_id(std::string ams_id, std::string tray_id) const; 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_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 // parse amsStatusMain and ams_status_sub
void _parse_ams_status(int ams_status); void _parse_ams_status(int ams_status);
+2 -2
View File
@@ -2943,13 +2943,13 @@ std::map<int, DynamicPrintConfig> 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) { 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%") 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; DynamicPrintConfig tray_config;
tray_config.set_key_value("filament_id", new ConfigOptionStrings{tray.setting_id}); 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("tag_uid", new ConfigOptionStrings{tray.tag_uid});
tray_config.set_key_value("ams_id", new ConfigOptionStrings{ams_id}); 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("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("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_colour", new ConfigOptionStrings{into_u8(wxColour("#" + tray.color).GetAsString(wxC2S_HTML_SYNTAX))});
tray_config.set_key_value("filament_multi_colour", new ConfigOptionStrings{}); tray_config.set_key_value("filament_multi_colour", new ConfigOptionStrings{});
+1 -1
View File
@@ -1368,7 +1368,7 @@ void SelectMachineDialog::auto_supply_with_ext(std::vector<DevAmsTray> slots) {
if (slot.id.empty()) continue; if (slot.id.empty()) continue;
m_ams_mapping_result[i].ams_id = slot.id; m_ams_mapping_result[i].ams_id = slot.id;
m_ams_mapping_result[i].color = slot.color; 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].colors = slot.cols;
m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str()); m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str());
m_ams_mapping_result[i].slot_id = "0"; m_ams_mapping_result[i].slot_id = "0";
+1 -1
View File
@@ -1497,7 +1497,7 @@ void SyncAmsInfoDialog::auto_supply_with_ext(std::vector<DevAmsTray> slots)
if (slot.id.empty()) continue; if (slot.id.empty()) continue;
m_ams_mapping_result[i].ams_id = slot.id; m_ams_mapping_result[i].ams_id = slot.id;
m_ams_mapping_result[i].color = slot.color; 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].colors = slot.cols;
m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str()); m_ams_mapping_result[i].tray_id = atoi(slot.id.c_str());
m_ams_mapping_result[i].slot_id = "0"; m_ams_mapping_result[i].slot_id = "0";