FIX: the load filament steps shown fault

jira: [STUDIO-9684]
Change-Id: Ic238993302156788200482ed34e3092b9ab94dfd
This commit is contained in:
xin.zhang 2025-01-13 17:21:06 +08:00 committed by lane.wei
parent 0ab64d0cce
commit f8b4949353
7 changed files with 47 additions and 32 deletions

View File

@ -3594,7 +3594,9 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
home_flag = jj["home_flag"].get<int>(); home_flag = jj["home_flag"].get<int>();
parse_status(home_flag); parse_status(home_flag);
} }
if (jj.contains("hw_switch_state")) {
/*the param is invalid in np for Yeshu*/
if (!check_enable_np(jj) && jj.contains("hw_switch_state")) {
hw_switch_state = jj["hw_switch_state"].get<int>(); hw_switch_state = jj["hw_switch_state"].get<int>();
m_extder_data.extders[MAIN_NOZZLE_ID].ext_has_filament = hw_switch_state; m_extder_data.extders[MAIN_NOZZLE_ID].ext_has_filament = hw_switch_state;
} }
@ -5568,6 +5570,17 @@ NozzleFlowType MachineObject::get_nozzle_flow_type(int extruder_id) const
return NozzleFlowType::NONE_FLOWTYPE; return NozzleFlowType::NONE_FLOWTYPE;
} }
const Extder& MachineObject::get_current_extruder() const
{
if (m_extder_data.extders.size() <= m_extder_data.current_extder_id)
{
BOOST_LOG_TRIVIAL(error) << "get_current_extruder() failed";
return Extder();
}
return m_extder_data.extders[m_extder_data.current_extder_id];
}
void MachineObject::converse_to_duct(bool is_suppt_part_fun, bool is_suppt_aux_fun, bool is_suppt_cham_fun) void MachineObject::converse_to_duct(bool is_suppt_part_fun, bool is_suppt_aux_fun, bool is_suppt_cham_fun)
{ {
m_air_duct_data.modes.clear(); m_air_duct_data.modes.clear();
@ -5728,7 +5741,7 @@ AmsTray MachineObject::parse_vt_tray(json vtray)
return vt_tray; return vt_tray;
} }
bool MachineObject::check_enable_np(json print) const bool MachineObject::check_enable_np(const json& print) const
{ {
if (print.contains("cfg") && print.contains("fun") && print.contains("aux") && print.contains("stat")) if (print.contains("cfg") && print.contains("fun") && print.contains("aux") && print.contains("stat"))
{ {

View File

@ -744,6 +744,7 @@ public:
/*extruder*/ /*extruder*/
[[nodiscard]] bool is_nozzle_flow_type_supported() const { return is_enable_np; }; [[nodiscard]] bool is_nozzle_flow_type_supported() const { return is_enable_np; };
[[nodiscard]] NozzleFlowType get_nozzle_flow_type(int extruder_id) const; [[nodiscard]] NozzleFlowType get_nozzle_flow_type(int extruder_id) const;
[[nodiscard]] const Extder& get_current_extruder() const;
//new fan data //new fan data
AirDuctData m_air_duct_data; AirDuctData m_air_duct_data;
@ -1215,7 +1216,7 @@ public:
AmsTray parse_vt_tray(json vtray); AmsTray parse_vt_tray(json vtray);
/*for parse new info*/ /*for parse new info*/
bool check_enable_np(json print) const; bool check_enable_np(const json& print) const;
void parse_new_info(json print); void parse_new_info(json print);
bool is_nozzle_data_invalid(); bool is_nozzle_data_invalid();
int get_flag_bits(std::string str, int start, int count = 1); int get_flag_bits(std::string str, int start, int count = 1);

View File

@ -1889,6 +1889,8 @@ void StatusBasePanel::show_filament_load_group(bool show)
m_img_filament_loading->SetBitmap(create_scaled_bitmap("filament_load_fold", this, 24)); m_img_filament_loading->SetBitmap(create_scaled_bitmap("filament_load_fold", this, 24));
} }
m_scale_panel->Show(show); m_scale_panel->Show(show);
m_filament_step->SetupSteps(obj->get_current_extruder().ext_has_filament);
m_show_filament_group = show; m_show_filament_group = show;
Layout(); Layout();
Fit(); Fit();
@ -3085,7 +3087,7 @@ void StatusPanel::update_ams(MachineObject *obj)
} }
if (ams_loading_state) { if (ams_loading_state) {
update_filament_step(); update_load_with_temp();
m_filament_step->updateID(std::atoi(obj->m_ams_id.c_str()), std::atoi(obj->m_tray_id.c_str())); m_filament_step->updateID(std::atoi(obj->m_ams_id.c_str()), std::atoi(obj->m_tray_id.c_str()));
bool busy_for_vt_loading = false; bool busy_for_vt_loading = false;
@ -3886,9 +3888,8 @@ void StatusPanel::on_ams_load(SimpleEvent &event)
on_ams_load_curr(); on_ams_load_curr();
} }
void StatusPanel::update_filament_step() void StatusPanel::update_load_with_temp()
{ {
m_filament_step->UpdateStepCtrl(obj->is_filament_at_extruder());
if (!obj->is_filament_at_extruder()) { if (!obj->is_filament_at_extruder()) {
m_is_load_with_temp = true; m_is_load_with_temp = true;
} }
@ -3904,7 +3905,7 @@ void StatusPanel::on_ams_load_curr()
std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id); std::string curr_can_id = m_ams_control->GetCurrentCan(curr_ams_id);
update_filament_step(); update_load_with_temp();
//virtual tray //virtual tray
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) { if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
int old_temp = -1; int old_temp = -1;

View File

@ -644,7 +644,7 @@ protected:
/* extruder apis */ /* extruder apis */
void on_ams_load(SimpleEvent &event); void on_ams_load(SimpleEvent &event);
void update_filament_step(); void update_load_with_temp();
void on_ams_load_curr(); void on_ams_load_curr();
void on_ams_load_vams(wxCommandEvent& event); void on_ams_load_vams(wxCommandEvent& event);
void on_ams_switch(SimpleEvent &event); void on_ams_switch(SimpleEvent &event);

View File

@ -55,7 +55,7 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
wxBoxSizer *m_ota_sizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_ota_sizer = new wxBoxSizer(wxHORIZONTAL);
m_printer_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200))); m_printer_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200)));
m_printer_img->SetBitmap(m_img_printer.bmp()); m_printer_img->SetBitmap(m_img_printer.bmp());
m_ota_sizer->Add(m_printer_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0); m_ota_sizer->Add(m_printer_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, 0);
@ -103,7 +103,7 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
m_staticText_ver_val = new wxStaticText(this, wxID_ANY, "-", wxDefaultPosition, wxDefaultSize, 0); m_staticText_ver_val = new wxStaticText(this, wxID_ANY, "-", wxDefaultPosition, wxDefaultSize, 0);
m_staticText_ver_val->Wrap(-1); m_staticText_ver_val->Wrap(-1);
m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0); m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0);
m_staticText_beta_version->SetForegroundColour("#778899"); m_staticText_beta_version->SetForegroundColour("#778899");
@ -143,7 +143,7 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin
m_ahb_panel = new AmsPanel(this, wxID_ANY); m_ahb_panel = new AmsPanel(this, wxID_ANY);
m_ahb_panel->m_staticText_ams->SetLabel("AMS HUB"); m_ahb_panel->m_staticText_ams->SetLabel("AMS HUB");
m_ams_content_sizer->Add(m_ahb_panel, 0, wxEXPAND, 0); m_ams_content_sizer->Add(m_ahb_panel, 0, wxEXPAND, 0);
m_ams_info_sizer = new wxFlexGridSizer(0, 2, FromDIP(30), FromDIP(30)); m_ams_info_sizer = new wxFlexGridSizer(0, 2, FromDIP(30), FromDIP(30));
m_ams_info_sizer->SetFlexibleDirection(wxHORIZONTAL); m_ams_info_sizer->SetFlexibleDirection(wxHORIZONTAL);
@ -386,7 +386,7 @@ void MachineInfoPanel::createLaserWidgets(wxBoxSizer* main_left_sizer)
main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0); main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0);
} }
void MachineInfoPanel::msw_rescale() void MachineInfoPanel::msw_rescale()
{ {
rescale_bitmaps(); rescale_bitmaps();
m_button_upgrade_firmware->SetSize(wxSize(FromDIP(-1), FromDIP(24))); m_button_upgrade_firmware->SetSize(wxSize(FromDIP(-1), FromDIP(24)));
@ -394,7 +394,7 @@ void MachineInfoPanel::msw_rescale()
m_button_upgrade_firmware->SetMaxSize(wxSize(FromDIP(-1), FromDIP(24))); m_button_upgrade_firmware->SetMaxSize(wxSize(FromDIP(-1), FromDIP(24)));
m_button_upgrade_firmware->SetCornerRadius(FromDIP(12)); m_button_upgrade_firmware->SetCornerRadius(FromDIP(12));
m_ahb_panel->msw_rescale(); m_ahb_panel->msw_rescale();
for (auto &amspanel : m_amspanel_list) { for (auto &amspanel : m_amspanel_list) {
amspanel->msw_rescale(); amspanel->msw_rescale();
} }
m_ext_panel->msw_rescale(); m_ext_panel->msw_rescale();
@ -537,7 +537,7 @@ void MachineInfoPanel::update(MachineObject* obj)
void MachineInfoPanel::update_version_text(MachineObject* obj) void MachineInfoPanel::update_version_text(MachineObject* obj)
{ {
if (obj->upgrade_display_state == (int)MachineObject::UpgradingDisplayState::UpgradingInProgress) { if (obj->upgrade_display_state == (int)MachineObject::UpgradingDisplayState::UpgradingInProgress) {
m_staticText_ver_val->SetLabelText("-"); m_staticText_ver_val->SetLabelText("-");
//m_staticText_ams_ver_val->SetLabelText("-"); //m_staticText_ams_ver_val->SetLabelText("-");
@ -655,14 +655,14 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
wxString sn_text = obj->module_vers.find("ahb")->second.sn; wxString sn_text = obj->module_vers.find("ahb")->second.sn;
hub_sn = sn_text.MakeUpper(); hub_sn = sn_text.MakeUpper();
} }
wxString hub_ver = "-"; wxString hub_ver = "-";
if (!obj->module_vers.find("ahb")->second.sw_ver.empty()) { if (!obj->module_vers.find("ahb")->second.sw_ver.empty()) {
wxString sn_text = obj->module_vers.find("ahb")->second.sw_ver; wxString sn_text = obj->module_vers.find("ahb")->second.sw_ver;
hub_ver = sn_text.MakeUpper(); hub_ver = sn_text.MakeUpper();
} }
/* auto ver_item = obj->new_ver_list.find("ahb"); /* auto ver_item = obj->new_ver_list.find("ahb");
if (ver_item != obj->new_ver_list.end()) { if (ver_item != obj->new_ver_list.end()) {
m_ahb_panel->m_ams_new_version_img->Show(); m_ahb_panel->m_ams_new_version_img->Show();
@ -852,7 +852,7 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
ams_ver += wxString::Format("(%s)", _L("Beta version")); ams_ver += wxString::Format("(%s)", _L("Beta version"));
} }
ams_ver += wxString::Format("->%s", obj->ams_new_version_number); ams_ver += wxString::Format("->%s", obj->ams_new_version_number);
} }
} }
else { else {
@ -947,7 +947,7 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
if (!has_hub_model) { show_ams(false); } if (!has_hub_model) { show_ams(false); }
show_extra_ams(false); show_extra_ams(false);
} }
//ext //ext
auto ext_module = obj->module_vers.find("ext"); auto ext_module = obj->module_vers.find("ext");
if (ext_module == obj->module_vers.end() || is_o_series) if (ext_module == obj->module_vers.end() || is_o_series)
@ -975,7 +975,7 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
// set sn and version // set sn and version
m_ext_panel->m_staticText_ext_sn_val->SetLabelText(sn_text); m_ext_panel->m_staticText_ext_sn_val->SetLabelText(sn_text);
m_ext_panel->m_staticText_ext_ver_val->SetLabelText(ext_ver); m_ext_panel->m_staticText_ext_ver_val->SetLabelText(ext_ver);
show_ext(true); show_ext(true);
} }
@ -1202,7 +1202,7 @@ void MachineInfoPanel::on_consisitency_upgrade_firmware(wxCommandEvent &event)
confirm_dlg->on_show(); confirm_dlg->on_show();
} }
void MachineInfoPanel::on_show_release_note(wxMouseEvent &event) void MachineInfoPanel::on_show_release_note(wxMouseEvent &event)
{ {
DeviceManager *dev = wxGetApp().getDeviceManager(); DeviceManager *dev = wxGetApp().getDeviceManager();
if (!dev) return; if (!dev) return;
@ -1217,7 +1217,7 @@ void MachineInfoPanel::on_show_release_note(wxMouseEvent &event)
version_number = m_obj->ota_new_version_number; version_number = m_obj->ota_new_version_number;
next_version_release_note = wxString::FromUTF8(iter.description); next_version_release_note = wxString::FromUTF8(iter.description);
} }
if (iter.version == m_obj->get_ota_version()) { if (iter.version == m_obj->get_ota_version()) {
version_number = m_obj->get_ota_version(); version_number = m_obj->get_ota_version();
now_version_release_note = wxString::FromUTF8(iter.description); now_version_release_note = wxString::FromUTF8(iter.description);
} }
@ -1267,8 +1267,8 @@ UpgradePanel::~UpgradePanel()
delete consistency_dlg ; delete consistency_dlg ;
} }
void UpgradePanel::msw_rescale() void UpgradePanel::msw_rescale()
{ {
if (m_push_upgrade_panel) if (m_push_upgrade_panel)
m_push_upgrade_panel->msw_rescale(); m_push_upgrade_panel->msw_rescale();
} }
@ -1454,7 +1454,7 @@ bool UpgradePanel::Show(bool show)
m_staticText_ams_ver_val = new wxStaticText(this, wxID_ANY, "-", wxDefaultPosition, wxDefaultSize, 0); m_staticText_ams_ver_val = new wxStaticText(this, wxID_ANY, "-", wxDefaultPosition, wxDefaultSize, 0);
m_staticText_ams_ver_val->SetForegroundColour("#262E30"); m_staticText_ams_ver_val->SetForegroundColour("#262E30");
m_staticText_ams_ver_val->Wrap(-1); m_staticText_ams_ver_val->Wrap(-1);
m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0); m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0);
m_staticText_beta_version->SetForegroundColour("#778899"); m_staticText_beta_version->SetForegroundColour("#778899");
m_staticText_beta_version->Wrap(-1); m_staticText_beta_version->Wrap(-1);
@ -1476,12 +1476,12 @@ bool UpgradePanel::Show(bool show)
Layout(); Layout();
} }
AmsPanel::~AmsPanel() AmsPanel::~AmsPanel()
{ {
} }
void AmsPanel::msw_rescale() { void AmsPanel::msw_rescale() {
upgrade_green_icon.msw_rescale(); upgrade_green_icon.msw_rescale();
m_ams_new_version_img->SetBitmap(upgrade_green_icon.bmp()); m_ams_new_version_img->SetBitmap(upgrade_green_icon.bmp());
} }
@ -1494,7 +1494,7 @@ bool UpgradePanel::Show(bool show)
const wxString& name /*= wxEmptyString*/) const wxString& name /*= wxEmptyString*/)
: wxPanel(parent, id, pos, size, style) : wxPanel(parent, id, pos, size, style)
{ {
upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5); upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5);
auto top_sizer = new wxBoxSizer(wxVERTICAL); auto top_sizer = new wxBoxSizer(wxVERTICAL);
@ -1554,8 +1554,8 @@ bool UpgradePanel::Show(bool show)
} }
void ExtensionPanel::msw_rescale() void ExtensionPanel::msw_rescale()
{ {
upgrade_green_icon.msw_rescale(); upgrade_green_icon.msw_rescale();
m_ext_new_version_img->SetBitmap(upgrade_green_icon.bmp()); m_ext_new_version_img->SetBitmap(upgrade_green_icon.bmp());
} }
@ -1568,7 +1568,7 @@ bool UpgradePanel::Show(bool show)
const wxString& name /*= wxEmptyString*/) const wxString& name /*= wxEmptyString*/)
: AmsPanel(parent, id, pos, size, style) : AmsPanel(parent, id, pos, size, style)
{ {
} }
} }

View File

@ -124,7 +124,7 @@ void FilamentLoad::SetFilamentStep(FilamentStep item_idx, FilamentStepType f_typ
step_control->SetSlotInformation(slot_info); step_control->SetSlotInformation(slot_info);
} }
void FilamentLoad::UpdateStepCtrl(bool has_fila_to_switch) { void FilamentLoad::SetupSteps(bool has_fila_to_switch) {
m_filament_load_steps->DeleteAllItems(); m_filament_load_steps->DeleteAllItems();
m_filament_unload_steps->DeleteAllItems(); m_filament_unload_steps->DeleteAllItems();
m_filament_vt_load_steps->DeleteAllItems(); m_filament_vt_load_steps->DeleteAllItems();

View File

@ -44,7 +44,7 @@ public:
void SetFilamentStep(FilamentStep item_idx, FilamentStepType f_type); void SetFilamentStep(FilamentStep item_idx, FilamentStepType f_type);
void ShowFilamentTip(bool hasams = true); void ShowFilamentTip(bool hasams = true);
void UpdateStepCtrl(bool is_extrusion_exist); void SetupSteps(bool is_extrusion_exist);
void show_nofilament_mode(bool show); void show_nofilament_mode(bool show);
void updateID(int ams_id, int slot_id) { m_ams_id = ams_id; m_slot_id = slot_id; }; void updateID(int ams_id, int slot_id) { m_ams_id = ams_id; m_slot_id = slot_id; };