diff --git a/resources/images/monitor_network_wired.svg b/resources/images/monitor_network_wired.svg new file mode 100644 index 000000000..8a6a0716b --- /dev/null +++ b/resources/images/monitor_network_wired.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 4762a2c67..066869386 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1386,6 +1386,8 @@ void MachineObject::parse_status(int flag) } sdcard_state = MachineObject::SdcardState((flag >> 8) & 0x11); + + network_wired = ((flag >> 18) & 0x1) != 0; } PrintingSpeedLevel MachineObject::_parse_printing_speed_lvl(int lvl) @@ -2539,6 +2541,7 @@ void MachineObject::reset() m_is_support_show_bak = false; extruder_axis_status = LOAD; nozzle_diameter = 0.0f; + network_wired = false; // reset print_json json empty_j; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 47f1a1db4..cae2402f2 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -573,6 +573,7 @@ public: std::string wifi_signal; std::string link_th; std::string link_ams; + bool network_wired { false }; /* lights */ LIGHT_EFFECT chamber_light; diff --git a/src/slic3r/GUI/Widgets/SideTools.cpp b/src/slic3r/GUI/Widgets/SideTools.cpp index d9626d674..10d859ebb 100644 --- a/src/slic3r/GUI/Widgets/SideTools.cpp +++ b/src/slic3r/GUI/Widgets/SideTools.cpp @@ -31,6 +31,7 @@ namespace Slic3r { namespace GUI { m_wifi_weak_img = ScalableBitmap(this, "monitor_signal_weak", 18); m_wifi_middle_img = ScalableBitmap(this, "monitor_signal_middle", 18); m_wifi_strong_img = ScalableBitmap(this, "monitor_signal_strong", 18); + m_network_wired_img = ScalableBitmap(this, "monitor_network_wired", 18); m_intetval_timer = new wxTimer(); m_intetval_timer->SetOwner(this); @@ -204,6 +205,7 @@ void SideToolsPanel::doRender(wxDC &dc) if (m_wifi_type == WifiSignal::WEAK) dc.DrawBitmap(m_wifi_weak_img.bmp(), left, (size.y - m_wifi_weak_img.GetBmpSize().y) / 2); if (m_wifi_type == WifiSignal::MIDDLE) dc.DrawBitmap(m_wifi_middle_img.bmp(), left, (size.y - m_wifi_middle_img.GetBmpSize().y) / 2); if (m_wifi_type == WifiSignal::STRONG) dc.DrawBitmap(m_wifi_strong_img.bmp(), left, (size.y - m_wifi_strong_img.GetBmpSize().y) / 2); + if (m_wifi_type == WifiSignal::WIRED) dc.DrawBitmap(m_network_wired_img.bmp(), left, (size.y - m_network_wired_img.GetBmpSize().y) / 2); } if (m_hover) { @@ -452,7 +454,10 @@ void SideTools::update_status(MachineObject* obj) m_side_tools->set_current_printer_signal(WifiSignal::NONE); } else { - if (!obj->wifi_signal.empty() && boost::ends_with(obj->wifi_signal, "dBm")) { + if (obj->network_wired) { + m_side_tools->set_current_printer_signal(WifiSignal::WIRED); + } + else if (!obj->wifi_signal.empty() && boost::ends_with(obj->wifi_signal, "dBm")) { try { wifi_signal_val = std::stoi(obj->wifi_signal.substr(0, obj->wifi_signal.size() - 3)); } diff --git a/src/slic3r/GUI/Widgets/SideTools.hpp b/src/slic3r/GUI/Widgets/SideTools.hpp index 8a51b3025..f6c23443a 100644 --- a/src/slic3r/GUI/Widgets/SideTools.hpp +++ b/src/slic3r/GUI/Widgets/SideTools.hpp @@ -22,6 +22,7 @@ enum WifiSignal { WEAK, MIDDLE, STRONG, + WIRED, }; enum MonitorStatus { @@ -58,6 +59,7 @@ private: ScalableBitmap m_wifi_weak_img; ScalableBitmap m_wifi_middle_img; ScalableBitmap m_wifi_strong_img; + ScalableBitmap m_network_wired_img; protected: wxStaticBitmap *m_bitmap_info;