Browse Source

🐛 Fix, improve E3V2 Enhanced UI (#22733)

Miguel Risco-Castillo 3 years ago
parent
commit
392a4a6f85
No account linked to committer's email address

+ 1
- 1
Marlin/src/inc/Conditionals_post.h View File

@@ -421,7 +421,7 @@
421 421
   #endif
422 422
 #endif
423 423
 
424
-#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
424
+#if EITHER(DWIN_CREALITY_LCD_ENHANCED, DWIN_CREALITY_LCD_JYERSUI)
425 425
   #define HAS_LCD_BRIGHTNESS 1
426 426
 #endif
427 427
 

+ 88
- 70
Marlin/src/lcd/e3v2/enhanced/dwin.cpp View File

@@ -163,10 +163,10 @@ static bool sdprint = false;
163 163
 
164 164
 #if ENABLED(PAUSE_HEAT)
165 165
   #if HAS_HOTEND
166
-    uint16_t resume_hotend_temp = 0;
166
+    celsius_t resume_hotend_temp = 0;
167 167
   #endif
168 168
   #if HAS_HEATED_BED
169
-    uint16_t resume_bed_temp = 0;
169
+    celsius_t resume_bed_temp = 0;
170 170
   #endif
171 171
   #if HAS_FAN
172 172
     uint16_t resume_fan = 0;
@@ -708,7 +708,7 @@ void _update_axis_value(const AxisEnum axis, const uint16_t x, const uint16_t y,
708 708
     else if (blink && draw_empty)
709 709
       DWINUI::Draw_String(HMI_data.Coordinate_Color, HMI_data.Background_Color, x, y, F("     "));
710 710
     else
711
-      DWINUI::Draw_Signed_Float(HMI_data.Coordinate_Color, HMI_data.Background_Color, 3, 1, x, y, p * 10);
711
+      DWINUI::Draw_Signed_Float(HMI_data.Coordinate_Color, HMI_data.Background_Color, 3, 1, x, y, p);
712 712
   }
713 713
 }
714 714
 
@@ -805,7 +805,7 @@ void update_variable() {
805 805
   static float _offset = 0;
806 806
   if (BABY_Z_VAR != _offset) {
807 807
     _offset = BABY_Z_VAR;
808
-    DWINUI::Draw_Signed_Float(DWIN_FONT_STAT, HMI_data.Indicator_Color,  HMI_data.Background_Color, 2, 2, 210, 417, _offset * 100);
808
+    DWINUI::Draw_Signed_Float(DWIN_FONT_STAT, HMI_data.Indicator_Color,  HMI_data.Background_Color, 2, 2, 210, 417, _offset);
809 809
   }
810 810
 
811 811
   _draw_xyz_position(false);
@@ -1030,14 +1030,7 @@ void Draw_Status_Area(const bool with_update) {
1030 1030
     DWINUI::Draw_Icon(ICON_Zoffset, 187, 416);
1031 1031
   #endif
1032 1032
 
1033
-  if (BABY_Z_VAR < 0) {
1034
-    DWINUI::Draw_Float(DWIN_FONT_STAT, HMI_data.Indicator_Color, HMI_data.Background_Color, 2, 2, 207, 417, -BABY_Z_VAR * 100);
1035
-    DWINUI::Draw_String(HMI_data.Indicator_Color, 205, 419, F("-"));
1036
-  }
1037
-  else {
1038
-    DWINUI::Draw_Float(DWIN_FONT_STAT, HMI_data.Indicator_Color, HMI_data.Background_Color, 2, 2, 207, 417, BABY_Z_VAR * 100);
1039
-    DWINUI::Draw_String(HMI_data.Indicator_Color, 205, 419, F(" "));
1040
-  }
1033
+  DWINUI::Draw_Signed_Float(DWIN_FONT_STAT, HMI_data.Indicator_Color,  HMI_data.Background_Color, 2, 2, 210, 417, BABY_Z_VAR);
1041 1034
 
1042 1035
   DWIN_Draw_Rectangle(1, HMI_data.SplitLine_Color, 0, 449, DWIN_WIDTH, 451);
1043 1036
 
@@ -1690,7 +1683,7 @@ void DWIN_CompletedLeveling() { HMI_ReturnScreen(); }
1690 1683
   void DWIN_MeshUpdate(const int8_t xpos, const int8_t ypos, const float zval) {
1691 1684
     char msg[33] = "";
1692 1685
     char str_1[6] = "";
1693
-    sprintf_P(msg, PSTR(S_FMT " %i/%i Z=%s"), GET_TEXT(MSG_PROBING_MESH), xpos, ypos,
1686
+    sprintf_P(msg, PSTR(S_FMT " %i/%i Z=%s"), GET_TEXT(MSG_PROBING_POINT), xpos, ypos,
1694 1687
       dtostrf(zval, 1, 2, str_1));
1695 1688
     ui.set_status(msg);
1696 1689
   }
@@ -1791,6 +1784,7 @@ void DWIN_Print_Started(const bool sd) {
1791 1784
   sdprint = card.isPrinting() || sd;
1792 1785
   _percent_done = 0;
1793 1786
   _remain_time = 0;
1787
+  HMI_flag.print_finish = false;
1794 1788
   Goto_PrintProcess();
1795 1789
 }
1796 1790
 
@@ -1846,18 +1840,20 @@ void DWIN_SetDataDefaults() {
1846 1840
   TERN_(HAS_HOTEND, HMI_data.HotendPidT = PREHEAT_1_TEMP_HOTEND);
1847 1841
   TERN_(HAS_HEATED_BED, HMI_data.BedPidT = PREHEAT_1_TEMP_BED);
1848 1842
   TERN_(HAS_HOTEND, HMI_data.PidCycles = 5);
1843
+  TERN_(PREVENT_COLD_EXTRUSION, HMI_data.ExtMinT = EXTRUDE_MINTEMP);
1849 1844
 }
1850 1845
 
1851 1846
 void DWIN_StoreSettings(char *buff) {
1852
-  memcpy(buff, &HMI_data, min(sizeof(HMI_data), eeprom_data_size));
1847
+  memcpy(buff, &HMI_data, _MIN(sizeof(HMI_data), eeprom_data_size));
1853 1848
 }
1854 1849
 
1855 1850
 void DWIN_LoadSettings(const char *buff) {
1856
-  memcpy(&HMI_data, buff, min(sizeof(HMI_data), eeprom_data_size));
1851
+  memcpy(&HMI_data, buff, _MIN(sizeof(HMI_data), eeprom_data_size));
1857 1852
   dwin_zoffset = TERN0(HAS_BED_PROBE, probe.offset.z);
1858 1853
   if (HMI_data.Text_Color == HMI_data.Background_Color) DWIN_SetColorDefaults();
1859 1854
   DWINUI::SetColors(HMI_data.Text_Color, HMI_data.Background_Color);
1860 1855
   TERN_(PREVENT_COLD_EXTRUSION, ApplyExtMinT());
1856
+  feedrate_percentage = 100;
1861 1857
 }
1862 1858
 
1863 1859
 void MarlinUI::kill_screen(PGM_P lcd_error, PGM_P lcd_component) {
@@ -1970,11 +1966,11 @@ void DWIN_LockScreen(const bool flag) {
1970 1966
 //  lo: low limit
1971 1967
 //  hi: high limit
1972 1968
 //  dp: decimal places, 0 for integers
1973
-//  val: value
1969
+//  val: value / scaled value
1974 1970
 //  LiveUpdate: live update function when the encoder changes
1975 1971
 //  Apply: update function when the encoder is pressed
1976 1972
 void SetOnClick(uint8_t process, const int32_t lo, const int32_t hi, uint8_t dp, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
1977
-  last_checkkey = checkkey;
1973
+  last_checkkey = Menu;
1978 1974
   checkkey = process;
1979 1975
   HMI_value.MinValue = lo;
1980 1976
   HMI_value.MaxValue = hi;
@@ -1985,18 +1981,29 @@ void SetOnClick(uint8_t process, const int32_t lo, const int32_t hi, uint8_t dp,
1985 1981
   EncoderRate.enabled = true;
1986 1982
 }
1987 1983
 
1988
-// Generic onclick event for set values (dp = 0: integer, dp > 0: float)
1984
+// Generic onclick event for integer values
1989 1985
 //  process: process id HMI destiny
1990 1986
 //  lo: scaled low limit
1991 1987
 //  hi: scaled high limit
1992
-//  dp: decimal places, 0 for integers
1993
-//  val: scaled value
1988
+//  val: value
1989
+//  LiveUpdate: live update function when the encoder changes
1990
+//  Apply: update function when the encoder is pressed
1991
+void SetValueOnClick(uint8_t process, const int32_t lo, const int32_t hi, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
1992
+  SetOnClick(process, lo, hi, 0, val, Apply, LiveUpdate);
1993
+  Draw_Menu_IntValue(HMI_data.Selected_Color, CurrentMenu->line(), 4, HMI_value.Value);
1994
+}
1995
+
1996
+// Generic onclick event for float values
1997
+//  process: process id HMI destiny
1998
+//  lo: scaled low limit
1999
+//  hi: scaled high limit
2000
+//  val: value
1994 2001
 //  LiveUpdate: live update function when the encoder changes
1995 2002
 //  Apply: update function when the encoder is pressed
1996
-void SetValueOnClick(uint8_t process, const int32_t lo, const int32_t hi, uint8_t dp, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
1997
-  SetOnClick(process, lo, hi, dp, val, Apply, LiveUpdate);
1998
-  dp ? DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Selected_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value)
1999
-     : Draw_Menu_IntValue(HMI_data.Selected_Color, CurrentMenu->line(), 4, HMI_value.Value);
2003
+void SetValueOnClick(uint8_t process, const float lo, const float hi, uint8_t dp, const float val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2004
+  const int32_t value =  round(val * POW(10, dp));
2005
+  SetOnClick(process, lo * POW(10, dp), hi * POW(10, dp), dp, value, Apply, LiveUpdate);
2006
+  DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Selected_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), val);
2000 2007
 }
2001 2008
 
2002 2009
 // Generic onclick event for integer values
@@ -2005,8 +2012,8 @@ void SetValueOnClick(uint8_t process, const int32_t lo, const int32_t hi, uint8_
2005 2012
 //  val: value
2006 2013
 //  LiveUpdate: live update function when the encoder changes
2007 2014
 //  Apply: update function when the encoder is pressed
2008
-void SetIntOnClick(const int32_t lo, const int32_t hi, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2009
-  SetValueOnClick(SetInt, lo, hi, 0, val, Apply, LiveUpdate);
2015
+inline void SetIntOnClick(const int32_t lo, const int32_t hi, const int32_t val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2016
+  SetValueOnClick(SetInt, lo, hi, val, Apply, LiveUpdate);
2010 2017
 }
2011 2018
 
2012 2019
 // Generic onclick event for set pointer to 16 bit uinteger values
@@ -2017,7 +2024,7 @@ void SetIntOnClick(const int32_t lo, const int32_t hi, const int32_t val, void (
2017 2024
 void SetPIntOnClick(const int32_t lo, const int32_t hi, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2018 2025
   HMI_value.P_Int = (int16_t*)static_cast<MenuItemPtrClass*>(CurrentMenu->SelectedItem())->value;
2019 2026
   const int32_t value = *HMI_value.P_Int;
2020
-  SetValueOnClick(SetPInt, lo, hi, 0, value, Apply, LiveUpdate);
2027
+  SetValueOnClick(SetPInt, lo, hi, value, Apply, LiveUpdate);
2021 2028
 }
2022 2029
 
2023 2030
 // Generic onclick event for float values
@@ -2026,8 +2033,8 @@ void SetPIntOnClick(const int32_t lo, const int32_t hi, void (*Apply)() = nullpt
2026 2033
 //  hi: high limit
2027 2034
 //  dp: decimal places
2028 2035
 //  val: value
2029
-void SetFloatOnClick(const float lo, const float hi, uint8_t dp, const float val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2030
-  SetValueOnClick(SetFloat, lo * POW(10, dp), hi * POW(10, dp), dp, val * POW(10, dp), Apply, LiveUpdate);
2036
+inline void SetFloatOnClick(const float lo, const float hi, uint8_t dp, const float val, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2037
+  SetValueOnClick(SetFloat, lo, hi, dp, val, Apply, LiveUpdate);
2031 2038
 }
2032 2039
 
2033 2040
 // Generic onclick event for set pointer to float values
@@ -2037,8 +2044,7 @@ void SetFloatOnClick(const float lo, const float hi, uint8_t dp, const float val
2037 2044
 //  Apply: update function when the encoder is pressed
2038 2045
 void SetPFloatOnClick(const float lo, const float hi, uint8_t dp, void (*Apply)() = nullptr, void (*LiveUpdate)() = nullptr) {
2039 2046
   HMI_value.P_Float = (float*)static_cast<MenuItemPtrClass*>(CurrentMenu->SelectedItem())->value;
2040
-  const int32_t value = *HMI_value.P_Float * POW(10, dp);
2041
-  SetValueOnClick(SetPFloat, lo * POW(10, dp), hi * POW(10, dp), dp, value, Apply, LiveUpdate);
2047
+  SetValueOnClick(SetPFloat, lo, hi, dp, *HMI_value.P_Float, Apply, LiveUpdate);
2042 2048
 }
2043 2049
 
2044 2050
 #if ENABLED(EEPROM_SETTINGS)
@@ -2148,7 +2154,7 @@ void SetMoveZ() { HMI_value.axis = Z_AXIS; SetPFloatOnClick(Z_MIN_POS, Z_MAX_POS
2148 2154
 
2149 2155
 #if HAS_HOTEND
2150 2156
   void SetMoveE() {
2151
-    #ifdef PREVENT_COLD_EXTRUSION
2157
+    #if ENABLED(PREVENT_COLD_EXTRUSION)
2152 2158
       if (thermalManager.tooColdToExtrude(0)) {
2153 2159
         Popup_Window_ETempTooLow();
2154 2160
         return;
@@ -2162,8 +2168,14 @@ void SetMoveZto0() {
2162 2168
   char cmd[48] = "";
2163 2169
   char str_1[5] = "", str_2[5] = "";
2164 2170
   sprintf_P(cmd, PSTR("G28OXY\nG28Z\nG0X%sY%sF5000\nG0Z0F300"),
2165
-    dtostrf(X_CENTER, 1, 1, str_1),
2166
-    dtostrf(Y_CENTER, 1, 1, str_2));
2171
+    #if ENABLED(MESH_BED_LEVELING)
2172
+      dtostrf(0, 1, 1, str_1),
2173
+      dtostrf(0, 1, 1, str_2)
2174
+    #else
2175
+      dtostrf(X_CENTER, 1, 1, str_1),
2176
+      dtostrf(Y_CENTER, 1, 1, str_2)
2177
+    #endif
2178
+  );
2167 2179
   gcode.process_subcommands_now_P(cmd);
2168 2180
   planner.synchronize();
2169 2181
   ui.set_status_P(PSTR("Now adjust Z Offset"));
@@ -2175,7 +2187,8 @@ void SetPID(celsius_t t, heater_id_t h) {
2175 2187
   char str_1[5] = "", str_2[5] = "";
2176 2188
   sprintf_P(cmd, PSTR("G28OXY\nG0Z5F300\nG0X%sY%sF5000\nM84"),
2177 2189
     dtostrf(X_CENTER, 1, 1, str_1),
2178
-    dtostrf(Y_CENTER, 1, 1, str_2));
2190
+    dtostrf(Y_CENTER, 1, 1, str_2)
2191
+  );
2179 2192
   gcode.process_subcommands_now_P(cmd);
2180 2193
   planner.synchronize();
2181 2194
   thermalManager.PID_autotune(t, h, HMI_data.PidCycles, true);
@@ -2217,6 +2230,7 @@ void Goto_LockScreen() {
2217 2230
 #if HAS_BED_PROBE
2218 2231
   void SetProbeOffsetX() { SetPFloatOnClick(-50, 50, UNITFDIGITS); }
2219 2232
   void SetProbeOffsetY() { SetPFloatOnClick(-50, 50, UNITFDIGITS); }
2233
+  void SetProbeOffsetZ() { SetPFloatOnClick(-10, 10, 2); }
2220 2234
   void ProbeTest() {
2221 2235
     ui.set_status_P(GET_TEXT(MSG_M48_TEST));
2222 2236
     queue.inject_P(PSTR("G28O\nM48 P10"));
@@ -2250,24 +2264,24 @@ void RestoreDefaultsColors() {
2250 2264
 
2251 2265
 void SelColor() {
2252 2266
   HMI_value.P_Int = (int16_t*)static_cast<MenuItemPtrClass*>(CurrentMenu->SelectedItem())->value;
2253
-  HMI_value.Color[2] = GetRColor(*HMI_value.P_Int);  // Red
2267
+  HMI_value.Color[0] = GetRColor(*HMI_value.P_Int);  // Red
2254 2268
   HMI_value.Color[1] = GetGColor(*HMI_value.P_Int);  // Green
2255
-  HMI_value.Color[0] = GetBColor(*HMI_value.P_Int);  // Blue
2269
+  HMI_value.Color[2] = GetBColor(*HMI_value.P_Int);  // Blue
2256 2270
   Draw_GetColor_Menu();
2257 2271
 }
2258 2272
 
2259 2273
 void LiveRGBColor() {
2260 2274
     HMI_value.Color[CurrentMenu->line() - 2] = HMI_value.Value;
2261
-    uint16_t color = RGB(HMI_value.Color[2], HMI_value.Color[1], HMI_value.Color[0]);
2275
+    uint16_t color = RGB(HMI_value.Color[0], HMI_value.Color[1], HMI_value.Color[2]);
2262 2276
     DWIN_Draw_Rectangle(1, color, 20, 315, DWIN_WIDTH - 20, 335);
2263 2277
 }
2264 2278
 void SetRGBColor() {
2265
-  const uint8_t line = CurrentMenu->line() - 2;
2266
-  SetIntOnClick(0, (line == 1) ? 63 : 31, HMI_value.Color[CurrentMenu->SelectedItem()->icon], nullptr, LiveRGBColor);
2279
+  const uint8_t color = CurrentMenu->SelectedItem()->icon;
2280
+  SetIntOnClick(0, (color == 1) ? 63 : 31, HMI_value.Color[color], nullptr, LiveRGBColor);
2267 2281
 }
2268 2282
 
2269 2283
 void DWIN_ApplyColor() {
2270
-  *HMI_value.P_Int = RGB(HMI_value.Color[2], HMI_value.Color[1], HMI_value.Color[0]);
2284
+  *HMI_value.P_Int = RGB(HMI_value.Color[0], HMI_value.Color[1], HMI_value.Color[2]);
2271 2285
   DWINUI::SetColors(HMI_data.Text_Color, HMI_data.Background_Color);
2272 2286
   Draw_Status_Area(false);
2273 2287
   Draw_SelectColors_Menu();
@@ -2278,7 +2292,7 @@ void SetSpeed() { SetPIntOnClick(MIN_PRINT_SPEED, MAX_PRINT_SPEED); }
2278 2292
 
2279 2293
 #if HAS_HOTEND
2280 2294
   void ApplyHotendTemp() { thermalManager.setTargetHotend(HMI_value.Value, 0); }
2281
-  void SetHotendTemp() { SetIntOnClick(HEATER_0_MINTEMP, HEATER_0_MAXTEMP, thermalManager.degTargetHotend(0), ApplyHotendTemp); }
2295
+  void SetHotendTemp() { SetIntOnClick(MIN_ETEMP, MAX_ETEMP, thermalManager.degTargetHotend(0), ApplyHotendTemp); }
2282 2296
 #endif
2283 2297
 
2284 2298
 #if HAS_HEATED_BED
@@ -2384,11 +2398,19 @@ void LevBedC () { LevBed(4); }
2384 2398
     gcode.process_subcommands_now_P(PSTR("G28 XYO\nG28 Z\nM211 S0\nG29S1"));
2385 2399
     planner.synchronize();
2386 2400
     #ifdef MANUAL_PROBE_START_Z
2387
-      MMeshMoveZItem->Draw(CurrentMenu->line(MMeshMoveZItem->pos));
2401
+      const uint8_t line = CurrentMenu->line(MMeshMoveZItem->pos);
2402
+      DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, 2, VALX - 2 * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(line), MANUAL_PROBE_START_Z);
2388 2403
     #endif
2389 2404
   }
2390 2405
 
2391
-  void SetMMeshMoveZ() { HMI_value.axis = Z_AXIS; SetPFloatOnClick(-1, 1, 2, planner.synchronize, LiveMove);}
2406
+  void LiveMeshMoveZ() {
2407
+    *HMI_value.P_Float = HMI_value.Value / POW(10, 2);
2408
+    if (!planner.is_full()) {
2409
+      planner.synchronize();
2410
+      planner.buffer_line(current_position, homing_feedrate(Z_AXIS));
2411
+    }
2412
+  }
2413
+  void SetMMeshMoveZ() { SetPFloatOnClick(-1, 1, 2, planner.synchronize, LiveMeshMoveZ);}
2392 2414
 
2393 2415
   void ManualMeshContinue(){
2394 2416
     gcode.process_subcommands_now_P(PSTR("G29S2"));
@@ -2496,7 +2518,7 @@ void onDrawPInt32Menu(MenuItemClass* menuitem, int8_t line) {
2496 2518
 
2497 2519
 void onDrawFloatMenu(MenuItemClass* menuitem, int8_t line, uint8_t dp, const float value) {
2498 2520
   onDrawMenuItem(menuitem, line);
2499
-  DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(line), value * POW(10, dp));
2521
+  DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(line), value);
2500 2522
 }
2501 2523
 
2502 2524
 void onDrawPFloatMenu(MenuItemClass* menuitem, int8_t line) {
@@ -2507,8 +2529,7 @@ void onDrawPFloatMenu(MenuItemClass* menuitem, int8_t line) {
2507 2529
 
2508 2530
 void onDrawPFloat2Menu(MenuItemClass* menuitem, int8_t line) {
2509 2531
   const float value = *(float*)static_cast<MenuItemPtrClass*>(menuitem)->value;
2510
-  const int8_t dp = 2;
2511
-  onDrawFloatMenu(menuitem, line, dp, value);
2532
+  onDrawFloatMenu(menuitem, line, 2, value);
2512 2533
 }
2513 2534
 
2514 2535
 void onDrawChkbMenu(MenuItemClass* menuitem, int8_t line, bool checked) {
@@ -2643,9 +2664,9 @@ void onDrawGetColorItem(MenuItemClass* menuitem, int8_t line) {
2643 2664
   const uint8_t i = menuitem->icon;
2644 2665
   uint16_t color;
2645 2666
   switch (i) {
2646
-    case 0: color = RGB(0, 0, 31); break;
2647
-    case 1: color = RGB(0, 63, 0); break;
2648
-    case 2: color = RGB(31, 0, 0); break;
2667
+    case 0: color = RGB(31, 0, 0); break; // Red
2668
+    case 1: color = RGB(0, 63, 0); break; // Green
2669
+    case 2: color = RGB(0, 0, 31); break; // Blue
2649 2670
     default: color = 0; break;
2650 2671
   }
2651 2672
   DWIN_Draw_Rectangle(0, HMI_data.Highlight_Color, ICOX + 1, MBASE(line) - 1 + 1, ICOX + 18, MBASE(line) - 1 + 18);
@@ -3002,12 +3023,12 @@ int8_t HMI_GetFloat(uint8_t dp, int32_t lo, int32_t hi) {
3002 3023
   if (encoder_diffState != ENCODER_DIFF_NO) {
3003 3024
     if (Apply_Encoder(encoder_diffState, HMI_value.Value)) {
3004 3025
       EncoderRate.enabled = false;
3005
-      DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value);
3026
+      DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Background_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value / POW(10, dp));
3006 3027
       checkkey = last_checkkey;
3007 3028
       return 2;
3008 3029
     }
3009 3030
     LIMIT(HMI_value.Value, lo, hi);
3010
-    DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Selected_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value);
3031
+    DWINUI::Draw_Signed_Float(HMI_data.Text_Color, HMI_data.Selected_Color, 3, dp, VALX - dp * DWINUI::Get_font_width(DWIN_FONT_MENU), MBASE(CurrentMenu->line()), HMI_value.Value / POW(10, dp));
3011 3032
     return 1;
3012 3033
   }
3013 3034
   return 0;
@@ -3182,10 +3203,11 @@ void Draw_Move_Menu() {
3182 3203
     if (CurrentMenu != ProbeSetMenu) {
3183 3204
       CurrentMenu = ProbeSetMenu;
3184 3205
       SetMenuTitle({0}, {0}, GET_TEXT_F(MSG_ZPROBE_SETTINGS)); // TODO: Chinese, English "Probe Settings" JPG
3185
-      DWINUI::MenuItemsPrepare(4);
3206
+      DWINUI::MenuItemsPrepare(5);
3186 3207
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, Draw_AdvancedSettings_Menu);
3187 3208
       ADDMENUITEM_P(ICON_ProbeOffsetX, GET_TEXT(MSG_ZPROBE_XOFFSET), onDrawPFloatMenu, SetProbeOffsetX, &probe.offset.x);
3188 3209
       ADDMENUITEM_P(ICON_ProbeOffsetY, GET_TEXT(MSG_ZPROBE_YOFFSET), onDrawPFloatMenu, SetProbeOffsetY, &probe.offset.y);
3210
+      ADDMENUITEM_P(ICON_ProbeOffsetZ, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetProbeOffsetZ, &probe.offset.z);
3189 3211
       ADDMENUITEM(ICON_ProbeTest, GET_TEXT(MSG_M48_TEST), onDrawMenuItem, ProbeTest);
3190 3212
     }
3191 3213
     CurrentMenu->Draw();
@@ -3203,7 +3225,7 @@ void Draw_Move_Menu() {
3203 3225
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3204 3226
       TERN_(HAS_FILAMENT_SENSOR, ADDMENUITEM(ICON_Runout, GET_TEXT(MSG_RUNOUT_ENABLE), onDrawRunoutEnable, SetRunoutEnable));
3205 3227
       TERN_(HAS_FILAMENT_RUNOUT_DISTANCE, ADDMENUITEM_P(ICON_Runout, F("Runout Distance"), onDrawPFloatMenu, SetRunoutDistance, &runout.runout_distance()));
3206
-      TERN_(PREVENT_COLD_EXTRUSION, ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &thermalManager.extrude_min_temp));
3228
+      TERN_(PREVENT_COLD_EXTRUSION, ADDMENUITEM_P(ICON_ExtrudeMinT, F("Extrude Min Temp."), onDrawPIntMenu, SetExtMinT, &HMI_data.ExtMinT));
3207 3229
       TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM_P(ICON_FilLoad, GET_TEXT(MSG_FILAMENT_LOAD), onDrawPFloatMenu, SetFilLoad, &fc_settings[0].load_length));
3208 3230
       TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM_P(ICON_FilUnload, GET_TEXT(MSG_FILAMENT_UNLOAD), onDrawPFloatMenu, SetFilUnload, &fc_settings[0].unload_length));
3209 3231
     }
@@ -3250,9 +3272,9 @@ void Draw_GetColor_Menu() {
3250 3272
     DWINUI::MenuItemsPrepare(5);
3251 3273
     ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawBack, DWIN_ApplyColor);
3252 3274
     ADDMENUITEM(ICON_Cancel, GET_TEXT(MSG_BUTTON_CANCEL), onDrawMenuItem, Draw_SelectColors_Menu);
3253
-    ADDMENUITEM(0, "Blue", onDrawGetColorItem, SetRGBColor);
3275
+    ADDMENUITEM(0, "Red", onDrawGetColorItem, SetRGBColor);
3254 3276
     ADDMENUITEM(1, "Green", onDrawGetColorItem, SetRGBColor);
3255
-    ADDMENUITEM(2, "Red", onDrawGetColorItem, SetRGBColor);
3277
+    ADDMENUITEM(2, "Blue", onDrawGetColorItem, SetRGBColor);
3256 3278
   }
3257 3279
   CurrentMenu->Draw();
3258 3280
   DWIN_Draw_Rectangle(1, *HMI_value.P_Int, 20, 315, DWIN_WIDTH - 20, 335);
@@ -3270,16 +3292,12 @@ void Draw_Tune_Menu() {
3270 3292
     TERN_(HAS_HOTEND, HotendTargetItem = ADDMENUITEM_P(ICON_HotendTemp, GET_TEXT(MSG_UBL_SET_TEMP_HOTEND), onDrawHotendTemp, SetHotendTemp, &thermalManager.temp_hotend[0].target));
3271 3293
     TERN_(HAS_HEATED_BED, BedTargetItem = ADDMENUITEM_P(ICON_BedTemp, GET_TEXT(MSG_UBL_SET_TEMP_BED), onDrawBedTemp, SetBedTemp, &thermalManager.temp_bed.target));
3272 3294
     TERN_(HAS_FAN, FanSpeedItem = ADDMENUITEM_P(ICON_FanSpeed, GET_TEXT(MSG_FAN_SPEED), onDrawFanSpeed, SetFanSpeed, &thermalManager.fan_speed[0]));
3273
-    #if HAS_ZOFFSET_ITEM
3274
-      #if EITHER(HAS_BED_PROBE, BABYSTEPPING)
3275
-        ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawZOffset, SetZOffset, &BABY_Z_VAR);
3276
-      #else
3277
-        ADDMENUITEM(ICON_SetHome, GET_TEXT(MSG_SET_HOME_OFFSETS), onDrawHomeOffset, SetHome);
3278
-      #endif
3295
+    #if HAS_ZOFFSET_ITEM && EITHER(HAS_BED_PROBE, BABYSTEPPING)
3296
+      ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawZOffset, SetZOffset, &BABY_Z_VAR);
3279 3297
     #endif
3280 3298
     ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3281 3299
     TERN_(ADVANCED_PAUSE_FEATURE, ADDMENUITEM(ICON_FilMan, GET_TEXT(MSG_FILAMENTCHANGE), onDrawMenuItem, ChangeFilament));
3282
-    ADDMENUITEM(ICON_Lock, PSTR("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3300
+    ADDMENUITEM(ICON_Lock, F("Lock Screen"), onDrawMenuItem, Goto_LockScreen);
3283 3301
     TERN_(HAS_LCD_BRIGHTNESS, ADDMENUITEM_P(ICON_Brightness, F("LCD Brightness"), onDrawPInt8Menu, SetBrightness, &ui.brightness));
3284 3302
   }
3285 3303
   CurrentMenu->Draw();
@@ -3300,7 +3318,6 @@ void Draw_Motion_Menu() {
3300 3318
     ADDMENUITEM_P(ICON_Flow, GET_TEXT(MSG_FLOW), onDrawPIntMenu, SetFlow, &planner.flow_percentage[0]);
3301 3319
   }
3302 3320
   CurrentMenu->Draw();
3303
-  DWIN_StatusChanged(nullptr);
3304 3321
 }
3305 3322
 
3306 3323
 #if ENABLED(ADVANCED_PAUSE_FEATURE)
@@ -3476,9 +3493,9 @@ void Draw_Steps_Menu() {
3476 3493
       DWINUI::MenuItemsPrepare(8);
3477 3494
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3478 3495
       ADDMENUITEM(ICON_PIDNozzle, F("Hotend PID"), onDrawMenuItem, HotendPID);
3479
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_hotend[0].pid.Kp);
3480
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_hotend[0].pid.Ki);
3481
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_hotend[0].pid.Kd);
3496
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_hotend[0].pid.Kp);
3497
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_hotend[0].pid.Ki);
3498
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_hotend[0].pid.Kd);
3482 3499
       ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetHotendPidT, &HMI_data.HotendPidT);
3483 3500
       ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3484 3501
       TERN_(EEPROM_SETTINGS, ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom));
@@ -3497,9 +3514,9 @@ void Draw_Steps_Menu() {
3497 3514
       DWINUI::MenuItemsPrepare(8);
3498 3515
       ADDMENUITEM(ICON_Back, GET_TEXT(MSG_BUTTON_BACK), onDrawMenuItem, Draw_AdvancedSettings_Menu);
3499 3516
       ADDMENUITEM(ICON_PIDNozzle, F("Bed PID"), onDrawMenuItem,BedPID);
3500
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_bed.pid.Kp);
3501
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_bed.pid.Ki);
3502
-      ADDMENUITEM_P(ICON_PIDValue, F(STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_bed.pid.Kd);
3517
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KP), onDrawPFloat2Menu, SetKp, &thermalManager.temp_bed.pid.Kp);
3518
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KI), onDrawPIDi, SetKi, &thermalManager.temp_bed.pid.Ki);
3519
+      ADDMENUITEM_P(ICON_PIDValue, F("Set" STR_KD), onDrawPIDd, SetKd, &thermalManager.temp_bed.pid.Kd);
3503 3520
       ADDMENUITEM_P(ICON_Temperature, GET_TEXT(MSG_TEMPERATURE), onDrawPIntMenu, SetBedPidT, &HMI_data.BedPidT);
3504 3521
       ADDMENUITEM_P(ICON_PIDcycles, GET_TEXT(MSG_PID_CYCLE), onDrawPIntMenu, SetPidCycles, &HMI_data.PidCycles);
3505 3522
       TERN_(EEPROM_SETTINGS, ADDMENUITEM(ICON_WriteEEPROM, GET_TEXT(MSG_STORE_EEPROM), onDrawMenuItem, WriteEeprom));
@@ -3522,6 +3539,7 @@ void Draw_Steps_Menu() {
3522 3539
       ADDMENUITEM_P(ICON_Zoffset, GET_TEXT(MSG_ZPROBE_ZOFFSET), onDrawPFloat2Menu, SetZOffset, &BABY_Z_VAR);
3523 3540
     }
3524 3541
     CurrentMenu->Draw();
3542
+    if (!axis_is_trusted(Z_AXIS)) ui.set_status_P(PSTR("WARNING: Z position is unknow, move Z to home"));
3525 3543
   }
3526 3544
 #endif
3527 3545
 

+ 1
- 6
Marlin/src/lcd/e3v2/enhanced/dwin.h View File

@@ -20,11 +20,6 @@
20 20
  */
21 21
 #pragma once
22 22
 
23
-/**
24
- * DWIN by Creality3D
25
- * Enhanced implementation by Miguel A. Risco-Castillo
26
- */
27
-
28 23
 #include "../../../inc/MarlinConfigPre.h"
29 24
 #include "dwinui.h"
30 25
 #include "rotary_encoder.h"
@@ -130,7 +125,7 @@ typedef struct {
130 125
   #ifdef PREHEAT_1_TEMP_BED
131 126
     int16_t BedPidT = PREHEAT_1_TEMP_BED;
132 127
   #endif
133
-  TERN_(PREVENT_COLD_EXTRUSION, uint16_t ExtMinT = EXTRUDE_MINTEMP);
128
+  TERN_(PREVENT_COLD_EXTRUSION, int16_t ExtMinT = EXTRUDE_MINTEMP);
134 129
 } HMI_data_t;
135 130
 
136 131
 typedef struct {

+ 9
- 3
Marlin/src/lcd/e3v2/enhanced/dwin_lcd.cpp View File

@@ -22,8 +22,8 @@
22 22
 /********************************************************************************
23 23
  * @file     lcd/e3v2/enhanced/dwin_lcd.cpp
24 24
  * @author   LEO / Creality3D - Enhanced by Miguel A. Risco-Castillo
25
- * @date     2021/08/29
26
- * @version  2.1.1
25
+ * @date     2021/09/08
26
+ * @version  2.2.1
27 27
  * @brief    DWIN screen control functions
28 28
  ********************************************************************************/
29 29
 
@@ -260,7 +260,7 @@ void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size, uint16_t color
260 260
 //  x/y: Upper-left coordinate
261 261
 //  value: Integer value
262 262
 void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color,
263
-                          uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) {
263
+                          uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, long value) {
264 264
   size_t i = 0;
265 265
   DWIN_Byte(i, 0x14);
266 266
   // Bit 7: bshow
@@ -319,6 +319,12 @@ void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_
319 319
   DWIN_Long(i, value);
320 320
   DWIN_Send(i);
321 321
 }
322
+//  value: positive float value
323
+void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color,
324
+                            uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
325
+  const long val = round(value * POW(10, fNum));
326
+  DWIN_Draw_FloatValue(bShow, zeroFill, zeroMode, size, color, bColor, iNum, fNum, x, y, val);
327
+}
322 328
 
323 329
 /*---------------------------------------- Picture related functions ----------------------------------------*/
324 330
 

+ 6
- 3
Marlin/src/lcd/e3v2/enhanced/dwin_lcd.h View File

@@ -22,8 +22,8 @@
22 22
 /********************************************************************************
23 23
  * @file     lcd/e3v2/enhanced/dwin_lcd.h
24 24
  * @author   LEO / Creality3D - Enhanced by Miguel A. Risco-Castillo
25
- * @date     2021/08/29
26
- * @version  2.1.1
25
+ * @date     2021/08/09
26
+ * @version  2.2.1
27 27
  * @brief    DWIN screen control functions
28 28
  ********************************************************************************/
29 29
 
@@ -157,7 +157,7 @@ inline void DWIN_Draw_String(bool bShow, uint8_t size, uint16_t color, uint16_t
157 157
 //  x/y: Upper-left coordinate
158 158
 //  value: Integer value
159 159
 void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color,
160
-                          uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value);
160
+                          uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, long value);
161 161
 
162 162
 // Draw a positive floating point number
163 163
 //  bShow: true=display background color; false=don't display background color
@@ -172,6 +172,9 @@ void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t
172 172
 //  value: Scaled positive float value
173 173
 void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color,
174 174
                             uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value);
175
+//  value: positive float value
176
+void DWIN_Draw_FloatValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color,
177
+                            uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value);
175 178
 
176 179
 /*---------------------------------------- Picture related functions ----------------------------------------*/
177 180
 

+ 3
- 3
Marlin/src/lcd/e3v2/enhanced/dwinui.cpp View File

@@ -1,8 +1,8 @@
1 1
 /**
2 2
  * DWIN UI Enhanced implementation
3 3
  * Author: Miguel A. Risco-Castillo
4
- * Version: 3.6.1
5
- * Date: 2021/08/29
4
+ * Version: 3.6.3
5
+ * Date: 2021/08/09
6 6
  *
7 7
  * This program is free software: you can redistribute it and/or modify
8 8
  * it under the terms of the GNU Lesser General Public License as
@@ -185,7 +185,7 @@ void DWINUI::Draw_String(uint16_t color, const char * const string, uint16_t rli
185 185
 //  fNum: Number of decimal digits
186 186
 //  x/y: Upper-left point
187 187
 //  value: Float value
188
-void DWINUI::Draw_Signed_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
188
+void DWINUI::Draw_Signed_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
189 189
   if (value < 0) {
190 190
     DWIN_Draw_FloatValue(bShow, zeroFill, zeroMode, size, color, bColor, iNum, fNum, x, y, -value);
191 191
     DWIN_Draw_String(bShow, size, color, bColor, x - 6, y, F("-"));

+ 18
- 17
Marlin/src/lcd/e3v2/enhanced/dwinui.h View File

@@ -1,8 +1,8 @@
1 1
 /**
2 2
  * DWIN UI Enhanced implementation
3 3
  * Author: Miguel A. Risco-Castillo
4
- * Version: 3.6.1
5
- * Date: 2021/08/29
4
+ * Version: 3.6.3
5
+ * Date: 2021/08/09
6 6
  *
7 7
  * This program is free software: you can redistribute it and/or modify
8 8
  * it under the terms of the GNU Lesser General Public License as
@@ -152,6 +152,7 @@
152 152
 #define ICON_PIDValue             ICON_Contact
153 153
 #define ICON_ProbeOffsetX         ICON_StepX
154 154
 #define ICON_ProbeOffsetY         ICON_StepY
155
+#define ICON_ProbeOffsetZ         ICON_StepZ
155 156
 #define ICON_ProbeSet             ICON_SetEndTemp
156 157
 #define ICON_ProbeTest            ICON_SetEndTemp
157 158
 #define ICON_Pwrlossr             ICON_Motion
@@ -392,14 +393,14 @@ namespace DWINUI {
392 393
   //  iNum: Number of digits
393 394
   //  x/y: Upper-left coordinate
394 395
   //  value: Integer value
395
-  inline void Draw_Int(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) {
396
+  inline void Draw_Int(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, long value) {
396 397
     DWIN_Draw_IntValue(bShow, zeroFill, zeroMode, size, color, bColor, iNum, x, y, value);
397 398
   }
398
-  inline void Draw_Int(uint8_t iNum, uint16_t value) {
399
+  inline void Draw_Int(uint8_t iNum, long value) {
399 400
     DWIN_Draw_IntValue(false, true, 0, font, textcolor, backcolor, iNum, cursor.x, cursor.y, value);
400 401
     MoveBy(iNum * Get_font_width(font), 0);
401 402
   }
402
-  inline void Draw_Int(uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) {
403
+  inline void Draw_Int(uint8_t iNum, uint16_t x, uint16_t y, long value) {
403 404
     DWIN_Draw_IntValue(false, true, 0, font, textcolor, backcolor, iNum, x, y, value);
404 405
   }
405 406
   inline void Draw_Int(uint16_t color, uint8_t iNum, uint16_t x, uint16_t y, long value) {
@@ -423,23 +424,23 @@ namespace DWINUI {
423 424
   //  fNum: Number of decimal digits
424 425
   //  x/y: Upper-left point
425 426
   //  value: Float value
426
-  inline void Draw_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
427
+  inline void Draw_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
427 428
     DWIN_Draw_FloatValue(bShow, zeroFill, zeroMode, size, color, bColor, iNum, fNum, x, y, value);
428 429
   }
429
-  inline void Draw_Float(uint8_t iNum, uint8_t fNum, long value) {
430
+  inline void Draw_Float(uint8_t iNum, uint8_t fNum, float value) {
430 431
     DWIN_Draw_FloatValue(false, true, 0, font, textcolor, backcolor, iNum, fNum,  cursor.x, cursor.y, value);
431 432
     MoveBy((iNum + fNum + 1) * Get_font_width(font), 0);
432 433
   }
433
-  inline void Draw_Float(uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
434
+  inline void Draw_Float(uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
434 435
     DWIN_Draw_FloatValue(false, true, 0, font, textcolor, backcolor, iNum, fNum, x, y, value);
435 436
   }
436
-  inline void Draw_Float(uint16_t color, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
437
+  inline void Draw_Float(uint16_t color, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
437 438
     DWIN_Draw_FloatValue(false, true, 0, font, color, backcolor, iNum, fNum, x, y, value);
438 439
   }
439
-  inline void Draw_Float(uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
440
+  inline void Draw_Float(uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
440 441
     DWIN_Draw_FloatValue(true, true, 0, font, color, bColor, iNum, fNum, x, y, value);
441 442
   }
442
-  inline void Draw_Float(uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
443
+  inline void Draw_Float(uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
443 444
     DWIN_Draw_FloatValue(true, true, 0, size, color, bColor, iNum, fNum, x, y, value);
444 445
   }
445 446
 
@@ -453,21 +454,21 @@ namespace DWINUI {
453 454
   //  fNum: Number of decimal digits
454 455
   //  x/y: Upper-left point
455 456
   //  value: Float value
456
-  void Draw_Signed_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value);
457
-  inline void Draw_Signed_Float(uint8_t iNum, uint8_t fNum, long value) {
457
+  void Draw_Signed_Float(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value);
458
+  inline void Draw_Signed_Float(uint8_t iNum, uint8_t fNum, float value) {
458 459
     Draw_Signed_Float(false, true, 0, font, textcolor, backcolor, iNum, fNum, cursor.x, cursor.y, value);
459 460
     MoveBy((iNum + fNum + 1) * Get_font_width(font), 0);
460 461
   }
461
-  inline void Draw_Signed_Float(uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
462
+  inline void Draw_Signed_Float(uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
462 463
     Draw_Signed_Float(false, true, 0, font, textcolor, backcolor, iNum, fNum, x, y, value);
463 464
   }
464
-  inline void Draw_Signed_Float(uint8_t size, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
465
+  inline void Draw_Signed_Float(uint8_t size, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
465 466
     Draw_Signed_Float(false, true, 0, size, textcolor, backcolor, iNum, fNum, x, y, value);
466 467
   }
467
-  inline void Draw_Signed_Float(uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
468
+  inline void Draw_Signed_Float(uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
468 469
     Draw_Signed_Float(true, true, 0, font, color, bColor, iNum, fNum, x, y, value);
469 470
   }
470
-  inline void Draw_Signed_Float(uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, long value) {
471
+  inline void Draw_Signed_Float(uint8_t size, uint16_t color, uint16_t bColor, uint8_t iNum, uint8_t fNum, uint16_t x, uint16_t y, float value) {
471 472
     Draw_Signed_Float(true, true, 0, size, color, bColor, iNum, fNum, x, y, value);
472 473
   }
473 474
 

Loading…
Cancel
Save