ENH:add check machine sync status logic
1. Check machine sync logic before pop up filament map 2. Switch to auto for flush mode if is not synced jira: NONE Signed-off-by: xun.zhang <xun.zhang@bambulab.com> Change-Id: I05ef0e610418767f763c5579f5fc85a4e9b79c47
This commit is contained in:
parent
f1702a5c36
commit
5d7f8b1267
|
@ -11,9 +11,10 @@ static const wxString AutoForFlushLabel = _L("Filament-Saving Mode");
|
||||||
static const wxString AutoForMatchLabel = _L("Convenient Mode");
|
static const wxString AutoForMatchLabel = _L("Convenient Mode");
|
||||||
static const wxString ManualLabel = _L("Manual Mode");
|
static const wxString ManualLabel = _L("Manual Mode");
|
||||||
|
|
||||||
static const wxString AutoForFlushDesp = _L("(Arrage after slicing)");
|
static const wxString AutoForFlushDesp = _L("(Arrange after slicing)");
|
||||||
static const wxString AutoForMatchDesp = _L("(Arrange before slicing)");
|
static const wxString AutoForMatchDesp = _L("(Arrange before slicing)");
|
||||||
static const wxString ManualDesp = "";
|
static const wxString ManualDesp = "";
|
||||||
|
static const wxString MachineSyncTip = _L("(Please sync printer)");
|
||||||
|
|
||||||
static const wxString AutoForFlushDetail = _L("Disregrad the filaments in AMS. Optimize filament usage "
|
static const wxString AutoForFlushDetail = _L("Disregrad the filaments in AMS. Optimize filament usage "
|
||||||
"by calculating the best allocation for the left and right "
|
"by calculating the best allocation for the left and right "
|
||||||
|
@ -220,7 +221,19 @@ void FilamentGroupPopup::Init(bool connect_status)
|
||||||
radio_btns[ButtonType::btForMatch]->Enable(connect_status);
|
radio_btns[ButtonType::btForMatch]->Enable(connect_status);
|
||||||
button_labels[ButtonType::btForMatch]->Enable(connect_status);
|
button_labels[ButtonType::btForMatch]->Enable(connect_status);
|
||||||
|
|
||||||
|
|
||||||
|
if (connect_status) {
|
||||||
|
button_desps[ButtonType::btForMatch]->SetLabel(AutoForMatchDesp);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
button_desps[ButtonType::btForMatch]->SetLabel(MachineSyncTip);
|
||||||
|
}
|
||||||
|
|
||||||
m_mode = get_prefered_map_mode();
|
m_mode = get_prefered_map_mode();
|
||||||
|
if (m_mode == fmmAutoForMatch && !connect_status) {
|
||||||
|
set_prefered_map_mode(fmmAutoForFlush);
|
||||||
|
m_mode = fmmAutoForFlush;
|
||||||
|
}
|
||||||
|
|
||||||
wxCheckBoxState check_state = get_pop_up_remind_flag() ? wxCheckBoxState::wxCHK_UNCHECKED : wxCheckBoxState::wxCHK_CHECKED;
|
wxCheckBoxState check_state = get_pop_up_remind_flag() ? wxCheckBoxState::wxCHK_UNCHECKED : wxCheckBoxState::wxCHK_CHECKED;
|
||||||
remind_checkbox->Set3StateValue(check_state);
|
remind_checkbox->Set3StateValue(check_state);
|
||||||
|
|
|
@ -1653,7 +1653,7 @@ wxBoxSizer* MainFrame::create_side_tools()
|
||||||
pos.x -= (m_slice_option_btn->GetRect().width + m_filament_group_popup->GetRect().width * 0.6);
|
pos.x -= (m_slice_option_btn->GetRect().width + m_filament_group_popup->GetRect().width * 0.6);
|
||||||
|
|
||||||
m_filament_group_popup->SetPosition(pos);
|
m_filament_group_popup->SetPosition(pos);
|
||||||
m_filament_group_popup->tryPopup(m_plater->check_ams_status());
|
m_filament_group_popup->tryPopup(m_plater->get_machine_sync_status());
|
||||||
});
|
});
|
||||||
|
|
||||||
m_slice_btn->Bind(wxEVT_LEAVE_WINDOW, [this](auto& event) {
|
m_slice_btn->Bind(wxEVT_LEAVE_WINDOW, [this](auto& event) {
|
||||||
|
|
|
@ -3367,6 +3367,7 @@ struct Plater::priv
|
||||||
void unbind_canvas_event_handlers();
|
void unbind_canvas_event_handlers();
|
||||||
void reset_canvas_volumes();
|
void reset_canvas_volumes();
|
||||||
bool check_ams_status_impl(); // Check whether the printer and ams status are consistent, for grouping algorithm
|
bool check_ams_status_impl(); // Check whether the printer and ams status are consistent, for grouping algorithm
|
||||||
|
bool get_machine_sync_status(); // check whether the printer is linked and the printer type is same as selected profile
|
||||||
|
|
||||||
// BBS
|
// BBS
|
||||||
bool init_collapse_toolbar();
|
bool init_collapse_toolbar();
|
||||||
|
@ -9178,6 +9179,20 @@ bool Plater::priv::check_ams_status_impl()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Plater::priv::get_machine_sync_status()
|
||||||
|
{
|
||||||
|
Slic3r::DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager();
|
||||||
|
if (!dev)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
MachineObject* obj = dev->get_selected_machine();
|
||||||
|
if (!obj)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
PresetBundle *preset_bundle = wxGetApp().preset_bundle;
|
||||||
|
return preset_bundle && preset_bundle->printers.get_edited_preset().get_printer_type(preset_bundle) == obj->printer_type;
|
||||||
|
}
|
||||||
|
|
||||||
bool Plater::priv::init_collapse_toolbar()
|
bool Plater::priv::init_collapse_toolbar()
|
||||||
{
|
{
|
||||||
if (wxGetApp().is_gcode_viewer())
|
if (wxGetApp().is_gcode_viewer())
|
||||||
|
@ -15865,6 +15880,11 @@ void Plater::update_machine_sync_status()
|
||||||
GUI::wxGetApp().sidebar().update_sync_status(obj);
|
GUI::wxGetApp().sidebar().update_sync_status(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Plater::get_machine_sync_status()
|
||||||
|
{
|
||||||
|
return p->get_machine_sync_status();
|
||||||
|
}
|
||||||
|
|
||||||
#if ENABLE_ENVIRONMENT_MAP
|
#if ENABLE_ENVIRONMENT_MAP
|
||||||
void Plater::init_environment_texture()
|
void Plater::init_environment_texture()
|
||||||
{
|
{
|
||||||
|
|
|
@ -603,6 +603,8 @@ public:
|
||||||
void update_objects_position_when_select_preset(const std::function<void()> &select_prest);
|
void update_objects_position_when_select_preset(const std::function<void()> &select_prest);
|
||||||
|
|
||||||
bool check_ams_status();
|
bool check_ams_status();
|
||||||
|
// only check sync status and printer model id
|
||||||
|
bool get_machine_sync_status();
|
||||||
|
|
||||||
void update_machine_sync_status();
|
void update_machine_sync_status();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue