Browse Source

✨ Power-off confirm / beep options (#22191)

Cytown 4 years ago
parent
commit
0bd113b944
No account linked to committer's email address

+ 2
- 0
Marlin/Configuration.h View File

366
 //#define PSU_NAME "Power Supply"
366
 //#define PSU_NAME "Power Supply"
367
 
367
 
368
 #if ENABLED(PSU_CONTROL)
368
 #if ENABLED(PSU_CONTROL)
369
+  //#define PS_OFF_CONFIRM          // Confirm dialog when power off
370
+  //#define PS_OFF_SOUND            // Beep 1s when power off
369
   #define PSU_ACTIVE_STATE LOW      // Set 'LOW' for ATX, 'HIGH' for X-Box
371
   #define PSU_ACTIVE_STATE LOW      // Set 'LOW' for ATX, 'HIGH' for X-Box
370
 
372
 
371
   //#define PSU_DEFAULT_OFF         // Keep power off until enabled directly with M80
373
   //#define PSU_DEFAULT_OFF         // Keep power off until enabled directly with M80

+ 4
- 0
Marlin/src/gcode/control/M80_M81.cpp View File

101
     #endif
101
     #endif
102
   #endif
102
   #endif
103
 
103
 
104
+  #if ENABLED(PS_OFF_SOUND)
105
+    BUZZ(1000, 659);
106
+  #endif
107
+
104
   safe_delay(1000); // Wait 1 second before switching off
108
   safe_delay(1000); // Wait 1 second before switching off
105
 
109
 
106
   #if HAS_SUICIDE
110
   #if HAS_SUICIDE

+ 7
- 0
Marlin/src/lcd/marlinui.cpp View File

1494
     TERN_(HAS_LCD_MENU, return_to_status());
1494
     TERN_(HAS_LCD_MENU, return_to_status());
1495
   }
1495
   }
1496
 
1496
 
1497
+  #if BOTH(PSU_CONTROL, PS_OFF_CONFIRM)
1498
+    void MarlinUI::poweroff() {
1499
+      queue.inject_P(PSTR("M81"));
1500
+      goto_previous_screen();
1501
+    }
1502
+  #endif
1503
+
1497
   void MarlinUI::flow_fault() {
1504
   void MarlinUI::flow_fault() {
1498
     LCD_ALERTMESSAGEPGM(MSG_FLOWMETER_FAULT);
1505
     LCD_ALERTMESSAGEPGM(MSG_FLOWMETER_FAULT);
1499
     TERN_(HAS_BUZZER, buzz(1000, 440));
1506
     TERN_(HAS_BUZZER, buzz(1000, 440));

+ 4
- 0
Marlin/src/lcd/marlinui.h View File

334
     static void resume_print();
334
     static void resume_print();
335
     static void flow_fault();
335
     static void flow_fault();
336
 
336
 
337
+    #if BOTH(PSU_CONTROL, PS_OFF_CONFIRM)
338
+      static void poweroff();
339
+    #endif
340
+
337
     #if HAS_WIRED_LCD
341
     #if HAS_WIRED_LCD
338
 
342
 
339
       static millis_t next_button_update_ms;
343
       static millis_t next_button_update_ms;

+ 9
- 1
Marlin/src/lcd/menu/menu_main.cpp View File

387
   //
387
   //
388
   #if ENABLED(PSU_CONTROL)
388
   #if ENABLED(PSU_CONTROL)
389
     if (powersupply_on)
389
     if (powersupply_on)
390
-      GCODES_ITEM(MSG_SWITCH_PS_OFF, PSTR("M81"));
390
+      #if ENABLED(PS_OFF_CONFIRM)
391
+        CONFIRM_ITEM(MSG_SWITCH_PS_OFF,
392
+          MSG_YES, MSG_NO,
393
+          ui.poweroff, ui.goto_previous_screen,
394
+          GET_TEXT(MSG_SWITCH_PS_OFF), (const char *)nullptr, PSTR("?")
395
+        );
396
+      #else
397
+        GCODES_ITEM(MSG_SWITCH_PS_OFF, PSTR("M81"));
398
+      #endif
391
     else
399
     else
392
       GCODES_ITEM(MSG_SWITCH_PS_ON, PSTR("M80"));
400
       GCODES_ITEM(MSG_SWITCH_PS_ON, PSTR("M80"));
393
   #endif
401
   #endif

+ 2
- 1
buildroot/tests/rambo View File

32
            SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE \
32
            SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE \
33
            BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \
33
            BACKLASH_COMPENSATION BACKLASH_GCODE BAUD_RATE_GCODE BEZIER_CURVE_SUPPORT \
34
            FWRETRACT ARC_P_CIRCLES CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \
34
            FWRETRACT ARC_P_CIRCLES CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \
35
-           PSU_CONTROL AUTO_POWER_CONTROL POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE POWER_LOSS_RECOVER_ZHOME POWER_LOSS_ZHOME_POS \
35
+           PSU_CONTROL PS_OFF_CONFIRM PS_OFF_SOUND AUTO_POWER_CONTROL \
36
+           POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE POWER_LOSS_RECOVER_ZHOME POWER_LOSS_ZHOME_POS \
36
            SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE EXTRA_LIN_ADVANCE_K \
37
            SLOW_PWM_HEATERS THERMAL_PROTECTION_CHAMBER LIN_ADVANCE EXTRA_LIN_ADVANCE_K \
37
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
38
            HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT PINS_DEBUGGING MAX7219_DEBUG M114_DETAIL
38
 opt_add DEBUG_POWER_LOSS_RECOVERY
39
 opt_add DEBUG_POWER_LOSS_RECOVERY

Loading…
Cancel
Save