1#include "led_controller.h"
7 gpio_pad_select_gpio(
static_cast<gpio_num_t
>(pin));
8 gpio_set_direction(
static_cast<gpio_num_t
>(pin), GPIO_MODE_OUTPUT);
14 if (currentState != state)
16 gpio_set_level(
static_cast<gpio_num_t
>(pin), state ? 1 : 0);
27 stateBeforeBlink = currentState;
28 blinkInterval = intervalMs;
30 blinkRemaining = (count < 0) ? -1 :
static_cast<int16_t
>(count * 2);
49 if (lastToggleTime == 0)
56 if (now - lastToggleTime < blinkInterval)
62 if (blinkRemaining > 0)
65 if (blinkRemaining == 0)
void setup(uint32_t initialState=0) override
void update(uint32_t now) override
Drive timed behaviour — must be called every loop iteration.
void setState(bool state) override
void startBlink(uint32_t intervalMs, int16_t count=-1) override
Start a blink sequence.
void stopBlink() override
Stop any running blink and restore the pre-blink state.
LEDController(uint8_t pin)