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);
39 const 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_favicon_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI favicon 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_led_mode_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED mode handler.
const char * cgi_led_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI LED handler.
const char * cgi_timestamp_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI timestamp handler.
const char * cgi_m_icon_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI m icon 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.
void cgi_init()
Initialize CGI handlers.
const char * cgi_manifest_handler(int iIndex, int iNumParams, char *pcParam[], char *pcValue[])
CGI manifest handler.
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.