From 44e34b2100ed77f6e41010e3eaf2a99d7fada5de Mon Sep 17 00:00:00 2001 From: Jim Morris Date: Mon, 3 Nov 2014 00:13:33 -0800 Subject: [PATCH] can;t do anythng nasty on on_halt as it may be from interrupt --- src/modules/utils/PlayLed/PlayLed.cpp | 11 ++++++++++- src/modules/utils/PlayLed/PlayLed.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modules/utils/PlayLed/PlayLed.cpp b/src/modules/utils/PlayLed/PlayLed.cpp index 25609f5e..cdf1b86c 100644 --- a/src/modules/utils/PlayLed/PlayLed.cpp +++ b/src/modules/utils/PlayLed/PlayLed.cpp @@ -15,7 +15,7 @@ #include "Pauser.h" #include "checksumm.h" #include "ConfigValue.h" - +#include "Gcode.h" #define pause_led_pin_checksum CHECKSUM("pause_led_pin") #define play_led_pin_checksum CHECKSUM("play_led_pin") @@ -36,6 +36,7 @@ void PlayLed::on_module_loaded() on_config_reload(this); this->register_for_event(ON_HALT); + this->register_for_event(ON_GCODE_RECEIVED); THEKERNEL->slow_ticker->attach(12, this, &PlayLed::led_tick); } @@ -49,6 +50,14 @@ void PlayLed::on_config_reload(void *argument) led.from_string(ledpin)->as_output()->set(false); } +void PlayLed::on_gcode_received(void *argument) +{ + Gcode *gcode = static_cast(argument); + if ( gcode->has_m && gcode->m == 999 && halted) { + halted= false; + } +} + uint32_t PlayLed::led_tick(uint32_t) { if(this->halted) { diff --git a/src/modules/utils/PlayLed/PlayLed.h b/src/modules/utils/PlayLed/PlayLed.h index 9d5ea19d..fedcd1f1 100644 --- a/src/modules/utils/PlayLed/PlayLed.h +++ b/src/modules/utils/PlayLed/PlayLed.h @@ -13,6 +13,7 @@ public: void on_module_loaded(void); void on_config_reload(void *); void on_halt(void *arg); + void on_gcode_received(void* argument); private: uint32_t led_tick(uint32_t); -- 2.20.1