From c7e6b7924a53c6173b0c71df8e00a773ad1472df Mon Sep 17 00:00:00 2001 From: ellensp <530024+ellensp@users.noreply.github.com> Date: Mon, 17 Nov 2025 07:54:52 +1300 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=F0=9F=8C=A1=EF=B8=8F=20Refactor=20?= =?UTF-8?q?AUTOTEMP=20(2)=20(#28175)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Followup to #28155 --- Marlin/src/gcode/temp/M104_M109.cpp | 9 +++------ Marlin/src/lcd/menu/menu_advanced.cpp | 23 +++++++++++++++-------- Marlin/src/module/settings.cpp | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Marlin/src/gcode/temp/M104_M109.cpp b/Marlin/src/gcode/temp/M104_M109.cpp index fa6cc948c0..badc8b7fe7 100644 --- a/Marlin/src/gcode/temp/M104_M109.cpp +++ b/Marlin/src/gcode/temp/M104_M109.cpp @@ -140,12 +140,9 @@ void GcodeSuite::M104_M109(const bool isM109) { // void GcodeSuite::M104_report(const bool forReplay/*=true*/) { TERN_(MARLIN_SMALL_BUILD, return); - report_heading_etc(forReplay, F(STR_AUTOTEMP)); - SERIAL_ECHOLNPGM(" M104" - " S", thermalManager.autotemp.cfg.min, - " B", thermalManager.autotemp.cfg.max, - " F", thermalManager.autotemp.cfg.factor - ); + report_heading_etc(forReplay, F(STR_AUTOTEMP)); + const autotemp_cfg_t &c = thermalManager.autotemp.cfg; + SERIAL_ECHOLNPGM(" M104 S", c.min, " B", c.max, " F", c.factor); } #endif diff --git a/Marlin/src/lcd/menu/menu_advanced.cpp b/Marlin/src/lcd/menu/menu_advanced.cpp index a8d792dbca..fa3f748b8e 100644 --- a/Marlin/src/lcd/menu/menu_advanced.cpp +++ b/Marlin/src/lcd/menu/menu_advanced.cpp @@ -325,9 +325,14 @@ void menu_backlash(); // Autotemp, Min, Max, Fact // #if ALL(AUTOTEMP, HAS_TEMP_HOTEND) - EDIT_ITEM(int3, MSG_MIN, &thermalManager.autotemp.cfg.min, 0, thermalManager.hotend_max_target(0)); - EDIT_ITEM(int3, MSG_MAX, &thermalManager.autotemp.cfg.max, 0, thermalManager.hotend_max_target(0)); - EDIT_ITEM(float42_52, MSG_FACTOR, &thermalManager.autotemp.cfg.factor, 0, 10); + autotemp_cfg_t &c = thermalManager.autotemp.cfg; + EDIT_ITEM(int3, MSG_MIN, &c.min, 0, thermalManager.hotend_max_target(0), []{ + NOLESS(thermalManager.autotemp.cfg.max, thermalManager.autotemp.cfg.min); + }); + EDIT_ITEM(int3, MSG_MAX, &c.max, 0, thermalManager.hotend_max_target(0), []{ + NOMORE(thermalManager.autotemp.cfg.min, thermalManager.autotemp.cfg.max); + }); + EDIT_ITEM(float42_52, MSG_FACTOR, &c.factor, 0, 10); #endif // @@ -340,13 +345,15 @@ void menu_backlash(); // #if ALL(PIDTEMP, PID_EDIT_MENU) - #define __PID_HOTEND_MENU_ITEMS(N) \ + + #define __PID_HOTEND_MENU_ITEMS(N) do{ \ raw_Kp = thermalManager.temp_hotend[N].pid.p(); \ raw_Ki = thermalManager.temp_hotend[N].pid.i(); \ raw_Kd = thermalManager.temp_hotend[N].pid.d(); \ - EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_P_E, &raw_Kp, 1, 9990, []{ apply_PID_p(N); }); \ + EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_P_E, &raw_Kp, 1.00f, 9990, []{ apply_PID_p(N); }); \ EDIT_ITEM_FAST_N(float52sign, N, MSG_PID_I_E, &raw_Ki, 0.01f, 9990, []{ apply_PID_i(N); }); \ - EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_D_E, &raw_Kd, 1, 9990, []{ apply_PID_d(N); }) + EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_D_E, &raw_Kd, 1.00f, 9990, []{ apply_PID_d(N); }); \ + }while(0) #if ENABLED(PID_EXTRUSION_SCALING) #define _PID_HOTEND_MENU_ITEMS(N) \ @@ -377,9 +384,9 @@ void menu_backlash(); raw_Kp = T.pid.p(); \ raw_Ki = T.pid.i(); \ raw_Kd = T.pid.d(); \ - EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_P_E, &raw_Kp, 1, 9990, []{ apply_PID_p(N); }); \ + EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_P_E, &raw_Kp, 1.00f, 9990, []{ apply_PID_p(N); }); \ EDIT_ITEM_FAST_N(float52sign, N, MSG_PID_I_E, &raw_Ki, 0.01f, 9990, []{ apply_PID_i(N); }); \ - EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_D_E, &raw_Kd, 1, 9990, []{ apply_PID_d(N); }) + EDIT_ITEM_FAST_N(float41sign, N, MSG_PID_D_E, &raw_Kd, 1.00f, 9990, []{ apply_PID_d(N); }) #endif #if ENABLED(PIDTEMP) diff --git a/Marlin/src/module/settings.cpp b/Marlin/src/module/settings.cpp index 9919f3f1de..85f837b063 100644 --- a/Marlin/src/module/settings.cpp +++ b/Marlin/src/module/settings.cpp @@ -3875,7 +3875,7 @@ void MarlinSettings::reset() { // // M104 settings for AUTOTEMP // - TERN_(AUTOTEMP, gcode.M104_report()); + TERN_(AUTOTEMP, gcode.M104_report(forReplay)); // // M149 Temperature units