|
@@ -84,14 +84,19 @@ void GcodeSuite::M81() {
|
84
|
84
|
ZERO(thermalManager.saved_fan_speed);
|
85
|
85
|
#endif
|
86
|
86
|
|
|
87
|
+ safe_delay(1000); // Wait 1 second before switching off
|
|
88
|
+
|
87
|
89
|
LCD_MESSAGE_F(MACHINE_NAME " " STR_OFF ".");
|
88
|
90
|
|
89
|
91
|
bool delayed_power_off = false;
|
90
|
92
|
|
91
|
93
|
#if ENABLED(POWER_OFF_TIMER)
|
92
|
94
|
if (parser.seenval('D')) {
|
93
|
|
- delayed_power_off = true;
|
94
|
|
- powerManager.setPowerOffTimer(SEC_TO_MS(parser.value_ushort()));
|
|
95
|
+ uint16_t delay = parser.value_ushort();
|
|
96
|
+ if (delay > 1) { // skip already observed 1s delay
|
|
97
|
+ delayed_power_off = true;
|
|
98
|
+ powerManager.setPowerOffTimer(SEC_TO_MS(delay - 1));
|
|
99
|
+ }
|
95
|
100
|
}
|
96
|
101
|
#endif
|
97
|
102
|
|
|
@@ -104,8 +109,6 @@ void GcodeSuite::M81() {
|
104
|
109
|
|
105
|
110
|
if (delayed_power_off) return;
|
106
|
111
|
|
107
|
|
- safe_delay(1000); // Wait 1 second before switching off
|
108
|
|
-
|
109
|
112
|
#if HAS_SUICIDE
|
110
|
113
|
suicide();
|
111
|
114
|
#elif ENABLED(PSU_CONTROL)
|