|
@@ -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
|
|