ENH: display unload filament button when use_ams is false

Change-Id: I4dc7cc17c33e5f92543934c3d003c34fea94b0cb
Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
Stone Li 2022-12-09 15:38:54 +08:00 committed by Lane.Wei
parent 761bf07c44
commit a9938d7676
3 changed files with 19 additions and 7 deletions

View file

@ -490,6 +490,18 @@ void MachineObject::_parse_ams_status(int ams_status)
BOOST_LOG_TRIVIAL(trace) << "ams_debug: main = " << ams_status_main_int << ", sub = " << ams_status_sub;
}
bool MachineObject::can_unload_filament()
{
bool result = false;
if (!has_ams())
return true;
if (ams_status_main == AMS_STATUS_MAIN_IDLE && hw_switch_state == 1 && m_tray_now == "255") {
return true;
}
return result;
}
bool MachineObject::is_U0_firmware()
{
auto ota_ver_it = module_vers.find("ota");

View file

@ -439,6 +439,7 @@ public:
// parse amsStatusMain and ams_status_sub
void _parse_ams_status(int ams_status);
bool has_ams() { return ams_exist_bits != 0; }
bool can_unload_filament();
bool is_U0_firmware();
bool is_support_ams_mapping();
bool is_only_support_cloud_print();

View file

@ -1633,17 +1633,16 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj)
{
if (!obj) return;
if (obj->has_ams()) {
if (m_button_unload->IsShown()) {
m_button_unload->Hide();
m_button_unload->GetParent()->Layout();
}
} else {
if (obj->can_unload_filament()) {
if (!m_button_unload->IsShown()) {
m_button_unload->Show();
m_button_unload->GetParent()->Layout();
}
} else {
if (m_button_unload->IsShown()) {
m_button_unload->Hide();
m_button_unload->GetParent()->Layout();
}
}
// update extruder icon