mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 07:27:41 -06:00
Update the codes to 01.01.00.10 for the formal release
1. first formal version of macos 2. add the bambu networking plugin install logic 3. auto compute the wipe volume when filament change 4. add the logic of wiping into support 5. refine the GUI layout and icons, improve the gui apperance in lots of small places 6. serveral improve to support 7. support AMS auto-mapping 8. disable lots of unstable features: such as params table, media file download, HMS 9. fix serveral kinds of bugs 10. update the document of building 11. ...
This commit is contained in:
parent
e1528e4299
commit
e9e4d75877
267 changed files with 10326 additions and 32228 deletions
|
@ -39,8 +39,8 @@ static const wxColour STAGE_TEXT_COL = wxColour(0, 174, 66);
|
|||
static const wxColour GROUP_STATIC_LINE_COL = wxColour(206, 206, 206);
|
||||
|
||||
/* font and foreground colors */
|
||||
static const wxFont PAGE_TITLE_FONT = wxFont(11, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, 0, false, wxT("HarmonyOS Sans SC"));
|
||||
static const wxFont GROUP_TITLE_FONT = wxFont(13, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, 0, false, wxT("HarmonyOS Sans SC"));
|
||||
static const wxFont PAGE_TITLE_FONT = Label::Body_14;
|
||||
static const wxFont GROUP_TITLE_FONT = Label::sysFont(17);
|
||||
|
||||
static wxColour PAGE_TITLE_FONT_COL = wxColour(107, 107, 107);
|
||||
static wxColour GROUP_TITLE_FONT_COL = wxColour(172, 172, 172);
|
||||
|
@ -61,6 +61,7 @@ static wxColour TEXT_LIGHT_FONT_COL = wxColour(107, 107, 107);
|
|||
#define SWITCH_BUTTON_SIZE (wxSize(FromDIP(40), -1))
|
||||
#define TASK_THUMBNAIL_SIZE (wxSize(FromDIP(120), FromDIP(120)))
|
||||
#define TASK_BUTTON_SIZE (wxSize(FromDIP(48), FromDIP(24)))
|
||||
#define TASK_BUTTON_SIZE2 (wxSize(-1, FromDIP(24)))
|
||||
#define Z_BUTTON_SIZE (wxSize(FromDIP(52), FromDIP(52)))
|
||||
#define MISC_BUTTON_SIZE (wxSize(FromDIP(68), FromDIP(55)))
|
||||
#define TEMP_CTRL_MIN_SIZE (wxSize(FromDIP(122), FromDIP(52)))
|
||||
|
@ -167,9 +168,10 @@ void StatusBasePanel::init_bitmaps()
|
|||
m_bitmap_speed_active = create_scaled_bitmap("monitor_speed_active", nullptr, 24);
|
||||
m_thumbnail_placeholder = create_scaled_bitmap("monitor_placeholder", nullptr, 120);
|
||||
m_thumbnail_sdcard = create_scaled_bitmap("monitor_sdcard_thumbnail", nullptr, 120);
|
||||
m_bitmap_camera = create_scaled_bitmap("monitor_camera", nullptr, 18);
|
||||
//m_bitmap_camera = create_scaled_bitmap("monitor_camera", nullptr, 18);
|
||||
m_bitmap_extruder = *cache.load_png("monitor_extruder", FromDIP(28), FromDIP(70), false, false);
|
||||
|
||||
m_bitmap_sdcard_state_on = create_scaled_bitmap("sdcard_state_on", nullptr, 16);
|
||||
m_bitmap_sdcard_state_off = create_scaled_bitmap("sdcard_state_off", nullptr, 16);
|
||||
}
|
||||
|
||||
wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
||||
|
@ -182,7 +184,7 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
|||
wxBoxSizer *bSizer_monitoring_title;
|
||||
bSizer_monitoring_title = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_staticText_monitoring = new wxStaticText(m_panel_monitoring_title, wxID_ANY, _L("Monitoring"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
||||
m_staticText_monitoring = new wxStaticText(m_panel_monitoring_title, wxID_ANY, _L("Camera"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
|
||||
m_staticText_monitoring->Wrap(-1);
|
||||
m_staticText_monitoring->SetFont(PAGE_TITLE_FONT);
|
||||
m_staticText_monitoring->SetForegroundColour(PAGE_TITLE_FONT_COL);
|
||||
|
@ -202,9 +204,32 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
|
|||
m_bmToggleBtn_timelapse->Hide();
|
||||
bSizer_monitoring_title->Add(m_bmToggleBtn_timelapse, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
|
||||
m_bitmap_camera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_camera , wxDefaultPosition, wxSize(FromDIP(32), FromDIP(18)), 0);
|
||||
m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
|
||||
bSizer_monitoring_title->Add(m_bitmap_camera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
//m_bitmap_camera_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_camera , wxDefaultPosition, wxSize(FromDIP(32), FromDIP(18)), 0);
|
||||
//m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
|
||||
//bSizer_monitoring_title->Add(m_bitmap_camera_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
|
||||
m_bitmap_sdcard_off_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_sdcard_state_off, wxDefaultPosition, wxSize(FromDIP(32), FromDIP(16)), 0);
|
||||
m_bitmap_sdcard_off_img->SetMinSize(wxSize(FromDIP(32), FromDIP(16)));
|
||||
m_bitmap_sdcard_on_img = new wxStaticBitmap(m_panel_monitoring_title, wxID_ANY, m_bitmap_sdcard_state_on, wxDefaultPosition, wxSize(FromDIP(32), FromDIP(16)), 0);
|
||||
m_bitmap_sdcard_on_img->SetMinSize(wxSize(FromDIP(32), FromDIP(16)));
|
||||
m_bitmap_sdcard_on_img->Hide();
|
||||
|
||||
m_timelapse_button = new CameraItem(m_panel_monitoring_title, "timelapse_off_normal", "timelapse_on_normal", "timelapse_off_hover", "timelapse_on_hover");
|
||||
m_timelapse_button->SetMinSize(wxSize(32, 24));
|
||||
m_timelapse_button->SetBackgroundColour(STATUS_TITLE_BG);
|
||||
|
||||
m_recording_button = new CameraItem(m_panel_monitoring_title, "recording_off_normal", "recording_on_normal", "recording_off_hover", "recording_on_hover");
|
||||
m_recording_button->SetMinSize(wxSize(32, 24));
|
||||
m_recording_button->SetBackgroundColour(STATUS_TITLE_BG);
|
||||
|
||||
m_timelapse_button->SetToolTip(_L("Timelapse"));
|
||||
m_recording_button->SetToolTip(_L("Video"));
|
||||
|
||||
bSizer_monitoring_title->Add(m_bitmap_sdcard_off_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_bitmap_sdcard_on_img, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_timelapse_button, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
bSizer_monitoring_title->Add(m_recording_button, 0, wxALIGN_CENTER_VERTICAL | wxALL, FromDIP(5));
|
||||
|
||||
bSizer_monitoring_title->Add(FromDIP(13), 0, 0);
|
||||
|
||||
m_panel_monitoring_title->SetSizer(bSizer_monitoring_title);
|
||||
|
@ -313,7 +338,7 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent)
|
|||
std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered), std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Normal));
|
||||
m_button_report->SetBackgroundColor(report_bg);
|
||||
m_button_report->SetMinSize(TASK_BUTTON_SIZE);
|
||||
m_button_report->SetMinSize(TASK_BUTTON_SIZE2);
|
||||
StateColor report_bd(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
m_button_report->SetBorderColor(report_bd);
|
||||
StateColor report_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
|
@ -333,7 +358,7 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent)
|
|||
StateColor pause_resume_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled));
|
||||
m_button_pause_resume->SetTextColor(pause_resume_text);
|
||||
m_button_pause_resume->SetFont(Label::Body_10);
|
||||
m_button_pause_resume->SetMinSize(TASK_BUTTON_SIZE);
|
||||
m_button_pause_resume->SetMinSize(TASK_BUTTON_SIZE2);
|
||||
//bSizer_task_btn->Add(m_button_pause_resume, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
|
||||
m_sizer_progressbar->Add(m_button_pause_resume, 0, wxALL, FromDIP(5));
|
||||
|
||||
|
@ -348,7 +373,7 @@ wxBoxSizer *StatusBasePanel::create_project_task_page(wxWindow *parent)
|
|||
StateColor abort_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
m_button_abort->SetTextColor(abort_text);
|
||||
m_button_abort->SetFont(Label::Body_10);
|
||||
m_button_abort->SetMinSize(TASK_BUTTON_SIZE);
|
||||
m_button_abort->SetMinSize(TASK_BUTTON_SIZE2);
|
||||
//bSizer_task_btn->Add(m_button_abort, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
|
||||
m_sizer_progressbar->Add(m_button_abort, 0, wxALL, FromDIP(5));
|
||||
|
||||
|
@ -435,7 +460,7 @@ wxBoxSizer *StatusBasePanel::create_machine_control_page(wxWindow *parent)
|
|||
m_calibration_btn->SetBorderColor(btn_bd_green);
|
||||
m_calibration_btn->SetTextColor(*wxWHITE);
|
||||
m_calibration_btn->SetSize(wxSize(FromDIP(128), FromDIP(26)));
|
||||
m_calibration_btn->SetMinSize(wxSize(FromDIP(128), FromDIP(26)));
|
||||
m_calibration_btn->SetMinSize(wxSize(-1, FromDIP(26)));
|
||||
|
||||
bSizer_control_title->Add(m_staticText_control, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, PAGE_TITLE_LEFT_MARGIN);
|
||||
bSizer_control_title->Add(0, 0, 1, wxEXPAND, 0);
|
||||
|
@ -623,6 +648,7 @@ void StatusBasePanel::reset_temp_misc_control()
|
|||
m_tempCtrl_bed->GetTextCtrl()->SetLabel(TEMP_BLANK_STR);
|
||||
m_tempCtrl_frame->SetLabel(TEMP_BLANK_STR);
|
||||
m_tempCtrl_frame->GetTextCtrl()->SetLabel(TEMP_BLANK_STR);
|
||||
m_button_unload->Show();
|
||||
|
||||
m_tempCtrl_nozzle->Enable(true);
|
||||
m_tempCtrl_frame->Enable(true);
|
||||
|
@ -778,7 +804,7 @@ wxBoxSizer *StatusBasePanel::create_extruder_control(wxWindow *parent)
|
|||
StateColor abort_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
m_button_unload->SetTextColor(abort_text);
|
||||
m_button_unload->SetFont(Label::Body_10);
|
||||
m_button_unload->SetMinSize(wxSize(FromDIP(52), FromDIP(26)));
|
||||
m_button_unload->SetMinSize(wxSize(-1, FromDIP(24)));
|
||||
m_button_unload->SetCornerRadius(FromDIP(10));
|
||||
bSizer_e_ctrl->Add(0, 0, 1, wxEXPAND, 0);
|
||||
bSizer_e_ctrl->Add(m_button_unload, 0, wxALIGN_CENTER_HORIZONTAL| wxTOP|wxBOTTOM, FromDIP(5));
|
||||
|
@ -844,6 +870,40 @@ void StatusBasePanel::show_ams_group(bool show)
|
|||
m_show_ams_group = show;
|
||||
}
|
||||
|
||||
void StatusBasePanel::upodate_camera_state(bool recording, bool timelapse, bool has_sdcard)
|
||||
{
|
||||
|
||||
//sdcard
|
||||
/* if (has_sdcard && !m_bitmap_sdcard_img->IsShown()) {
|
||||
m_bitmap_sdcard_img->Show();
|
||||
m_panel_monitoring_title->Layout();
|
||||
}
|
||||
if (!has_sdcard && m_bitmap_sdcard_img->IsShown()) {
|
||||
m_bitmap_sdcard_img->Hide();
|
||||
m_panel_monitoring_title->Layout();
|
||||
}*/
|
||||
|
||||
if (has_sdcard) {
|
||||
if (m_bitmap_sdcard_off_img->IsShown()) {
|
||||
m_bitmap_sdcard_on_img->Show();
|
||||
m_bitmap_sdcard_off_img->Hide();
|
||||
m_panel_monitoring_title->Layout();
|
||||
}
|
||||
} else {
|
||||
if (m_bitmap_sdcard_on_img->IsShown()) {
|
||||
m_bitmap_sdcard_on_img->Hide();
|
||||
m_bitmap_sdcard_off_img->Show();
|
||||
m_panel_monitoring_title->Layout();
|
||||
}
|
||||
}
|
||||
|
||||
//recording
|
||||
m_recording_button->set_switch(recording);
|
||||
|
||||
//timelapse
|
||||
m_timelapse_button->set_switch(timelapse);
|
||||
}
|
||||
|
||||
StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name)
|
||||
: StatusBasePanel(parent, id, pos, size, style)
|
||||
{
|
||||
|
@ -855,6 +915,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co
|
|||
m_buttons.push_back(m_button_report);
|
||||
m_buttons.push_back(m_button_pause_resume);
|
||||
m_buttons.push_back(m_button_abort);
|
||||
m_buttons.push_back(m_button_unload);
|
||||
m_buttons.push_back(m_bpButton_z_10);
|
||||
m_buttons.push_back(m_bpButton_z_1);
|
||||
m_buttons.push_back(m_bpButton_z_down_1);
|
||||
|
@ -887,8 +948,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co
|
|||
// Connect Events
|
||||
//m_bitmap_thumbnail->Connect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(StatusPanel::on_thumbnail_enter), NULL, this);
|
||||
//m_bitmap_thumbnail->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(StatusPanel::on_thumbnail_leave), NULL, this);
|
||||
m_bitmap_camera_img->Connect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
|
||||
//m_bitmap_camera_img->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(StatusPanel::on_camera_leave), NULL, this);
|
||||
m_recording_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_switch_recording), NULL, this);
|
||||
m_project_task_panel->Connect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(StatusPanel::on_thumbnail_leave), NULL, this);
|
||||
|
||||
m_button_pause_resume->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this);
|
||||
|
@ -924,8 +984,7 @@ StatusPanel::~StatusPanel()
|
|||
// Disconnect Events
|
||||
//m_bitmap_thumbnail->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(StatusPanel::on_thumbnail_enter), NULL, this);
|
||||
//m_bitmap_thumbnail->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(StatusPanel::on_thumbnail_leave), NULL, this);
|
||||
m_bitmap_camera_img->Disconnect(wxEVT_ENTER_WINDOW, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this);
|
||||
//m_bitmap_camera_img->Disconnect(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(StatusPanel::on_camera_leave), NULL, this);
|
||||
m_recording_button->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_switch_recording), NULL, this);
|
||||
m_button_pause_resume->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this);
|
||||
m_button_abort->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this);
|
||||
m_tempCtrl_bed->Disconnect(wxEVT_KILL_FOCUS, wxFocusEventHandler(StatusPanel::on_bed_temp_kill_focus), NULL, this);
|
||||
|
@ -955,7 +1014,7 @@ void StatusPanel::init_scaled_buttons()
|
|||
m_button_pause_resume->SetCornerRadius(FromDIP(12));
|
||||
m_button_abort->SetMinSize(wxSize(FromDIP(48), FromDIP(24)));
|
||||
m_button_abort->SetCornerRadius(FromDIP(12));
|
||||
m_button_unload->SetMinSize(wxSize(FromDIP(52), FromDIP(24)));
|
||||
m_button_unload->SetMinSize(wxSize(-1, FromDIP(24)));
|
||||
m_button_unload->SetCornerRadius(FromDIP(10));
|
||||
m_bpButton_z_10->SetMinSize(Z_BUTTON_SIZE);
|
||||
m_bpButton_z_10->SetCornerRadius(0);
|
||||
|
@ -1095,7 +1154,6 @@ void StatusPanel::update(MachineObject *obj)
|
|||
// update_tasklist(obj);
|
||||
update_ams(obj);
|
||||
|
||||
|
||||
update_cali(obj);
|
||||
if (obj) {
|
||||
if (calibration_dlg == nullptr) {
|
||||
|
@ -1108,6 +1166,7 @@ void StatusPanel::update(MachineObject *obj)
|
|||
}
|
||||
|
||||
|
||||
upodate_camera_state(obj->has_recording(), obj->has_timelapse(), obj->has_sdcard());
|
||||
m_machine_ctrl_panel->Thaw();
|
||||
}
|
||||
|
||||
|
@ -1202,22 +1261,21 @@ void StatusPanel::update_temp_ctrl(MachineObject *obj)
|
|||
m_tempCtrl_frame->SetTagTemp(obj->chamber_temp);
|
||||
}
|
||||
|
||||
void StatusPanel::show_unload_ctrl()
|
||||
{
|
||||
m_button_unload->Show();
|
||||
m_button_unload->GetParent()->Layout();
|
||||
}
|
||||
|
||||
void StatusPanel::update_misc_ctrl(MachineObject *obj)
|
||||
{
|
||||
if (!obj) return;
|
||||
|
||||
if (obj->has_ams()) {
|
||||
m_button_unload->Hide();
|
||||
m_button_unload->GetParent()->Layout();
|
||||
if (m_button_unload->IsShown()) {
|
||||
m_button_unload->Hide();
|
||||
m_button_unload->GetParent()->Layout();
|
||||
}
|
||||
|
||||
} else {
|
||||
m_button_unload->Show();
|
||||
m_button_unload->GetParent()->Layout();
|
||||
if (!m_button_unload->IsShown()) {
|
||||
m_button_unload->Show();
|
||||
m_button_unload->GetParent()->Layout();
|
||||
}
|
||||
}
|
||||
|
||||
// nozzle fan
|
||||
|
@ -1285,18 +1343,28 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
info.ams_id = ams->first;
|
||||
if (ams->second->is_exists && info.parse_ams_info(ams->second)) ams_info.push_back(info);
|
||||
}
|
||||
if (obj->ams_exist_bits != last_ams_exist_bits || obj->tray_exist_bits != last_tray_exist_bits || obj->tray_is_bbl_bits != last_tray_is_bbl_bits ||
|
||||
obj->tray_read_done_bits != last_read_done_bits || obj->ams_version != last_ams_version) {
|
||||
m_ams_control->UpdateAms(ams_info, false);
|
||||
// select current ams
|
||||
//if (!obj->m_ams_id.empty()) m_ams_control->SwitchAms(obj->m_ams_id);
|
||||
//if (obj->ams_exist_bits != last_ams_exist_bits || obj->tray_exist_bits != last_tray_exist_bits || obj->tray_is_bbl_bits != last_tray_is_bbl_bits ||
|
||||
// obj->tray_read_done_bits != last_read_done_bits || obj->ams_version != last_ams_version) {
|
||||
// m_ams_control->UpdateAms(ams_info, false);
|
||||
// // select current ams
|
||||
// //if (!obj->m_ams_id.empty()) m_ams_control->SwitchAms(obj->m_ams_id);
|
||||
|
||||
last_tray_exist_bits = obj->tray_exist_bits;
|
||||
last_ams_exist_bits = obj->ams_exist_bits;
|
||||
last_tray_is_bbl_bits = obj->tray_is_bbl_bits;
|
||||
last_read_done_bits = obj->tray_read_done_bits;
|
||||
last_ams_version = obj->ams_version;
|
||||
}
|
||||
// last_tray_exist_bits = obj->tray_exist_bits;
|
||||
// last_ams_exist_bits = obj->ams_exist_bits;
|
||||
// last_tray_is_bbl_bits = obj->tray_is_bbl_bits;
|
||||
// last_read_done_bits = obj->tray_read_done_bits;
|
||||
// last_ams_version = obj->ams_version;
|
||||
//}
|
||||
|
||||
// select current ams
|
||||
// if (!obj->m_ams_id.empty()) m_ams_control->SwitchAms(obj->m_ams_id);
|
||||
|
||||
m_ams_control->UpdateAms(ams_info, false);
|
||||
last_tray_exist_bits = obj->tray_exist_bits;
|
||||
last_ams_exist_bits = obj->ams_exist_bits;
|
||||
last_tray_is_bbl_bits = obj->tray_is_bbl_bits;
|
||||
last_read_done_bits = obj->tray_read_done_bits;
|
||||
last_ams_version = obj->ams_version;
|
||||
}
|
||||
|
||||
if (!obj->is_ams_unload()) {
|
||||
|
@ -1314,40 +1382,60 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
if (obj->ams_status_main == AMS_STATUS_MAIN_FILAMENT_CHANGE) {
|
||||
// wait to heat hotend
|
||||
if (obj->ams_status_sub == 0x02) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE);
|
||||
|
||||
if (curr_ams_id == obj->m_ams_id) {
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, true);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_3);
|
||||
} else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_HEAT_NOZZLE, false);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_3);
|
||||
}
|
||||
}
|
||||
} else if (obj->ams_status_sub == 0x03) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT);
|
||||
if (!obj->is_ams_unload())
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, true);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP1);
|
||||
else
|
||||
}
|
||||
else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_CUT_FILAMENT, false);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
}
|
||||
|
||||
} else if (obj->ams_status_sub == 0x04) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT);
|
||||
if (!obj->is_ams_unload())
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, true);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
else
|
||||
}
|
||||
else {
|
||||
//FilamentStep::STEP_PULL_CURR_FILAMENT);
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PULL_CURR_FILAMENT, false);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
} else if (obj->ams_status_sub == 0x05) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT);
|
||||
if (!obj->is_ams_unload())
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, true);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP2);
|
||||
else
|
||||
}
|
||||
else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, false);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
} else if (obj->ams_status_sub == 0x06) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT);
|
||||
if (!obj->is_ams_unload())
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, true);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
else
|
||||
} else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PUSH_NEW_FILAMENT, false);
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
} else if (obj->ams_status_sub == 0x07) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT);
|
||||
if (!obj->is_ams_unload()) {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT);
|
||||
} else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_PURGE_OLD_FILAMENT, false);
|
||||
}
|
||||
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_LOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
|
@ -1360,7 +1448,7 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_NONE);
|
||||
}
|
||||
} else {
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_IDLE);
|
||||
m_ams_control->SetFilamentStep(FilamentStep::STEP_IDLE, false);
|
||||
if (obj->is_filament_move()) {
|
||||
m_ams_control->SetAmsStep(curr_ams_id, obj->m_tray_id, AMSPassRoadType::AMS_ROAD_TYPE_UNLOAD, AMSPassRoadSTEP::AMS_ROAD_STEP_COMBO_LOAD_STEP3);
|
||||
} else {
|
||||
|
@ -1387,75 +1475,52 @@ void StatusPanel::update_ams(MachineObject *obj)
|
|||
// update rfid button style
|
||||
|
||||
// update load/unload enable state
|
||||
// printing
|
||||
if (obj->ams_status_main != AMS_STATUS_MAIN_FILAMENT_CHANGE) {
|
||||
if (obj->m_tray_now == "255") {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_LOAD);
|
||||
} else {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_NORMAL);
|
||||
}
|
||||
} else {
|
||||
if (obj->is_in_printing() && !obj->can_resume()) {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_PRINTING);
|
||||
} else {
|
||||
if (obj->ams_status_main != AMS_STATUS_MAIN_FILAMENT_CHANGE) {
|
||||
if (obj->m_tray_now == "255") {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_LOAD);
|
||||
} else {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_NORMAL);
|
||||
}
|
||||
} else {
|
||||
m_ams_control->SetActionState(AMSAction::AMS_ACTION_PRINTING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::update_cali(MachineObject *obj)
|
||||
{
|
||||
if (!obj) return;
|
||||
if (obj->is_in_printing()) {
|
||||
m_calibration_btn->Disable();
|
||||
return;
|
||||
} else {
|
||||
m_calibration_btn->Enable();
|
||||
if (!obj->is_in_calibration()) {
|
||||
m_calibration_btn->SetLabel(_L("Start Calibration"));
|
||||
} else {
|
||||
|
||||
if (obj->is_in_calibration()) {
|
||||
m_calibration_btn->SetLabel(_L("Calibrating"));
|
||||
if (calibration_dlg && calibration_dlg->IsShown()) {
|
||||
m_calibration_btn->Disable();
|
||||
m_calibration_btn->SetLabel(_L("Calibrating"));
|
||||
} else {
|
||||
m_calibration_btn->Enable();
|
||||
}
|
||||
} else {
|
||||
// IDLE
|
||||
m_calibration_btn->SetLabel(_L("Start Calibration"));
|
||||
// disable in printing
|
||||
if (obj->is_in_printing()) {
|
||||
m_calibration_btn->Disable();
|
||||
} else {
|
||||
m_calibration_btn->Enable();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::update_subtask(MachineObject *obj)
|
||||
void StatusPanel::update_left_time(int mc_left_time)
|
||||
{
|
||||
if (!obj) return;
|
||||
|
||||
if (!obj->is_in_printing()
|
||||
|| obj->is_system_printing()
|
||||
) {
|
||||
reset_printing_values();
|
||||
return;
|
||||
}
|
||||
|
||||
// update button enable status
|
||||
if (obj->can_abort()) {
|
||||
m_button_abort->Enable();
|
||||
} else {
|
||||
m_button_abort->Enable(false);
|
||||
}
|
||||
|
||||
if (obj->can_pause() || obj->can_resume()) {
|
||||
m_button_pause_resume->Enable();
|
||||
if (obj->can_resume())
|
||||
m_button_pause_resume->SetLabel(_L("Resume"));
|
||||
else
|
||||
m_button_pause_resume->SetLabel(_L("Pause"));
|
||||
} else {
|
||||
m_button_pause_resume->Enable(false);
|
||||
}
|
||||
|
||||
if (obj->is_sdcard_printing()) {
|
||||
update_sdcard_subtask(obj);
|
||||
} else {
|
||||
update_cloud_subtask(obj);
|
||||
}
|
||||
|
||||
// update gcode progress
|
||||
std::string left_time;
|
||||
wxString left_time_text = NA_STR;
|
||||
|
||||
try {
|
||||
left_time = get_bbl_monitor_time_dhm(obj->mc_left_time);
|
||||
left_time = get_bbl_monitor_time_dhm(mc_left_time);
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
|
@ -1463,12 +1528,57 @@ void StatusPanel::update_subtask(MachineObject *obj)
|
|||
|
||||
// update current subtask progress
|
||||
m_staticText_progress_left->SetLabelText(left_time_text);
|
||||
}
|
||||
|
||||
if (!obj->is_printing_finished()) {
|
||||
// update printing stage
|
||||
m_printing_stage_value->SetLabelText(obj->get_curr_stage());
|
||||
void StatusPanel::update_subtask(MachineObject *obj)
|
||||
{
|
||||
if (!obj) return;
|
||||
|
||||
if (obj->is_system_printing()) {
|
||||
reset_printing_values();
|
||||
} else if (obj->is_in_printing() || obj->print_status == "FINISH") {
|
||||
if (obj->is_in_prepare()) {
|
||||
m_button_abort->Enable(false);
|
||||
m_button_pause_resume->Enable(false);
|
||||
m_button_pause_resume->SetLabel(_L("Pause"));
|
||||
wxString prepare_text = wxString::Format(_L("Downloading..."));
|
||||
if (obj->gcode_file_prepare_percent >= 0 && obj->gcode_file_prepare_percent <= 100)
|
||||
prepare_text += wxString::Format("(%d%%)", obj->gcode_file_prepare_percent);
|
||||
m_printing_stage_value->SetLabelText(prepare_text);
|
||||
m_gauge_progress->SetValue(0);
|
||||
m_staticText_progress_percent->SetLabelText(NA_STR);
|
||||
m_staticText_progress_left->SetLabel(NA_STR);
|
||||
m_staticText_progress_left->SetLabelText(NA_STR);
|
||||
wxString subtask_text = wxString::Format("%s", GUI::from_u8(obj->subtask_name));
|
||||
m_staticText_subtask_value->SetLabelText(subtask_text);
|
||||
} else {
|
||||
if (obj->can_resume())
|
||||
m_button_pause_resume->SetLabel(_L("Resume"));
|
||||
else
|
||||
m_button_pause_resume->SetLabel(_L("Pause"));
|
||||
m_button_abort->Enable(true);
|
||||
m_button_pause_resume->Enable(true);
|
||||
// update printing stage
|
||||
m_printing_stage_value->SetLabelText(obj->get_curr_stage());
|
||||
update_left_time(obj->mc_left_time);
|
||||
if (obj->subtask_) {
|
||||
m_gauge_progress->SetValue(obj->subtask_->task_progress);
|
||||
m_staticText_progress_percent->SetLabelText(wxString::Format("%d%%", obj->subtask_->task_progress));
|
||||
} else {
|
||||
m_gauge_progress->SetValue(0);
|
||||
m_staticText_progress_percent->SetLabelText(NA_STR);
|
||||
}
|
||||
}
|
||||
wxString subtask_text = wxString::Format("%s", GUI::from_u8(obj->subtask_name));
|
||||
m_staticText_subtask_value->SetLabelText(subtask_text);
|
||||
//update thumbnail
|
||||
if (obj->is_sdcard_printing()) {
|
||||
update_sdcard_subtask(obj);
|
||||
} else {
|
||||
update_cloud_subtask(obj);
|
||||
}
|
||||
} else {
|
||||
m_printing_stage_value->SetLabelText("");
|
||||
reset_printing_values();
|
||||
}
|
||||
|
||||
this->Layout();
|
||||
|
@ -1505,42 +1615,28 @@ void StatusPanel::update_cloud_subtask(MachineObject *obj)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// update subtask name
|
||||
wxString subtask_text;
|
||||
subtask_text = wxString::Format("%s", GUI::from_u8(obj->subtask_name));
|
||||
|
||||
m_staticText_subtask_value->SetLabelText(subtask_text);
|
||||
|
||||
m_gauge_progress->SetValue(obj->subtask_->task_progress);
|
||||
m_staticText_progress_percent->SetLabelText(wxString::Format("%d%%", obj->subtask_->task_progress));
|
||||
}
|
||||
|
||||
void StatusPanel::update_sdcard_subtask(MachineObject *obj)
|
||||
{
|
||||
if (!obj) return;
|
||||
|
||||
wxString subtask_text = wxString::Format("%s", GUI::from_u8(obj->subtask_name));
|
||||
m_staticText_subtask_value->SetLabelText(subtask_text);
|
||||
|
||||
if (!m_load_sdcard_thumbnail) {
|
||||
m_bitmap_thumbnail->SetBitmap(m_thumbnail_sdcard);
|
||||
m_load_sdcard_thumbnail = true;
|
||||
}
|
||||
|
||||
m_gauge_progress->SetValue(obj->subtask_->task_progress);
|
||||
m_staticText_progress_percent->SetLabelText(wxString::Format("%d%%", obj->subtask_->task_progress));
|
||||
}
|
||||
|
||||
void StatusPanel::reset_printing_values()
|
||||
{
|
||||
m_button_pause_resume->Enable(false);
|
||||
m_button_pause_resume->SetLabel(_L("Pause"));
|
||||
m_button_abort->Enable(false);
|
||||
m_gauge_progress->SetValue(0);
|
||||
m_staticText_subtask_value->SetLabelText("N/A");
|
||||
m_staticText_subtask_value->SetLabelText(NA_STR);
|
||||
m_printing_stage_value->SetLabelText("");
|
||||
m_staticText_progress_left->SetLabelText("N/A");
|
||||
m_staticText_progress_percent->SetLabelText("N/A");
|
||||
m_staticText_progress_left->SetLabelText(NA_STR);
|
||||
m_staticText_progress_percent->SetLabelText(NA_STR);
|
||||
m_bitmap_thumbnail->SetBitmap(m_thumbnail_placeholder);
|
||||
m_start_loading_thumbnail = false;
|
||||
m_load_sdcard_thumbnail = false;
|
||||
|
@ -1602,7 +1698,7 @@ void StatusPanel::on_set_bed_temp()
|
|||
try {
|
||||
long bed_temp;
|
||||
if (str.ToLong(&bed_temp) && obj) {
|
||||
m_temp_bed_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(m_temp_bed_timeout);
|
||||
obj->command_set_bed(bed_temp);
|
||||
}
|
||||
} catch (...) {
|
||||
|
@ -1616,7 +1712,7 @@ void StatusPanel::on_set_nozzle_temp()
|
|||
try {
|
||||
long nozzle_temp;
|
||||
if (str.ToLong(&nozzle_temp) && obj) {
|
||||
m_temp_nozzle_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(m_temp_nozzle_timeout);
|
||||
obj->command_set_nozzle(nozzle_temp);
|
||||
}
|
||||
} catch (...) {
|
||||
|
@ -1719,16 +1815,53 @@ void StatusPanel::on_filament_edit(wxCommandEvent &event)
|
|||
void StatusPanel::on_ams_refresh_rfid(wxCommandEvent &event)
|
||||
{
|
||||
if (obj) {
|
||||
std::string tray_id = event.GetString().ToStdString();
|
||||
obj->command_ams_refresh_rfid(tray_id);
|
||||
std::string curr_ams_id = m_ams_control->GetCurentAms();
|
||||
std::string curr_can_id = event.GetString().ToStdString();
|
||||
|
||||
std::map<std::string, Ams *>::iterator it = obj->amsList.find(curr_ams_id);
|
||||
if (it == obj->amsList.end()) {
|
||||
BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_ams_id << " failed";
|
||||
return;
|
||||
}
|
||||
auto tray_it = it->second->trayList.find(curr_can_id);
|
||||
if (tray_it == it->second->trayList.end()) {
|
||||
BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_can_id << " failed";
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
int tray_index = atoi(curr_ams_id.c_str()) * 4 + atoi(tray_it->second->id.c_str());
|
||||
obj->command_ams_refresh_rfid(std::to_string(tray_index));
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::on_ams_selected(wxCommandEvent &event)
|
||||
{
|
||||
if (obj) {
|
||||
std::string tray_id = event.GetString().ToStdString();
|
||||
obj->command_ams_select_tray(tray_id);
|
||||
std::string curr_ams_id = m_ams_control->GetCurentAms();
|
||||
std::string curr_can_id = event.GetString().ToStdString();
|
||||
|
||||
std::map<std::string, Ams *>::iterator it = obj->amsList.find(curr_ams_id);
|
||||
if (it == obj->amsList.end()) {
|
||||
BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_ams_id << " failed";
|
||||
return;
|
||||
}
|
||||
auto tray_it = it->second->trayList.find(curr_can_id);
|
||||
if (tray_it == it->second->trayList.end()) {
|
||||
BOOST_LOG_TRIVIAL(trace) << "ams: find " << curr_can_id << " failed";
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
int tray_index = atoi(curr_ams_id.c_str()) * 4 + atoi(tray_it->second->id.c_str());
|
||||
obj->command_ams_select_tray(std::to_string(tray_index));
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1795,7 +1928,7 @@ void StatusPanel::on_switch_speed(wxCommandEvent &event)
|
|||
step->Bind(EVT_STEP_CHANGED, [this](auto &e) {
|
||||
this->speed_lvl = e.GetInt() + 1;
|
||||
if (obj) {
|
||||
this-> speed_lvl_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->speed_lvl_timeout);
|
||||
obj->command_set_printing_speed((PrintingSpeedLevel)this->speed_lvl);
|
||||
}
|
||||
});
|
||||
|
@ -1819,11 +1952,11 @@ void StatusPanel::on_printing_fan_switch(wxCommandEvent &event)
|
|||
if (value) {
|
||||
obj->command_control_fan(MachineObject::FanType::BIG_COOLING_FAN, true);
|
||||
m_switch_printing_fan->SetValue(true);
|
||||
m_switch_printing_fan_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_printing_fan_timeout);
|
||||
} else {
|
||||
obj->command_control_fan(MachineObject::FanType::BIG_COOLING_FAN, false);
|
||||
m_switch_printing_fan->SetValue(false);
|
||||
m_switch_printing_fan_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_printing_fan_timeout);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1836,11 +1969,11 @@ void StatusPanel::on_nozzle_fan_switch(wxCommandEvent &event)
|
|||
if (value) {
|
||||
obj->command_control_fan(MachineObject::FanType::COOLING_FAN, true);
|
||||
m_switch_nozzle_fan->SetValue(true);
|
||||
m_switch_nozzle_fan_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_nozzle_fan_timeout);
|
||||
} else {
|
||||
obj->command_control_fan(MachineObject::FanType::COOLING_FAN, false);
|
||||
m_switch_nozzle_fan->SetValue(false);
|
||||
m_switch_nozzle_fan_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_nozzle_fan_timeout);
|
||||
}
|
||||
}
|
||||
void StatusPanel::on_lamp_switch(wxCommandEvent &event)
|
||||
|
@ -1852,11 +1985,11 @@ void StatusPanel::on_lamp_switch(wxCommandEvent &event)
|
|||
if (value) {
|
||||
m_switch_lamp->SetValue(true);
|
||||
// do not update when timeout > 0
|
||||
m_switch_lamp_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_lamp_timeout);
|
||||
obj->command_set_chamber_light(MachineObject::LIGHT_EFFECT::LIGHT_EFFECT_ON);
|
||||
} else {
|
||||
m_switch_lamp->SetValue(false);
|
||||
m_switch_lamp_timeout = COMMAND_TIMEOUT;
|
||||
set_hold_count(this->m_switch_lamp_timeout);
|
||||
obj->command_set_chamber_light(MachineObject::LIGHT_EFFECT::LIGHT_EFFECT_OFF);
|
||||
}
|
||||
}
|
||||
|
@ -1892,6 +2025,13 @@ void StatusPanel::on_thumbnail_leave(wxMouseEvent &event)
|
|||
}
|
||||
}
|
||||
|
||||
void StatusPanel::on_switch_recording(wxMouseEvent &event)
|
||||
{
|
||||
if (!obj) return;
|
||||
bool value = m_recording_button->get_switch_status();
|
||||
obj->command_ipcam_record(!value);
|
||||
}
|
||||
|
||||
void StatusPanel::on_camera_enter(wxMouseEvent& event)
|
||||
{
|
||||
if (obj) {
|
||||
|
@ -1962,11 +2102,11 @@ void StatusPanel::set_default()
|
|||
m_switch_nozzle_fan_timeout = 0;
|
||||
m_switch_printing_fan_timeout = 0;
|
||||
m_show_ams_group = false;
|
||||
|
||||
reset_printing_values();
|
||||
|
||||
reset_temp_misc_control();
|
||||
m_ams_control->Hide();
|
||||
m_ams_control->Reset();
|
||||
clean_tasklist_info();
|
||||
}
|
||||
|
||||
|
@ -1975,14 +2115,29 @@ void StatusPanel::show_status(int status)
|
|||
if (last_status == status) return;
|
||||
last_status = status;
|
||||
|
||||
if (((status & (int) MonitorStatus::MONITOR_DISCONNECTED) != 0) || ((status & (int) MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)) {
|
||||
if (((status & (int) MonitorStatus::MONITOR_DISCONNECTED) != 0)
|
||||
|| ((status & (int) MonitorStatus::MONITOR_DISCONNECTED_SERVER) != 0)
|
||||
|| ((status & (int)MonitorStatus::MONITOR_CONNECTING) != 0)
|
||||
) {
|
||||
m_text_tasklist_caption->SetForegroundColour(DISCONNECT_TEXT_COL);
|
||||
show_printing_status(false, false);
|
||||
m_calibration_btn->Disable();
|
||||
} else if ((status & (int) MonitorStatus::MONITOR_NORMAL) != 0) {
|
||||
show_printing_status(true, true);
|
||||
m_calibration_btn->Disable();
|
||||
}
|
||||
}
|
||||
|
||||
void StatusPanel::set_hold_count(int& count)
|
||||
{
|
||||
if (obj) {
|
||||
if (obj->is_U0_firmware()) {
|
||||
count = COMMAND_TIMEOUT_U0;
|
||||
}
|
||||
}
|
||||
count = COMMAND_TIMEOUT;
|
||||
}
|
||||
|
||||
void StatusPanel::msw_rescale()
|
||||
{
|
||||
init_bitmaps();
|
||||
|
@ -2011,8 +2166,13 @@ void StatusPanel::msw_rescale()
|
|||
slice_info_list[i]->msw_rescale();
|
||||
}
|
||||
|
||||
m_bitmap_camera_img->SetBitmap(m_bitmap_camera);
|
||||
m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
|
||||
//m_bitmap_camera_img->SetBitmap(m_bitmap_camera);
|
||||
//m_bitmap_camera_img->SetMinSize(wxSize(FromDIP(32), FromDIP(18)));
|
||||
|
||||
m_timelapse_button->SetMinSize(wxSize(32, 24));
|
||||
m_recording_button->SetMinSize(wxSize(32, 24));
|
||||
m_bitmap_sdcard_off_img->SetMinSize(wxSize(FromDIP(32), FromDIP(20)));
|
||||
m_bitmap_sdcard_on_img->SetMinSize(wxSize(FromDIP(32), FromDIP(20)));
|
||||
|
||||
m_bpButton_xy->Rescale();
|
||||
m_tempCtrl_nozzle->SetMinSize(TEMP_CTRL_MIN_SIZE);
|
||||
|
@ -2039,7 +2199,8 @@ void StatusPanel::msw_rescale()
|
|||
m_ams_control->msw_rescale();
|
||||
// m_filament_step->Rescale();
|
||||
|
||||
m_calibration_btn->SetMinSize(wxSize(FromDIP(128), FromDIP(26)));
|
||||
m_calibration_btn->SetMinSize(wxSize(-1, FromDIP(26)));
|
||||
m_calibration_btn->Rescale();
|
||||
|
||||
Layout();
|
||||
Refresh();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue