5 * off = not paused, nothing to do
8 * on = a block is being executed
11 #include "PauseButton.h"
12 #include "modules/robot/Conveyor.h"
13 #include "SlowTicker.h"
16 #include "checksumm.h"
17 #include "ConfigValue.h"
20 #define pause_led_pin_checksum CHECKSUM("pause_led_pin")
21 #define play_led_pin_checksum CHECKSUM("play_led_pin")
22 #define play_led_disable_checksum CHECKSUM("play_led_disable")
28 void PlayLed::on_module_loaded()
30 if(THEKERNEL
->config
->value( play_led_disable_checksum
)->by_default(false)->as_bool()) {
35 on_config_reload(this);
37 THEKERNEL
->slow_ticker
->attach(12, this, &PlayLed::led_tick
);
40 void PlayLed::on_config_reload(void *argument
)
42 string ledpin
= "4.28!";
44 ledpin
= THEKERNEL
->config
->value( pause_led_pin_checksum
)->by_default(ledpin
)->as_string(); // check for pause_led_pin first
45 ledpin
= THEKERNEL
->config
->value( play_led_pin_checksum
)->by_default(ledpin
)->as_string(); // override with play_led_pin if it's found
47 led
.from_string(ledpin
)->as_output()->set(false);
50 uint32_t PlayLed::led_tick(uint32_t)
52 if(THEKERNEL
->is_halted()) {
57 if(++cnt
>= 6) { // 6 ticks ~ 500ms
60 if (THEKERNEL
->pauser
->paused()) {
63 led
.set(!THEKERNEL
->conveyor
->is_queue_empty());