From 030efb339a93220948bbfc02c16c6b55e34aa182 Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 20 Dec 2022 13:11:23 +0800 Subject: [PATCH] ENH: hide some functions which are not ready on U2 version Change-Id: I6ff7f98d55d9734938b65aaa72727320dd3c5f6e --- src/slic3r/GUI/CameraPopup.cpp | 10 ++++++++-- src/slic3r/GUI/DeviceManager.cpp | 9 +++++++++ src/slic3r/GUI/DeviceManager.hpp | 5 +++++ src/slic3r/GUI/StatusPanel.cpp | 2 +- src/slic3r/GUI/Widgets/AMSControl.cpp | 14 +++++++++++--- src/slic3r/GUI/Widgets/AMSControl.hpp | 2 +- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/CameraPopup.cpp b/src/slic3r/GUI/CameraPopup.cpp index 99b18be55..d102ecafe 100644 --- a/src/slic3r/GUI/CameraPopup.cpp +++ b/src/slic3r/GUI/CameraPopup.cpp @@ -257,17 +257,23 @@ void CameraPopup::check_func_supported() allow_alter_resolution = (m_obj->is_function_supported(PrinterFunction::FUNC_ALTER_RESOLUTION) && m_obj->has_ipcam); + //check u2 version + DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev) return; + MachineObject* obj = dev->get_selected_machine(); + if (!obj) return; + //resolution supported std::vector resolution_supported = m_obj->get_resolution_supported(); auto support_count = resolution_supported.size(); for (int i = 0; i < (int)RESOLUTION_OPTIONS_NUM; ++i){ auto curr_res = to_resolution_msg_string(CameraResolution(i)); std::vector ::iterator it = std::find(resolution_supported.begin(), resolution_supported.end(), curr_res); - if ((it == resolution_supported.end())||(support_count <= 1)) + if ((it == resolution_supported.end())||(support_count <= 1) || !obj->is_support_1080dpi) m_resolution_options[i] -> Hide(); } //hide resolution if there is only one choice - if (support_count <= 1) { + if (support_count <= 1 || !obj->is_support_1080dpi) { m_text_resolution->Hide(); } } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index c7372a98e..159169d6c 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1271,12 +1271,18 @@ void MachineObject::parse_version_func() is_xcam_buildplate_supported = false; xcam_support_recovery_step_loss = false; is_support_send_to_sdcard = false; + is_support_1080dpi = false; + is_support_ai_monitoring = false; + is_support_ams_humidity = false; } else { ams_support_remain = true; ams_support_auto_switch_filament_flag = true; is_xcam_buildplate_supported = true; xcam_support_recovery_step_loss = true; is_support_send_to_sdcard = true; + is_support_1080dpi = true; + is_support_ai_monitoring = true; + is_support_ams_humidity = true; } } } @@ -2010,6 +2016,9 @@ bool MachineObject::is_function_supported(PrinterFunction func) func_name = "FUNC_FIRSTLAYER_INSPECT"; break; case FUNC_AI_MONITORING: + parse_version_func(); + if (!is_support_ai_monitoring) + return false; func_name = "FUNC_AI_MONITORING"; break; case FUNC_BUILDPLATE_MARKER_DETECT: diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 9d778fe57..90245aa20 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -589,6 +589,11 @@ public: int xcam_auto_recovery_hold_count = 0; int ams_print_option_count = 0; + /*not support U2*/ + bool is_support_1080dpi {false}; + bool is_support_ai_monitoring {false}; + bool is_support_ams_humidity {false}; + /* sdcard */ MachineObject::SdcardState sdcard_state { NO_SDCARD }; MachineObject::SdcardState get_sdcard_state(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 93eb1cf8a..1c915cf38 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1843,7 +1843,7 @@ void StatusPanel::update_ams(MachineObject *obj) for (auto ams = obj->amsList.begin(); ams != obj->amsList.end(); ams++) { AMSinfo info; info.ams_id = ams->first; - if (ams->second->is_exists && info.parse_ams_info(ams->second, obj->ams_calibrate_remain_flag)) ams_info.push_back(info); + if (ams->second->is_exists && info.parse_ams_info(ams->second, obj->ams_calibrate_remain_flag, obj->is_support_ams_humidity)) 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) { diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 8027ac3e9..4eb30cc29 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -35,11 +35,18 @@ wxDEFINE_EVENT(EVT_AMS_CLIBRATION_CANCEL, wxCommandEvent); wxDEFINE_EVENT(EVT_AMS_GUIDE_WIKI, wxCommandEvent); wxDEFINE_EVENT(EVT_AMS_RETRY, wxCommandEvent); -bool AMSinfo::parse_ams_info(Ams *ams, bool remain_flag) +bool AMSinfo::parse_ams_info(Ams *ams, bool remain_flag, bool humidity_flag) { if (!ams) return false; this->ams_id = ams->id; - this->ams_humidity = ams->humidity; + + if (humidity_flag) { + this->ams_humidity = ams->humidity; + } + else { + this->ams_humidity = -1; + } + cans.clear(); for (int i = 0; i < 4; i++) { auto it = ams->trayList.find(std::to_string(i)); @@ -917,7 +924,8 @@ void AMSRoad::doRender(wxDC &dc) dc.DrawBitmap(ams_humidity_0.bmp(), wxPoint(size.x - ams_humidity_0.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_0.GetBmpSize().y - FromDIP(8))); } else { - dc.DrawBitmap(ams_humidity_4.bmp(), wxPoint(size.x - ams_humidity_4.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_4.GetBmpSize().y - FromDIP(8))); + /*dc.DrawBitmap(ams_humidity_4.bmp(), wxPoint(size.x - ams_humidity_4.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_4.GetBmpSize().y - FromDIP(8)));*/ + //to do ... } } } diff --git a/src/slic3r/GUI/Widgets/AMSControl.hpp b/src/slic3r/GUI/Widgets/AMSControl.hpp index 73a91f8a4..a7390afed 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.hpp +++ b/src/slic3r/GUI/Widgets/AMSControl.hpp @@ -126,7 +126,7 @@ public: int curreent_filamentstep; int ams_humidity = 0; - bool parse_ams_info(Ams *ams, bool remain_flag = false); + bool parse_ams_info(Ams *ams, bool remain_flag = false, bool humidity_flag = false); }; /*************************************************