Added button handler

This commit is contained in:
2018-01-27 15:51:57 +01:00
parent 649b9e0729
commit 85cdbbf42d
10 changed files with 180 additions and 32 deletions

View File

@@ -15,17 +15,15 @@
static int ON_BOARD_LED = 13; /* sonoff basic LED pin */
static LEDStatus currentStatus = LED_OFF;
static enum LEDStatus currentStatus = LED_OFF;
static int numTicksLedHasThisState = 0;
void set_led_status(LEDStatus newStatus) {
void set_led_status(enum LEDStatus newStatus) {
numTicksLedHasThisState = 0;
currentStatus = newStatus;
LOG(LL_DEBUG, ("set_led_status to %d", newStatus));
LOG(LL_INFO, ("set_led_status to %d", newStatus));
}
static uint8_t led_timer_ticks = 0; /* for led blinker use */
static void blink_on_board_led_cb(void *arg) {
switch (currentStatus) {
case LED_OFF:
@@ -35,7 +33,7 @@ static void blink_on_board_led_cb(void *arg) {
mgos_gpio_write(ON_BOARD_LED, 0); // on
break;
case LED_BLINK_SLOW:
++numTicksLedHasThisState = 0;
++numTicksLedHasThisState;
if (numTicksLedHasThisState >= 4) {
numTicksLedHasThisState = 0;
mgos_gpio_toggle(ON_BOARD_LED);
@@ -55,5 +53,5 @@ static void blink_on_board_led_cb(void *arg) {
void init_led_handler() {
mgos_gpio_set_mode(ON_BOARD_LED, MGOS_GPIO_MODE_OUTPUT);
mgos_set_timer(250, MGOS_TIMER_REPEAT, blink_on_board_led_cb, NULL);
LOG(LL_DEBUG, ("LED handler initialized"));
LOG(LL_INFO, ("LED handler initialized"));
}