Explorar el Código

Optimize M360

Scott Lahteine hace 3 años
padre
commit
c710b6e06c
Se han modificado 1 ficheros con 35 adiciones y 38 borrados
  1. 35
    38
      Marlin/src/gcode/host/M360.cpp

+ 35
- 38
Marlin/src/gcode/host/M360.cpp Ver fichero

@@ -28,16 +28,24 @@
28 28
 #include "../../module/motion.h"
29 29
 #include "../../module/planner.h"
30 30
 
31
-static void config_prefix(PGM_P const name, PGM_P const pref=nullptr) {
31
+#if EXTRUDERS
32
+  #include "../../module/temperature.h"
33
+#endif
34
+
35
+static void config_prefix(PGM_P const name, PGM_P const pref=nullptr, const int8_t ind=-1) {
32 36
   SERIAL_ECHOPGM("Config:");
33 37
   if (pref) serialprintPGM(pref);
38
+  if (ind >= 0) { SERIAL_ECHO(int(ind)); SERIAL_CHAR(':'); }
34 39
   serialprintPGM(name);
35 40
   SERIAL_CHAR(':');
36 41
 }
37
-static void config_line(PGM_P const name, const float val, PGM_P const pref=nullptr) {
38
-  config_prefix(name, pref);
42
+static void config_line(PGM_P const name, const float val, PGM_P const pref=nullptr, const int8_t ind=-1) {
43
+  config_prefix(name, pref, ind);
39 44
   SERIAL_ECHOLN(val);
40 45
 }
46
+static void config_line_e(const int8_t e, PGM_P const name, const float val) {
47
+  config_line(name, val, PSTR("Extr."), e + 1);
48
+}
41 49
 
42 50
 /**
43 51
  * M360: Report Firmware configuration
@@ -52,19 +60,19 @@ void GcodeSuite::M360() {
52 60
   //
53 61
   // Basics and Enabled items
54 62
   //
55
-  config_line(PSTR("Baudrate"), BAUDRATE);
56
-  config_line(PSTR("InputBuffer"), MAX_CMD_SIZE);
57
-  config_line(PSTR("PrintlineCache"), BUFSIZE);
58
-  config_line(PSTR("MixingExtruder"), ENABLED(MIXING_EXTRUDER));
59
-  config_line(PSTR("SDCard"), ENABLED(SDSUPPORT));
60
-  config_line(PSTR("Fan"), ENABLED(HAS_FAN));
61
-  config_line(PSTR("LCD"), ENABLED(HAS_DISPLAY));
63
+  config_line(PSTR("Baudrate"),                   BAUDRATE);
64
+  config_line(PSTR("InputBuffer"),                MAX_CMD_SIZE);
65
+  config_line(PSTR("PrintlineCache"),             BUFSIZE);
66
+  config_line(PSTR("MixingExtruder"),             ENABLED(MIXING_EXTRUDER));
67
+  config_line(PSTR("SDCard"),                     ENABLED(SDSUPPORT));
68
+  config_line(PSTR("Fan"),                        ENABLED(HAS_FAN));
69
+  config_line(PSTR("LCD"),                        ENABLED(HAS_DISPLAY));
62 70
   config_line(PSTR("SoftwarePowerSwitch"), 1);
63 71
   config_line(PSTR("SupportLocalFilamentchange"), ENABLED(ADVANCED_PAUSE_FEATURE));
64
-  config_line(PSTR("CaseLights"), ENABLED(CASE_LIGHT_ENABLE));
65
-  config_line(PSTR("ZProbe"), ENABLED(HAS_BED_PROBE));
66
-  config_line(PSTR("Autolevel"), ENABLED(HAS_LEVELING));
67
-  config_line(PSTR("EEPROM"), ENABLED(EEPROM_SETTINGS));
72
+  config_line(PSTR("CaseLights"),                 ENABLED(CASE_LIGHT_ENABLE));
73
+  config_line(PSTR("ZProbe"),                     ENABLED(HAS_BED_PROBE));
74
+  config_line(PSTR("Autolevel"),                  ENABLED(HAS_LEVELING));
75
+  config_line(PSTR("EEPROM"),                     ENABLED(EEPROM_SETTINGS));
68 76
 
69 77
   //
70 78
   // Homing Directions
@@ -96,15 +104,15 @@ void GcodeSuite::M360() {
96 104
     PGMSTR(UNRET_STR, "RetractionUndo");
97 105
     PGMSTR(SPEED_STR, "Speed");
98 106
     // M10 Retract with swap (long) moves
99
-    config_line(PSTR("Length"), fwretract.settings.retract_length, RET_STR);
100
-    config_line(SPEED_STR, fwretract.settings.retract_feedrate_mm_s, RET_STR);
101
-    config_line(PSTR("ZLift"), fwretract.settings.retract_zraise, RET_STR);
107
+    config_line(PSTR("Length"),     fwretract.settings.retract_length, RET_STR);
108
+    config_line(SPEED_STR,          fwretract.settings.retract_feedrate_mm_s, RET_STR);
109
+    config_line(PSTR("ZLift"),      fwretract.settings.retract_zraise, RET_STR);
102 110
     config_line(PSTR("LongLength"), fwretract.settings.swap_retract_length, RET_STR);
103 111
     // M11 Recover (undo) with swap (long) moves
104
-    config_line(SPEED_STR, fwretract.settings.retract_recover_feedrate_mm_s, UNRET_STR);
105
-    config_line(PSTR("ExtraLength"), fwretract.settings.retract_recover_extra, UNRET_STR);
112
+    config_line(SPEED_STR,               fwretract.settings.retract_recover_feedrate_mm_s, UNRET_STR);
113
+    config_line(PSTR("ExtraLength"),     fwretract.settings.retract_recover_extra, UNRET_STR);
106 114
     config_line(PSTR("ExtraLongLength"), fwretract.settings.swap_retract_recover_extra, UNRET_STR);
107
-    config_line(PSTR("LongSpeed"), fwretract.settings.swap_retract_recover_feedrate_mm_s, UNRET_STR);
115
+    config_line(PSTR("LongSpeed"),       fwretract.settings.swap_retract_recover_feedrate_mm_s, UNRET_STR);
108 116
   #endif
109 117
 
110 118
   //
@@ -165,24 +173,13 @@ void GcodeSuite::M360() {
165 173
   //
166 174
   config_line(PSTR("NumExtruder"), EXTRUDERS);
167 175
   #if EXTRUDERS
168
-    #define DIAM_VALUE(N) TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[N])
169
-    #if HAS_LINEAR_E_JERK
170
-      #define E_JERK_VAL(N) planner.max_e_jerk[E_INDEX_N(N)]
171
-    #elif HAS_CLASSIC_JERK
172
-      #define E_JERK_VAL(N) planner.max_jerk.e
173
-    #else
174
-      #define E_JERK_VAL(N) DEFAULT_EJERK
175
-    #endif
176
-    #define _EXTR_ITEM(N) do{ \
177
-      PGMSTR(EXTR_STR, "Extr." STRINGIFY(INCREMENT(N)) ":"); \
178
-      config_line(JERK_STR, E_JERK_VAL(N), EXTR_STR); \
179
-      config_line(PSTR("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(N)], EXTR_STR); \
180
-      config_line(PSTR("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(N)], EXTR_STR); \
181
-      config_line(PSTR("Diameter"), DIAM_VALUE(N), EXTR_STR); \
182
-      config_line(PSTR("MaxTemp"), (HEATER_##N##_MAXTEMP) - (HOTEND_OVERSHOOT), EXTR_STR); \
183
-    }while(0)
184
-
185
-    REPEAT(EXTRUDERS, _EXTR_ITEM);
176
+    LOOP_L_N(e, EXTRUDERS) {
177
+      config_line_e(e, JERK_STR, TERN(HAS_LINEAR_E_JERK, planner.max_e_jerk[E_INDEX_N(e)], TERN(HAS_CLASSIC_JERK, planner.max_jerk.e, DEFAULT_EJERK)));
178
+      config_line_e(e, PSTR("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(e)]);
179
+      config_line_e(e, PSTR("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(e)]);
180
+      config_line_e(e, PSTR("Diameter"), TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[e]));
181
+      config_line_e(e, PSTR("MaxTemp"), thermalManager.heater_maxtemp[e]);
182
+    }
186 183
   #endif
187 184
 }
188 185
 

Loading…
Cancelar
Guardar