5#include "lwip/apps/httpd.h" 
    6#include "pico/cyw43_arch.h" 
    7#include "hardware/adc.h" 
   14    printf(
"Handling onboard LED request\n");
 
   15    for (
int i = 0; i < iNumParams; ++i)
 
   17        if (!strcmp(pcParam[i], 
"toggle"))
 
   19            printf(
"Toggling onboard LED\n");
 
   20            cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, !cyw43_arch_gpio_get(CYW43_WL_GPIO_LED_PIN));
 
   23        else if (!strcmp(pcParam[i], 
"on"))
 
   25            printf(
"Turning onboard LED on\n");
 
   26            cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
 
   29        else if (!strcmp(pcParam[i], 
"off"))
 
   31            printf(
"Turning onboard LED off\n");
 
   32            cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
 
 
   39const char* 
cgi_led_handler(
int iIndex, 
int iNumParams, 
char* pcParam[], 
char* pcValue[])
 
   41    printf(
"Handling LED request\n");
 
   42    for (
int i = 0; i < iNumParams; ++i)
 
   44        if (!strcmp(pcParam[i], 
"toggle"))
 
   46            printf(
"Toggling LED strip\n");
 
   52        else if (!strcmp(pcParam[i], 
"on"))
 
   54            printf(
"Turning LED strip on\n");
 
   58        else if (!strcmp(pcParam[i], 
"off"))
 
   60            printf(
"Turning LED strip off\n");
 
 
   71    printf(
"Handling mode request\n");
 
   72    for (
int i = 0; i < iNumParams; ++i)
 
   74        if (!strcmp(pcParam[i], 
"rainbow-wheel"))
 
   76            printf(
"Setting rainbow wheel mode\n");
 
   81        else if (!strcmp(pcParam[i], 
"rainbow-cycle"))
 
   83            printf(
"Setting rainbow cycle mode\n");
 
   88        else if (!strcmp(pcParam[i], 
"static"))
 
   90            printf(
"Setting static mode\n");
 
   95        else if (!strcmp(pcParam[i], 
"breathing"))
 
   97            printf(
"Setting breathing mode\n");
 
  102        else if (!strcmp(pcParam[i], 
"flashing"))
 
  104            printf(
"Setting flashing mode\n");
 
  109        else if (!strcmp(pcParam[i], 
"loading"))
 
  111            printf(
"Setting loading mode\n");
 
  116        else if (!strcmp(pcParam[i], 
"wave"))
 
  118            printf(
"Setting wave mode\n");
 
  123        else if (!strcmp(pcParam[i], 
"fade"))
 
  125            printf(
"Setting fade mode\n");
 
  131    return "/index.html";
 
 
  136    printf(
"Handling color request\n");
 
  137    for (
int i = 0; i < iNumParams; ++i)
 
  139        if (!strcmp(pcParam[i], 
"red"))
 
  141            printf(
"Setting red mode\n");
 
  146        else if (!strcmp(pcParam[i], 
"green"))
 
  148            printf(
"Setting green mode\n");
 
  153        else if (!strcmp(pcParam[i], 
"blue"))
 
  155            printf(
"Setting blue mode\n");
 
  160        else if (!strcmp(pcParam[i], 
"cyan"))
 
  162            printf(
"Setting cyan mode\n");
 
  167        else if (!strcmp(pcParam[i], 
"yellow"))
 
  169            printf(
"Setting yellow mode\n");
 
  174        else if (!strcmp(pcParam[i], 
"magenta"))
 
  176            printf(
"Setting magenta mode\n");
 
  181        else if (!strcmp(pcParam[i], 
"purple"))
 
  183            printf(
"Setting purple mode\n");
 
  188        else if (!strcmp(pcParam[i], 
"pink"))
 
  190            printf(
"Setting pink mode\n");
 
  195        else if (!strcmp(pcParam[i], 
"orange"))
 
  197            printf(
"Setting orange mode\n");
 
  202        else if (!strcmp(pcParam[i], 
"turquoise"))
 
  204            printf(
"Setting turquoise mode\n");
 
  209        else if (!strcmp(pcParam[i], 
"white"))
 
  211            printf(
"Setting white mode\n");
 
  217    return "/index.html";
 
 
  222    printf(
"Handling brightness request\n");
 
  223    for (
int i = 0; i < iNumParams; ++i)
 
  225        int brightness = atoi(pcParam[i]);
 
  226        if (brightness < 0 || brightness > 100)
 
  227            printf(
"Invalid brightness value\n");
 
  230            printf(
"Setting brightness to %d\n", brightness);
 
  231            int scaled_brightness = 0;
 
  238            else if (brightness == 100)
 
  240                scaled_brightness = 255;
 
  246                scaled_brightness = (int)(brightness * 255.0 / 100.0) + 1;
 
  247                if (scaled_brightness > 255)
 
  248                    scaled_brightness = 255;
 
  256    return "/index.html";
 
 
  261    printf(
"Handling favicon request\n");
 
  262    return "/favicon.ico";
 
 
  267    printf(
"Handling m.png\n");
 
 
  273    printf(
"Handling manifest request\n");
 
  274    return "/manifest.json";
 
 
  279    printf(
"Handling data request\n");
 
  280    return "/data.shtml";
 
 
  285    printf(
"Handling start timestamp request\n");
 
  286    return "/timestamp.shtml";
 
 
const char * cgi_led_mode_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED mode handler.
const char * cgi_led_brightness_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED strip brightness handler.
const char * cgi_onboard_led_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI onboard LED handler.
const char * cgi_timestamp_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI timestamp handler.
const char * cgi_data_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI data handler.
const char * cgi_led_color_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED color handler.
const char * cgi_manifest_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI manifest handler.
const char * cgi_m_icon_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI m icon handler.
const char * cgi_favicon_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI favicon handler.
const char * cgi_led_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED handler.
void cgi_init()
Initialize CGI handlers.
static const tCGI cgi_handlers[]
CGI handlers.
void toggle_light_state()
Toggle light state.
void set_light_mode(enum light_modes mode)
Set light mode.
void set_light_color(enum light_colors color)
Set light color.
volatile struct light_state_t light_state
Light state.
uint8_t previous_brightness
enum light_modes light_mode
void turn_off_all(uint32_t len)
Turn off all leds.