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>();
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>();
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;
}
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)
{
m_air_duct_data.modes.clear();
@ -5728,7 +5741,7 @@ AmsTray MachineObject::parse_vt_tray(json vtray)
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"))
{

View File

@ -744,6 +744,7 @@ public:
/*extruder*/
[[nodiscard]] bool is_nozzle_flow_type_supported() const { return is_enable_np; };
[[nodiscard]] NozzleFlowType get_nozzle_flow_type(int extruder_id) const;
[[nodiscard]] const Extder& get_current_extruder() const;
//new fan data
AirDuctData m_air_duct_data;
@ -1215,7 +1216,7 @@ public:
AmsTray parse_vt_tray(json vtray);
/*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);
bool is_nozzle_data_invalid();
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_scale_panel->Show(show);
m_filament_step->SetupSteps(obj->get_current_extruder().ext_has_filament);
m_show_filament_group = show;
Layout();
Fit();
@ -3085,7 +3087,7 @@ void StatusPanel::update_ams(MachineObject *obj)
}
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()));
bool busy_for_vt_loading = false;
@ -3886,9 +3888,8 @@ void StatusPanel::on_ams_load(SimpleEvent &event)
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()) {
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);
update_filament_step();
update_load_with_temp();
//virtual tray
if (curr_ams_id.compare(std::to_string(VIRTUAL_TRAY_MAIN_ID)) == 0) {
int old_temp = -1;

View File

@ -644,7 +644,7 @@ protected:
/* extruder apis */
void on_ams_load(SimpleEvent &event);
void update_filament_step();
void update_load_with_temp();
void on_ams_load_curr();
void on_ams_load_vams(wxCommandEvent& 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);
m_printer_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200)));
m_printer_img->SetBitmap(m_img_printer.bmp());
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->Wrap(-1);
m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0);
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->m_staticText_ams->SetLabel("AMS HUB");
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->SetFlexibleDirection(wxHORIZONTAL);
@ -386,7 +386,7 @@ void MachineInfoPanel::createLaserWidgets(wxBoxSizer* main_left_sizer)
main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0);
}
void MachineInfoPanel::msw_rescale()
void MachineInfoPanel::msw_rescale()
{
rescale_bitmaps();
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->SetCornerRadius(FromDIP(12));
m_ahb_panel->msw_rescale();
for (auto &amspanel : m_amspanel_list) {
for (auto &amspanel : m_amspanel_list) {
amspanel->msw_rescale();
}
m_ext_panel->msw_rescale();
@ -537,7 +537,7 @@ void MachineInfoPanel::update(MachineObject* obj)
void MachineInfoPanel::update_version_text(MachineObject* obj)
{
if (obj->upgrade_display_state == (int)MachineObject::UpgradingDisplayState::UpgradingInProgress) {
m_staticText_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;
hub_sn = sn_text.MakeUpper();
}
wxString hub_ver = "-";
if (!obj->module_vers.find("ahb")->second.sw_ver.empty()) {
wxString sn_text = obj->module_vers.find("ahb")->second.sw_ver;
hub_ver = sn_text.MakeUpper();
}
/* auto ver_item = obj->new_ver_list.find("ahb");
if (ver_item != obj->new_ver_list.end()) {
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", obj->ams_new_version_number);
}
}
else {
@ -947,7 +947,7 @@ void MachineInfoPanel::update_ams_ext(MachineObject *obj)
if (!has_hub_model) { show_ams(false); }
show_extra_ams(false);
}
//ext
auto ext_module = obj->module_vers.find("ext");
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
m_ext_panel->m_staticText_ext_sn_val->SetLabelText(sn_text);
m_ext_panel->m_staticText_ext_ver_val->SetLabelText(ext_ver);
show_ext(true);
}
@ -1202,7 +1202,7 @@ void MachineInfoPanel::on_consisitency_upgrade_firmware(wxCommandEvent &event)
confirm_dlg->on_show();
}
void MachineInfoPanel::on_show_release_note(wxMouseEvent &event)
void MachineInfoPanel::on_show_release_note(wxMouseEvent &event)
{
DeviceManager *dev = wxGetApp().getDeviceManager();
if (!dev) return;
@ -1217,7 +1217,7 @@ void MachineInfoPanel::on_show_release_note(wxMouseEvent &event)
version_number = m_obj->ota_new_version_number;
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();
now_version_release_note = wxString::FromUTF8(iter.description);
}
@ -1267,8 +1267,8 @@ UpgradePanel::~UpgradePanel()
delete consistency_dlg ;
}
void UpgradePanel::msw_rescale()
{
void UpgradePanel::msw_rescale()
{
if (m_push_upgrade_panel)
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->SetForegroundColour("#262E30");
m_staticText_ams_ver_val->Wrap(-1);
m_staticText_beta_version = new wxStaticText(this, wxID_ANY, "Beta", wxDefaultPosition, wxDefaultSize, 0);
m_staticText_beta_version->SetForegroundColour("#778899");
m_staticText_beta_version->Wrap(-1);
@ -1476,12 +1476,12 @@ bool UpgradePanel::Show(bool show)
Layout();
}
AmsPanel::~AmsPanel()
AmsPanel::~AmsPanel()
{
}
void AmsPanel::msw_rescale() {
void AmsPanel::msw_rescale() {
upgrade_green_icon.msw_rescale();
m_ams_new_version_img->SetBitmap(upgrade_green_icon.bmp());
}
@ -1494,7 +1494,7 @@ bool UpgradePanel::Show(bool show)
const wxString& name /*= wxEmptyString*/)
: wxPanel(parent, id, pos, size, style)
{
upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5);
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();
m_ext_new_version_img->SetBitmap(upgrade_green_icon.bmp());
}
@ -1568,7 +1568,7 @@ bool UpgradePanel::Show(bool show)
const wxString& name /*= wxEmptyString*/)
: 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);
}
void FilamentLoad::UpdateStepCtrl(bool has_fila_to_switch) {
void FilamentLoad::SetupSteps(bool has_fila_to_switch) {
m_filament_load_steps->DeleteAllItems();
m_filament_unload_steps->DeleteAllItems();
m_filament_vt_load_steps->DeleteAllItems();

View File

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