ENH:supports new fields for flag3

jira:[none]

Change-Id: I013c7b843f3f7d5156a8d209572da2bc078e9191
(cherry picked from commit 106d9865c3e569b95519ae9bd9193d10bd991d1a)
This commit is contained in:
tao wang
2025-04-08 16:02:35 +08:00
committed by Noisyfox
parent 1908b39bb8
commit bb74ca8b63
4 changed files with 19 additions and 26 deletions

View File

@@ -4390,12 +4390,12 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
if (jj["ams"]["version"].is_number())
ams_version = jj["ams"]["version"].get<int>();
}
if (jj["ams"].contains("tray_now")) {
this->_parse_tray_now(jj["ams"]["tray_now"].get<std::string>());
}
if (jj["ams"].contains("tray_tar")) {
m_tray_tar = jj["ams"]["tray_tar"].get<std::string>();
}
if (jj["ams"].contains("tray_now")) {
_parse_tray_now(jj["ams"]["tray_now"].get<std::string>());
}
if (jj["ams"].contains("ams_rfid_status"))
ams_rfid_status = jj["ams"]["ams_rfid_status"].get<int>();

View File

@@ -3310,7 +3310,7 @@ void StatusPanel::update_ams(MachineObject *obj)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
m_ams_control->SetExtruder(ext.ext_has_filament, MAIN_NOZZLE_ID, ext.snow.ams_id, ext.snow.slot_id);
}
/*left*/
@@ -3325,7 +3325,7 @@ void StatusPanel::update_ams(MachineObject *obj)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
m_ams_control->SetExtruder(ext.ext_has_filament, DEPUTY_NOZZLE_ID, ext.snow.ams_id, ext.snow.slot_id);
}
//}
@@ -4271,6 +4271,8 @@ void StatusPanel::on_ams_load_vams(wxCommandEvent& event) {
void StatusPanel::on_ams_switch(SimpleEvent &event)
{
if(obj){
/*right*/
if (obj->m_extder_data.extders.size() > 0) {
auto ext = obj->m_extder_data.extders[MAIN_NOZZLE_ID];
if (ext.ext_has_filament) {
@@ -4282,7 +4284,7 @@ void StatusPanel::on_ams_switch(SimpleEvent &event)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
m_ams_control->SetExtruder(ext.ext_has_filament, MAIN_NOZZLE_ID, ext.snow.ams_id, ext.snow.slot_id);
}
/*left*/
@@ -4297,7 +4299,7 @@ void StatusPanel::on_ams_switch(SimpleEvent &event)
} else {
m_ams_control->SetAmsStep(ext.snow.ams_id, ext.snow.slot_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
}
m_ams_control->SetExtruder(ext.ext_has_filament, ext.snow.ams_id, ext.snow.slot_id);
m_ams_control->SetExtruder(ext.ext_has_filament, DEPUTY_NOZZLE_ID, ext.snow.ams_id, ext.snow.slot_id);
}
}
}
@@ -4565,20 +4567,13 @@ void StatusPanel::on_ams_refresh_rfid(wxCommandEvent &event)
auto has_filament_at_extruder = false;
auto use_new_command = false;
if (obj->m_extder_data.total_extder_count <= 1 && !obj->is_enable_np) {
has_filament_at_extruder = obj->is_filament_at_extruder();
/*for xp support n3s/n3f*/
if (!ams_it->second->info.empty()) {
use_new_command = true;
}
} else {
if (obj->is_enable_np || obj->is_enable_ams_np) {
use_new_command = true;
if (ams_it->second->nozzle < obj->m_extder_data.extders.size()) {
has_filament_at_extruder = obj->m_extder_data.extders[ams_it->second->nozzle].ext_has_filament;
}
} else {
has_filament_at_extruder = obj->is_filament_at_extruder();
}
if (has_filament_at_extruder) {

View File

@@ -1465,19 +1465,17 @@ bool AMSControl::Enable(bool enable)
return wxWindow::Enable(enable);
}
void AMSControl::SetExtruder(bool on_off, std::string ams_id, std::string slot_id)
void AMSControl::SetExtruder(bool on_off, int nozzle_id, std::string ams_id, std::string slot_id)
{
AmsItem *item = nullptr;
if (m_ams_item_list.find(ams_id) != m_ams_item_list.end()) { item = m_ams_item_list[ams_id]; }
if (!item) {
return;
}
if (!on_off) {
m_extruder->OnAmsLoading(false, item->get_nozzle_id());
} else {
if (on_off && item) {
auto col = item->GetTagColr(slot_id);
m_extruder->OnAmsLoading(true, item->get_nozzle_id(), col);
m_extruder->OnAmsLoading(true, nozzle_id, col);
}
else {
m_extruder->OnAmsLoading(false, nozzle_id);
}
}

View File

@@ -170,7 +170,7 @@ public:
void AddAms(std::vector<AMSinfo> single_info, const std::string &series_name, const std::string &printer_type, AMSPanelPos pos = AMSPanelPos::LEFT_PANEL);
void AddAmsPreview(std::vector<AMSinfo>single_info, AMSPanelPos pos);
//void AddExtraAms(std::vector<AMSinfo>single_info);
void SetExtruder(bool on_off, std::string ams_id, std::string slot_id);
void SetExtruder(bool on_off, int nozzle_id, std::string ams_id, std::string slot_id);
void SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadType type, AMSPassRoadSTEP step);
void SwitchAms(std::string ams_id);