diff --git a/resources/images/extinguish.png b/resources/images/extinguish.png new file mode 100644 index 0000000000..ecc2960b09 Binary files /dev/null and b/resources/images/extinguish.png differ diff --git a/src/slic3r/GUI/DeviceCore/DevFirmware.h b/src/slic3r/GUI/DeviceCore/DevFirmware.h index 35edf9658e..2f45da4f56 100644 --- a/src/slic3r/GUI/DeviceCore/DevFirmware.h +++ b/src/slic3r/GUI/DeviceCore/DevFirmware.h @@ -43,6 +43,7 @@ public: bool isAirPump() const { return product_name.Contains("Air Pump"); } bool isLaszer() const { return product_name.Contains("Laser"); } bool isCuttingModule() const { return product_name.Contains("Cutting Module"); } + bool isExtinguishSystem() const { return product_name.Contains("Extinguishing System"); } }; diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 50ac4e52f8..e2d941916f 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -817,6 +817,7 @@ void MachineObject::clear_version_info() air_pump_version_info = DevFirmwareVersionInfo(); laser_version_info = DevFirmwareVersionInfo(); cutting_module_version_info = DevFirmwareVersionInfo(); + extinguish_version_info = DevFirmwareVersionInfo(); module_vers.clear(); } @@ -828,6 +829,8 @@ void MachineObject::store_version_info(const DevFirmwareVersionInfo& info) laser_version_info = info; } else if (info.isCuttingModule()) { cutting_module_version_info = info; + } else if (info.isExtinguishSystem()) { + extinguish_version_info = info; } module_vers.emplace(info.name, info); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 4e2926646e..c3fcb19923 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -352,6 +352,7 @@ public: DevFirmwareVersionInfo air_pump_version_info; DevFirmwareVersionInfo laser_version_info; DevFirmwareVersionInfo cutting_module_version_info; + DevFirmwareVersionInfo extinguish_version_info; std::map module_vers; std::map new_ver_list; bool m_new_ver_list_exist = false; diff --git a/src/slic3r/GUI/UpgradePanel.cpp b/src/slic3r/GUI/UpgradePanel.cpp index 3a54a0cf39..ae336de79a 100644 --- a/src/slic3r/GUI/UpgradePanel.cpp +++ b/src/slic3r/GUI/UpgradePanel.cpp @@ -26,6 +26,7 @@ static const std::unordered_map ACCESSORY_DISPLAY_STR = { {"O2L_PCM", L("Cutting Module")}, {"O2L_ACM", "Active Cutting Module"}, {"O2L_UCM", "Ultrasonic Cutting Module"}, + {"O2L-AFP", L("Auto Fire Extinguishing System")}, }; enum FIRMWARE_STASUS @@ -216,6 +217,7 @@ MachineInfoPanel::MachineInfoPanel(wxWindow* parent, wxWindowID id, const wxPoin createCuttingWidgets(m_main_left_sizer); createLaserWidgets(m_main_left_sizer); createAirPumpWidgets(m_main_left_sizer); + createExtinguishWidgets(m_main_left_sizer); m_main_sizer->Add(m_main_left_sizer, 1, wxEXPAND, 0); @@ -389,6 +391,27 @@ void MachineInfoPanel::createLaserWidgets(wxBoxSizer* main_left_sizer) main_left_sizer->Add(m_laser_sizer, 0, wxEXPAND, 0); } +void MachineInfoPanel::createExtinguishWidgets(wxBoxSizer* main_left_sizer) +{ + m_extinguish_line_above = new wxStaticLine(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL); + m_extinguish_line_above->SetBackgroundColour(wxColour(206, 206, 206)); + main_left_sizer->Add(m_extinguish_line_above, 0, wxEXPAND | wxLEFT, FromDIP(40)); + + m_extinguish_img = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize(FromDIP(200), FromDIP(200))); + m_extinguish_img->SetBitmap(m_img_extinguish.bmp()); + + wxBoxSizer* content_sizer = new wxBoxSizer(wxVERTICAL); + content_sizer->Add(0, 40, 0, wxEXPAND, FromDIP(5)); + m_extinguish_version = new uiDeviceUpdateVersion(this, wxID_ANY); + content_sizer->Add(m_extinguish_version, 0, wxEXPAND, 0); + + m_extinguish_sizer = new wxBoxSizer(wxHORIZONTAL); + m_extinguish_sizer->Add(m_extinguish_img, 0, wxALIGN_TOP | wxALL, FromDIP(5)); + m_extinguish_sizer->Add(content_sizer, 1, wxEXPAND, 0); + + main_left_sizer->Add(m_extinguish_sizer, 0, wxEXPAND, 0); +} + void MachineInfoPanel::msw_rescale() { rescale_bitmaps(); @@ -421,6 +444,7 @@ void MachineInfoPanel::init_bitmaps() m_img_laser = ScalableBitmap(this, "laser", 160); m_img_cutting = ScalableBitmap(this, "cut", 160); + m_img_extinguish = ScalableBitmap(this, "extinguish", 160); upgrade_green_icon = ScalableBitmap(this, "monitor_upgrade_online", 5); upgrade_gray_icon = ScalableBitmap(this, "monitor_upgrade_offline", 5); @@ -516,6 +540,7 @@ void MachineInfoPanel::update(MachineObject* obj) update_air_pump(obj); update_cut(obj); update_laszer(obj); + update_extinguish(obj); //update progress int upgrade_percent = obj->get_upgrade_percent(); @@ -1043,6 +1068,19 @@ void MachineInfoPanel::update_laszer(MachineObject* obj) } } +void MachineInfoPanel::update_extinguish(MachineObject* obj) +{ + if (obj && obj->extinguish_version_info.isValid()) + { + m_extinguish_version->UpdateInfo(obj->extinguish_version_info); + show_extinguish(true); + } + else + { + show_extinguish(false); + } +} + void MachineInfoPanel::show_status(int status, std::string upgrade_status_str) { if (last_status == status && last_status_str == upgrade_status_str) return; @@ -1167,6 +1205,17 @@ void MachineInfoPanel::show_laszer(bool show) } } +void MachineInfoPanel::show_extinguish(bool show) +{ + if (m_extinguish_version->IsShown() != show) + { + m_extinguish_img->Show(show); + m_extinguish_line_above->Show(show); + m_extinguish_version->Show(show); + } +} + + void MachineInfoPanel::on_sys_color_changed() { if (m_obj) { diff --git a/src/slic3r/GUI/UpgradePanel.hpp b/src/slic3r/GUI/UpgradePanel.hpp index f25ac69b08..f16a7db23c 100644 --- a/src/slic3r/GUI/UpgradePanel.hpp +++ b/src/slic3r/GUI/UpgradePanel.hpp @@ -126,6 +126,12 @@ protected: wxStaticLine* m_laser_line_above = nullptr;; uiDeviceUpdateVersion* m_laser_version = nullptr; + /* fire extinguish*/ + wxBoxSizer* m_extinguish_sizer = nullptr; + wxStaticBitmap* m_extinguish_img = nullptr; + wxStaticLine* m_extinguish_line_above = nullptr;; + uiDeviceUpdateVersion* m_extinguish_version = nullptr; + /* upgrade widgets */ wxBoxSizer* m_upgrading_sizer; wxStaticText * m_staticText_upgrading_info; @@ -146,6 +152,7 @@ protected: ScalableBitmap m_img_air_pump; ScalableBitmap m_img_cutting; ScalableBitmap m_img_laser; + ScalableBitmap m_img_extinguish; ScalableBitmap upgrade_gray_icon; ScalableBitmap upgrade_green_icon; ScalableBitmap upgrade_yellow_icon; @@ -175,16 +182,10 @@ public: void update(MachineObject *obj); void update_version_text(MachineObject *obj); void update_ams_ext(MachineObject *obj); - void update_air_pump(MachineObject* obj); - void update_cut(MachineObject* obj); - void update_laszer(MachineObject* obj); void show_status(int status, std::string upgrade_status_str = ""); void show_ams(bool show = false, bool force_update = false); void show_ext(bool show = false, bool force_update = false); void show_extra_ams(bool show = false, bool force_update = false); - void show_air_pump(bool show = true); - void show_cut(bool show = true); - void show_laszer(bool show = true); void on_upgrade_firmware(wxCommandEvent &event); void on_consisitency_upgrade_firmware(wxCommandEvent &event); @@ -206,6 +207,17 @@ private: void createAirPumpWidgets(wxBoxSizer* main_left_sizer); void createCuttingWidgets(wxBoxSizer* main_left_sizer); void createLaserWidgets(wxBoxSizer* main_left_sizer); + void createExtinguishWidgets(wxBoxSizer* main_left_sizer); + + void update_air_pump(MachineObject* obj); + void update_cut(MachineObject* obj); + void update_laszer(MachineObject* obj); + void update_extinguish(MachineObject* obj); + + void show_air_pump(bool show = true); + void show_cut(bool show = true); + void show_laszer(bool show = true); + void show_extinguish(bool show = true); }; //enum UpgradeMode {