瀏覽代碼

Fix E3V2 DWIN Jerk Menu (#20352)

* Fix E3V2 DWIN build without CLASSIC_JERK
* Fix jerk edits applying to wrong index
Jason Smith 4 年之前
父節點
當前提交
a4618309ce
No account linked to committer's email address
共有 2 個文件被更改,包括 80 次插入67 次删除
  1. 76
    67
      Marlin/src/lcd/dwin/e3v2/dwin.cpp
  2. 4
    0
      buildroot/tests/STM32F103RET6_creality-tests

+ 76
- 67
Marlin/src/lcd/dwin/e3v2/dwin.cpp 查看文件

185
 
185
 
186
 constexpr float default_max_feedrate[]        = DEFAULT_MAX_FEEDRATE;
186
 constexpr float default_max_feedrate[]        = DEFAULT_MAX_FEEDRATE;
187
 constexpr float default_max_acceleration[]    = DEFAULT_MAX_ACCELERATION;
187
 constexpr float default_max_acceleration[]    = DEFAULT_MAX_ACCELERATION;
188
-constexpr float default_max_jerk[]            = { DEFAULT_XJERK, DEFAULT_YJERK, DEFAULT_ZJERK, DEFAULT_EJERK };
188
+
189
+#if HAS_CLASSIC_JERK
190
+  constexpr float default_max_jerk[]          = { DEFAULT_XJERK, DEFAULT_YJERK, DEFAULT_ZJERK, DEFAULT_EJERK };
191
+#endif
189
 
192
 
190
 uint8_t Percentrecord = 0;
193
 uint8_t Percentrecord = 0;
191
 uint16_t remain_time = 0;
194
 uint16_t remain_time = 0;
1492
       if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Jerk)) {
1495
       if (Apply_Encoder(encoder_diffState, HMI_ValueStruct.Max_Jerk)) {
1493
         checkkey = MaxJerk;
1496
         checkkey = MaxJerk;
1494
         EncoderRate.enabled = false;
1497
         EncoderRate.enabled = false;
1495
-        if (WITHIN(HMI_flag.step_axis, X_AXIS, E_AXIS))
1496
-          planner.set_max_jerk(HMI_flag.step_axis, HMI_ValueStruct.Max_Jerk / 10);
1498
+        if (WITHIN(HMI_flag.jerk_axis, X_AXIS, E_AXIS))
1499
+          planner.set_max_jerk(HMI_flag.jerk_axis, HMI_ValueStruct.Max_Jerk / 10);
1497
         DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
1500
         DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(select_jerk.now), HMI_ValueStruct.Max_Jerk);
1498
         return;
1501
         return;
1499
       }
1502
       }
2955
   #endif
2958
   #endif
2956
 }
2959
 }
2957
 
2960
 
2958
-inline void Draw_Max_Jerk_Menu() {
2959
-  Clear_Main_Window();
2961
+#if HAS_CLASSIC_JERK
2962
+  inline void Draw_Max_Jerk_Menu() {
2963
+    Clear_Main_Window();
2960
 
2964
 
2961
-  if (HMI_IsChinese()) {
2962
-    DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Jerk"
2963
-
2964
-    DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(1));
2965
-    DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(1) + 1);
2966
-    DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(1));
2967
-    DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 83, MBASE(1));        // Max Jerk speed X
2968
-    DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(2));
2969
-    DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(2) + 1);
2970
-    DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(2));
2971
-    DWIN_Frame_AreaCopy(1,   1, 150,   7, 160, LBLX + 83, MBASE(2) + 3);    // Max Jerk speed Y
2972
-    DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(3));
2973
-    DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(3) + 1);
2974
-    DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(3));
2975
-    DWIN_Frame_AreaCopy(1,   9, 150,  16, 160, LBLX + 83, MBASE(3) + 3);    // Max Jerk speed Z
2976
-    #if HAS_HOTEND
2977
-      DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(4));
2978
-      DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(4) + 1);
2979
-      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(4));
2980
-      DWIN_Frame_AreaCopy(1,  18, 150,  25, 160, LBLX + 83, MBASE(4) + 3);  // Max Jerk speed E
2981
-    #endif
2982
-  }
2983
-  else {
2984
-    #ifdef USE_STRING_HEADINGS
2985
-      Draw_Title(GET_TEXT_F(MSG_JERK));
2986
-      DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(1), F("Max Jerk X"));
2987
-      DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(2), F("Max Jerk Y"));
2988
-      DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(3), F("Max Jerk Z"));
2965
+    if (HMI_IsChinese()) {
2966
+      DWIN_Frame_TitleCopy(1, 1, 16, 28, 28); // "Jerk"
2967
+
2968
+      DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(1));
2969
+      DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(1) + 1);
2970
+      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(1));
2971
+      DWIN_Frame_AreaCopy(1, 229, 133, 236, 147, LBLX + 83, MBASE(1));        // Max Jerk speed X
2972
+      DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(2));
2973
+      DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(2) + 1);
2974
+      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(2));
2975
+      DWIN_Frame_AreaCopy(1,   1, 150,   7, 160, LBLX + 83, MBASE(2) + 3);    // Max Jerk speed Y
2976
+      DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(3));
2977
+      DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(3) + 1);
2978
+      DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(3));
2979
+      DWIN_Frame_AreaCopy(1,   9, 150,  16, 160, LBLX + 83, MBASE(3) + 3);    // Max Jerk speed Z
2989
       #if HAS_HOTEND
2980
       #if HAS_HOTEND
2990
-        DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(4), F("Max Jerk E"));
2981
+        DWIN_Frame_AreaCopy(1, 173, 133, 200, 147, LBLX     , MBASE(4));
2982
+        DWIN_Frame_AreaCopy(1,   1, 180,  28, 192, LBLX + 27, MBASE(4) + 1);
2983
+        DWIN_Frame_AreaCopy(1, 202, 133, 228, 147, LBLX + 53, MBASE(4));
2984
+        DWIN_Frame_AreaCopy(1,  18, 150,  25, 160, LBLX + 83, MBASE(4) + 3);  // Max Jerk speed E
2991
       #endif
2985
       #endif
2992
-    #else
2993
-      DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Jerk"
2994
-      draw_max_en(MBASE(1));          // "Max"
2995
-      draw_jerk_en(MBASE(1));         // "Jerk"
2996
-      draw_speed_en(72, MBASE(1));    // "Speed"
2997
-      say_x(115, MBASE(1));           // "X"
2998
-
2999
-      draw_max_en(MBASE(2));          // "Max"
3000
-      draw_jerk_en(MBASE(2));         // "Jerk"
3001
-      draw_speed_en(72, MBASE(2));    // "Speed"
3002
-      say_y(115, MBASE(2));           // "Y"
3003
-
3004
-      draw_max_en(MBASE(3));          // "Max"
3005
-      draw_jerk_en(MBASE(3));         // "Jerk"
3006
-      draw_speed_en(72, MBASE(3));    // "Speed"
3007
-      say_z(115, MBASE(3));           // "Z"
2986
+    }
2987
+    else {
2988
+      #ifdef USE_STRING_HEADINGS
2989
+        Draw_Title(GET_TEXT_F(MSG_JERK));
2990
+        DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(1), F("Max Jerk X"));
2991
+        DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(2), F("Max Jerk Y"));
2992
+        DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(3), F("Max Jerk Z"));
2993
+        #if HAS_HOTEND
2994
+          DWIN_Draw_String(false, true, font8x16, Color_White, Color_Bg_Black, LBLX, MBASE(4), F("Max Jerk E"));
2995
+        #endif
2996
+      #else
2997
+        DWIN_Frame_TitleCopy(1, 144, 16, 189, 26); // "Jerk"
2998
+        draw_max_en(MBASE(1));          // "Max"
2999
+        draw_jerk_en(MBASE(1));         // "Jerk"
3000
+        draw_speed_en(72, MBASE(1));    // "Speed"
3001
+        say_x(115, MBASE(1));           // "X"
3002
+
3003
+        draw_max_en(MBASE(2));          // "Max"
3004
+        draw_jerk_en(MBASE(2));         // "Jerk"
3005
+        draw_speed_en(72, MBASE(2));    // "Speed"
3006
+        say_y(115, MBASE(2));           // "Y"
3007
+
3008
+        draw_max_en(MBASE(3));          // "Max"
3009
+        draw_jerk_en(MBASE(3));         // "Jerk"
3010
+        draw_speed_en(72, MBASE(3));    // "Speed"
3011
+        say_z(115, MBASE(3));           // "Z"
3008
 
3012
 
3009
-      #if HAS_HOTEND
3010
-        draw_max_en(MBASE(4));        // "Max"
3011
-        draw_jerk_en(MBASE(4));       // "Jerk"
3012
-        draw_speed_en(72, MBASE(4));  // "Speed"
3013
-        say_e(115, MBASE(4));         // "E"
3013
+        #if HAS_HOTEND
3014
+          draw_max_en(MBASE(4));        // "Max"
3015
+          draw_jerk_en(MBASE(4));       // "Jerk"
3016
+          draw_speed_en(72, MBASE(4));  // "Speed"
3017
+          say_e(115, MBASE(4));         // "E"
3018
+        #endif
3014
       #endif
3019
       #endif
3020
+    }
3021
+
3022
+    Draw_Back_First();
3023
+    LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxSpeedJerkX + i);
3024
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(1), planner.max_jerk[X_AXIS] * MINUNITMULT);
3025
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(2), planner.max_jerk[Y_AXIS] * MINUNITMULT);
3026
+    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(3), planner.max_jerk[Z_AXIS] * MINUNITMULT);
3027
+    #if HAS_HOTEND
3028
+      DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(4), planner.max_jerk[E_AXIS] * MINUNITMULT);
3015
     #endif
3029
     #endif
3016
   }
3030
   }
3017
-
3018
-  Draw_Back_First();
3019
-  LOOP_L_N(i, 3 + ENABLED(HAS_HOTEND)) Draw_Menu_Line(i + 1, ICON_MaxSpeedJerkX + i);
3020
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(1), planner.max_jerk[X_AXIS] * MINUNITMULT);
3021
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(2), planner.max_jerk[Y_AXIS] * MINUNITMULT);
3022
-  DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(3), planner.max_jerk[Z_AXIS] * MINUNITMULT);
3023
-  #if HAS_HOTEND
3024
-    DWIN_Draw_FloatValue(true, true, 0, font8x16, Color_White, Color_Bg_Black, 3, 1, 210, MBASE(4), planner.max_jerk[E_AXIS] * MINUNITMULT);
3025
-  #endif
3026
-}
3031
+#endif
3027
 
3032
 
3028
 inline void Draw_Steps_Menu() {
3033
 inline void Draw_Steps_Menu() {
3029
   Clear_Main_Window();
3034
   Clear_Main_Window();
3636
     #endif
3641
     #endif
3637
     case MaxSpeed:        HMI_MaxSpeed(); break;
3642
     case MaxSpeed:        HMI_MaxSpeed(); break;
3638
     case MaxAcceleration: HMI_MaxAcceleration(); break;
3643
     case MaxAcceleration: HMI_MaxAcceleration(); break;
3639
-    case MaxJerk:         HMI_MaxJerk(); break;
3644
+    #if HAS_CLASSIC_JERK
3645
+      case MaxJerk:       HMI_MaxJerk(); break;
3646
+    #endif
3640
     case Step:            HMI_Step(); break;
3647
     case Step:            HMI_Step(); break;
3641
     case Move_X:          HMI_Move_X(); break;
3648
     case Move_X:          HMI_Move_X(); break;
3642
     case Move_Y:          HMI_Move_Y(); break;
3649
     case Move_Y:          HMI_Move_Y(); break;
3657
     case PrintSpeed:      HMI_PrintSpeed(); break;
3664
     case PrintSpeed:      HMI_PrintSpeed(); break;
3658
     case MaxSpeed_value:  HMI_MaxFeedspeedXYZE(); break;
3665
     case MaxSpeed_value:  HMI_MaxFeedspeedXYZE(); break;
3659
     case MaxAcceleration_value: HMI_MaxAccelerationXYZE(); break;
3666
     case MaxAcceleration_value: HMI_MaxAccelerationXYZE(); break;
3660
-    case MaxJerk_value:   HMI_MaxJerkXYZE(); break;
3667
+    #if HAS_CLASSIC_JERK
3668
+      case MaxJerk_value: HMI_MaxJerkXYZE(); break;
3669
+    #endif
3661
     case Step_value:      HMI_StepXYZE(); break;
3670
     case Step_value:      HMI_StepXYZE(); break;
3662
     default: break;
3671
     default: break;
3663
   }
3672
   }

+ 4
- 0
buildroot/tests/STM32F103RET6_creality-tests 查看文件

13
 opt_enable MARLIN_DEV_MODE
13
 opt_enable MARLIN_DEV_MODE
14
 exec_test $1 $2 "Ender 3 v2" "$3"
14
 exec_test $1 $2 "Ender 3 v2" "$3"
15
 
15
 
16
+use_example_configs "Creality/Ender-3 V2"
17
+opt_disable CLASSIC_JERK
18
+exec_test $1 $2 "Ender 3 v2 w/o CLASSIC_JERK" "$3"
19
+
16
 restore_configs
20
 restore_configs

Loading…
取消
儲存