From d97db7e61725aa6ac7c3a36d58d002d1a83c839c Mon Sep 17 00:00:00 2001 From: "tao.jin" Date: Thu, 29 Sep 2022 10:29:51 +0800 Subject: [PATCH] ENH: change extruder icon colour when loading filament Change-Id: Ifd1e9c868702352790de9ddf25f256d504875785 --- resources/images/monitor_extruder_load.png | Bin 0 -> 1524 bytes resources/images/monitor_extruder_load.svg | 28 +++++++++++++++++++++ src/slic3r/GUI/DeviceManager.cpp | 16 ++++++++++++ src/slic3r/GUI/DeviceManager.hpp | 3 +++ src/slic3r/GUI/StatusPanel.cpp | 8 ++++++ src/slic3r/GUI/StatusPanel.hpp | 1 + 6 files changed, 56 insertions(+) create mode 100644 resources/images/monitor_extruder_load.png create mode 100644 resources/images/monitor_extruder_load.svg diff --git a/resources/images/monitor_extruder_load.png b/resources/images/monitor_extruder_load.png new file mode 100644 index 0000000000000000000000000000000000000000..27f4f3c610b3a66ab471d2f215ae04a5be68b459 GIT binary patch literal 1524 zcmVPx#1ZP1_K>z@;j|==^1pojAo=HSOR9HvNSzBlwMHv2OcK2M8oLo+>CSnOl!IC~G zDpo8jcTeTNb zo5UpNL`TyD34gQ}{5KXynpERRWAxxQ$Zys=U zd8JS3@_N|ti-VD0>!y{6Y=U2G$>YrLK%pZxJae3mK42u%n$O?H8DBPiED# zxQ6f@6nt_itz#0cx->5xxRHQI!I4C(F0GMZ&XcI;lNs8yQ2H*yfL%HO5x2o(Yl%g2 zb1oQe)P=>gP-GzsinX$Gevo1pJ_sF9T+MQRd-Yf%v7t|*f5$;u>JO?=wDX}x%zl8M;j8hQ>*N>7W3 zT$jYaW?C$`RFWl0bZjO*9WGEHmwG`5;N-M>7pS6g!`+VMHLO!=gx*%N<{&Ls8Ien_ zbhksgZ|b^l)unW5^J5Bq9HUL(G?lNB@C&rfZ6@x8WNYa!12PIy1m;!4g>Lko7LJ{B z2*T${>>u5a*yhuMTo%(KsNqIQR(?l!ehkm^7yGPQsK`Qxqm(R3Vr+A3<6T6!G_jXV zAuS39{Oc)7yT++Dv>;NO(M{dY>Y66C8Df z>d(^J?I(A?VSf!d@oV&c5y`VO@h)l?>DKj7&JKj~I5~jlv1lRx`j`@5YAgATcQ=LZ z9*F4jVxO>?hrEV4o_I+rTuZBouV@WpNhH@Ll1_FRpkGK&ojSESj^n4O+Q#jrxDw9v zw#aMe6&RUw4fBaLNi0@jkGy1}$p z9juixO6_6Af?*h9Zf;JK>nlZO!P(ha)M_=jbl&an??-QMFC2RHuU4!2T2^EdoSB(H zcXu}i1_sdC*@<(}75o`rMORlB1_uYx(b0kF>1i`M9b$ZZJo)<>fq(tb&=4q(@b;z8 zap>Zwn2&vZt<@=D@6e;z-Marpq+kRa&phg?o~aD#%GbH8q7t%6DT&&;6!%IiBcy5D$0Wj){p06pM8F zNI|L~-^^PW?echico$y0c{_?SZ>~1-@ReI0$ANV_bsqAr(@d~w;xl-s>FMb~OG}Gx zpQ&A>!y0gFaZtDU`sC!K-i4YWlOTgF!ni3j7&#n!3A&>F6<_S zLP4+dN|3sS*8>ai7RFqu7-PkPH;T0vq(uGF)K?v>MfG9M`Px5Ezm!&^d4Jd8K=wxuzG_S=R9fIHC%A#NrMn^|KqT}6Trr8WHZQHi( zps8OMO@oHSel*plAWt+M+fP0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 555968832..5f15b1aef 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -358,6 +358,7 @@ MachineObject::MachineObject(NetworkAgent* agent, std::string name, std::string mc_print_sub_stage = 0; mc_left_time = 0; home_flag = -1; + hw_switch_state = 0; printing_speed_lvl = PrintingSpeedLevel::SPEED_LEVEL_INVALID; } @@ -1046,6 +1047,18 @@ bool MachineObject::is_axis_at_home(std::string axis) } } +bool MachineObject::is_filament_at_extruder() +{ + if (hw_switch_state == 1) + return true; + else if (hw_switch_state == 0) + return false; + else { + //default + return true; + } +} + wxString MachineObject::get_curr_stage() { if (stage_list_info.empty()) { @@ -1820,6 +1833,9 @@ int MachineObject::parse_json(std::string payload) if (jj.contains("home_flag")) { home_flag = jj["home_flag"].get(); } + if (jj.contains("hw_switch_state")) { + hw_switch_state = jj["hw_switch_state"].get(); + } if (jj.contains("mc_remaining_time")) { if (jj["mc_remaining_time"].is_string()) diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 455a340af..ea3ed548b 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -466,6 +466,7 @@ public: int mc_left_time; /* left time in seconds */ int last_mc_print_stage; int home_flag; + int hw_switch_state; bool is_system_printing(); int print_error; @@ -476,6 +477,8 @@ public: bool is_axis_at_home(std::string axis); + bool is_filament_at_extruder(); + wxString get_curr_stage(); // return curr stage index of stage list int get_curr_stage_idx(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 489500d29..c51fcc2ca 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -177,6 +177,7 @@ void StatusBasePanel::init_bitmaps() m_thumbnail_sdcard = ScalableBitmap(this, "monitor_sdcard_thumbnail", 120); //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_extruder_load = *cache.load_png("monitor_extruder_load", FromDIP(28), FromDIP(70), false, false); m_bitmap_sdcard_state_on = create_scaled_bitmap("sdcard_state_on", nullptr, 20); m_bitmap_sdcard_state_off = create_scaled_bitmap("sdcard_state_off", nullptr, 20); } @@ -1305,6 +1306,13 @@ void StatusPanel::update(MachineObject *obj) update_temp_ctrl(obj); update_misc_ctrl(obj); + if (obj && obj->is_filament_at_extruder()) { + m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder_load); + } + else { + m_bitmap_extruder_img->SetBitmap(m_bitmap_extruder); + } + // BBS hide tasklist info // update_tasklist(obj); update_ams(obj); diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 4d4f4e448..a6a0890c6 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -81,6 +81,7 @@ protected: ScalableBitmap m_bitmap_use_time; ScalableBitmap m_bitmap_use_weight; wxBitmap m_bitmap_extruder; + wxBitmap m_bitmap_extruder_load; CameraRecordingStatus m_state_recording{CameraRecordingStatus::RECORDING_NONE}; CameraTimelapseStatus m_state_timelapse{CameraTimelapseStatus::TIMELAPSE_NONE};