diff --git a/firmware/lux.cpp b/firmware/lux.cpp index d5d8e3c..e5dadc6 100644 --- a/firmware/lux.cpp +++ b/firmware/lux.cpp @@ -26,13 +26,10 @@ struct apa10xx_pixel_t { static ws2812_pixel_t next_colour(int i) { ws2812_pixel_t colour = {{0, 0, 0, 0}}; - if(i == 8) { - colour.white = 32; - } else { - colour.red = i & 1 ? 32 : 0; - colour.green = i & 2 ? 32 : 0; - colour.blue = i & 4 ? 32 : 0; - } + colour.red = 0; + colour.green = 0; + colour.blue = 0; + colour.white = 8; return colour; } @@ -40,9 +37,9 @@ static ws2812_pixel_t next_colour(int i) { static apa10xx_pixel_t next_color(int i) { apa10xx_pixel_t colour; colour.global.mod = 8; - colour.r = i & 1 ? 32 : 0; - colour.g = i & 2 ? 32 : 0; - colour.b = i & 4 ? 32 : 0; + colour.r = 16; + colour.g = 16; + colour.b = 16; return colour; } @@ -229,16 +226,20 @@ extern "C" void signal_led(bool state) { fiatlux::signal::write_data(state); } +extern "C" void white_led(bool state) { + gpio_write(signal_led_pin, !state); +} + /* This task uses the high level GPIO API (esp_gpio.h) to blink an LED. * */ extern "C" [[noreturn]] void lux_task(void *pvParameters) { - int32_t lux_ws2812_number = 8; + int32_t lux_ws2812_number = 40; auto ret = sysparam_get_int32("lux_ws2812_number", &lux_ws2812_number); if(ret != SYSPARAM_OK) - lux_ws2812_number = 8; + lux_ws2812_number = 40; int32_t lux_apa10xx_number = 40; ret = sysparam_get_int32("lux_apa10xx_number", &lux_apa10xx_number); diff --git a/firmware/web.cpp b/firmware/web.cpp index 1e182d0..0e3c7fd 100644 --- a/firmware/web.cpp +++ b/firmware/web.cpp @@ -291,6 +291,18 @@ void websocket_cb(struct tcp_pcb *pcb, char *data, u16_t data_len, ret = OK; val = 0; break; + case 'd': // Disable LED + signal_led(false); + cmd = 'G'; + ret = OK; + val = 1; + break; + case 'e': // Enable LED + signal_led(true); + cmd = 'G'; + ret = OK; + val = 0; + break; case 'F': togl = !togl; signal_led(togl); diff --git a/firmware/webdir/index.html b/firmware/webdir/index.html index 0b4bac1..41d3897 100644 --- a/firmware/webdir/index.html +++ b/firmware/webdir/index.html @@ -301,6 +301,10 @@ toggle signal led + @@ -446,6 +450,13 @@ wsWrite('D'); } + function leds() { + if (document.getElementById('white-switch').checked) + wsWrite('e'); + else + wsWrite('d'); + } + window.onload = function () { wsOpen(); startPolling();