Browse Source

Handle print completed LED event in M0

pull/1/head
Scott Lahteine 5 years ago
parent
commit
bafe8d920a
  1. 20
      Marlin/src/MarlinCore.cpp
  2. 9
      Marlin/src/gcode/lcd/M0_M1.cpp
  3. 2
      Marlin/src/gcode/parser.h

20
Marlin/src/MarlinCore.cpp

@ -412,23 +412,13 @@ void startOrResumeJob() {
#endif #endif
} }
#if ENABLED(PRINTER_EVENT_LEDS)
#include "feature/leds/printer_event_leds.h"
#endif
inline void finishSDPrinting() { inline void finishSDPrinting() {
bool did_state = true; bool did_state = true;
switch (card.sdprinting_done_state) { switch (card.sdprinting_done_state) {
#if ENABLED(PRINTER_EVENT_LEDS)
case 1:
printerEventLEDs.onPrintCompleted(); // Change LED color for Print Completed
break;
#endif
#if HAS_RESUME_CONTINUE // Display "Click to Continue..." #if HAS_RESUME_CONTINUE // Display "Click to Continue..."
case 2: case 1:
did_state = queue.enqueue_P(PSTR("M0 S" did_state = queue.enqueue_P(PSTR("M0Q1S"
#if HAS_LCD_MENU #if HAS_LCD_MENU
"1800" // ...for 30 minutes with LCD "1800" // ...for 30 minutes with LCD
#else #else
@ -438,13 +428,13 @@ void startOrResumeJob() {
break; break;
#endif #endif
case 3: print_job_timer.stop(); break; case 2: print_job_timer.stop(); break;
case 4: case 3:
did_state = print_job_timer.duration() < 60 || queue.enqueue_P(PSTR("M31")); did_state = print_job_timer.duration() < 60 || queue.enqueue_P(PSTR("M31"));
break; break;
case 5: case 4:
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
recovery.purge(); recovery.purge();
#endif #endif

9
Marlin/src/gcode/lcd/M0_M1.cpp

@ -67,11 +67,16 @@ void GcodeSuite::M0_M1() {
planner.synchronize(); planner.synchronize();
#if HAS_LEDS_OFF_FLAG
if (parser.seen('Q'))
printerEventLEDs.onPrintCompleted(); // Change LED color for Print Completed
#endif
#if HAS_LCD_MENU #if HAS_LCD_MENU
if (has_message) if (has_message)
ui.set_status(args, true); ui.set_status(args, true);
else if (!parser.seenval('Q')) { else {
LCD_MESSAGEPGM(MSG_USERWAIT); LCD_MESSAGEPGM(MSG_USERWAIT);
#if ENABLED(LCD_PROGRESS_BAR) && PROGRESS_MSG_EXPIRE > 0 #if ENABLED(LCD_PROGRESS_BAR) && PROGRESS_MSG_EXPIRE > 0
ui.reset_progress_bar_timeout(); ui.reset_progress_bar_timeout();
@ -98,7 +103,7 @@ void GcodeSuite::M0_M1() {
wait_for_user = true; wait_for_user = true;
#if ENABLED(HOST_PROMPT_SUPPORT) #if ENABLED(HOST_PROMPT_SUPPORT)
host_prompt_do(PROMPT_USER_CONTINUE, PSTR("M0/1 Break Called"), CONTINUE_STR); host_prompt_do(PROMPT_USER_CONTINUE, parser.codenum ? PSTR("M1 Stop") : PSTR("M0 Stop"), CONTINUE_STR);
#endif #endif
if (ms > 0) ms += millis(); // wait until this time for a click if (ms > 0) ms += millis(); // wait until this time for a click

2
Marlin/src/gcode/parser.h

@ -241,7 +241,7 @@ public:
// Seen a parameter with a value // Seen a parameter with a value
static inline bool seenval(const char c) { return seen(c) && has_value(); } static inline bool seenval(const char c) { return seen(c) && has_value(); }
// Float removes 'E' to prevent scientific notation interpretation // The value as a string
static inline char* value_string() { return value_ptr; } static inline char* value_string() { return value_ptr; }
// Float removes 'E' to prevent scientific notation interpretation // Float removes 'E' to prevent scientific notation interpretation

Loading…
Cancel
Save