Pico Led Controller 1.0.3
A project to control LEDs using Raspberry Pi Pico W
Loading...
Searching...
No Matches
light_state.h File Reference
#include <stdio.h>
#include <pico/stdlib.h>
#include "urgb.h"
#include "ws2812b.h"

Go to the source code of this file.

Data Structures

struct  light_state_t
 Light state struct. More...
 

Macros

#define NUM_PIXELS   120
 
#define NUM_LIGHT_MODES   8
 
#define NUM_LIGHT_COLORS   11
 

Enumerations

enum  light_modes {
  MODE_RAINBOW_WHEEL , MODE_RAINBOW_CYCLE , MODE_STATIC , MODE_BREATHING ,
  MODE_FLASHING , MODE_LOADING , MODE_WAVE , MODE_FADE
}
 Light modes enum. More...
 
enum  light_colors {
  COLOR_RED , COLOR_GREEN , COLOR_BLUE , COLOR_CYAN ,
  COLOR_YELLOW , COLOR_MAGENTA , COLOR_PURPLE , COLOR_ORANGE ,
  COLOR_TURQUOISE , COLOR_PINK , COLOR_WHITE
}
 Light colors enum. More...
 

Functions

void toggle_light_state ()
 Toggle light state.
 
void toggle_light_mode ()
 Toggle light mode.
 
void toggle_light_color ()
 Toggle light color.
 
void set_light_mode (enum light_modes mode)
 Set light mode.
 
void set_light_color (enum light_colors color)
 Set light color.
 
uint32_t get_current_color ()
 Get current color.
 

Variables

volatile struct light_state_t light_state
 Light state.
 

Macro Definition Documentation

◆ NUM_LIGHT_COLORS

#define NUM_LIGHT_COLORS   11

Definition at line 6 of file light_state.h.

◆ NUM_LIGHT_MODES

#define NUM_LIGHT_MODES   8

Definition at line 5 of file light_state.h.

◆ NUM_PIXELS

#define NUM_PIXELS   120

Definition at line 4 of file light_state.h.

Enumeration Type Documentation

◆ light_colors

Light colors enum.

Enum for the light colors.

Enumerator
COLOR_RED 
COLOR_GREEN 
COLOR_BLUE 
COLOR_CYAN 
COLOR_YELLOW 
COLOR_MAGENTA 
COLOR_PURPLE 
COLOR_ORANGE 
COLOR_TURQUOISE 
COLOR_PINK 
COLOR_WHITE 

Definition at line 32 of file light_state.h.

33{
45};
@ COLOR_ORANGE
Definition light_state.h:41
@ COLOR_BLUE
Definition light_state.h:36
@ COLOR_PINK
Definition light_state.h:43
@ COLOR_PURPLE
Definition light_state.h:40
@ COLOR_TURQUOISE
Definition light_state.h:42
@ COLOR_MAGENTA
Definition light_state.h:39
@ COLOR_RED
Definition light_state.h:34
@ COLOR_CYAN
Definition light_state.h:37
@ COLOR_YELLOW
Definition light_state.h:38
@ COLOR_GREEN
Definition light_state.h:35
@ COLOR_WHITE
Definition light_state.h:44

◆ light_modes

Light modes enum.

Enum for the light modes.

Enumerator
MODE_RAINBOW_WHEEL 
MODE_RAINBOW_CYCLE 
MODE_STATIC 
MODE_BREATHING 
MODE_FLASHING 
MODE_LOADING 
MODE_WAVE 
MODE_FADE 

Definition at line 17 of file light_state.h.

18{
27};
@ MODE_RAINBOW_CYCLE
Definition light_state.h:20
@ MODE_FLASHING
Definition light_state.h:23
@ MODE_LOADING
Definition light_state.h:24
@ MODE_WAVE
Definition light_state.h:25
@ MODE_BREATHING
Definition light_state.h:22
@ MODE_STATIC
Definition light_state.h:21
@ MODE_RAINBOW_WHEEL
Definition light_state.h:19
@ MODE_FADE
Definition light_state.h:26

Function Documentation

◆ get_current_color()

uint32_t get_current_color ( )

Get current color.

Function gets the current color.

Returns
current color in RGB format

Definition at line 116 of file light_state.c.

117{
118 switch (light_state.color)
119 {
120 case COLOR_RED:
122 case COLOR_GREEN:
124 case COLOR_BLUE:
126 case COLOR_WHITE:
128 case COLOR_PURPLE:
130 case COLOR_YELLOW:
132 case COLOR_CYAN:
134 case COLOR_ORANGE:
136 case COLOR_PINK:
138 case COLOR_TURQUOISE:
140 case COLOR_MAGENTA:
142 default:
143 return 0;
144 }
145}
volatile struct light_state_t light_state
Light state.
Definition light_state.c:8
uint8_t brightness
Definition light_state.h:59
enum light_colors color
Definition light_state.h:62
uint32_t get_purple(uint8_t brightness)
Get purple color.
Definition ws2812b.c:50
uint32_t get_yellow(uint8_t brightness)
Get yellow color.
Definition ws2812b.c:55
uint32_t get_red(uint8_t brightness)
Get red color.
Definition ws2812b.c:30
uint32_t get_white(uint8_t brightness)
Get white color.
Definition ws2812b.c:45
uint32_t get_green(uint8_t brightness)
Get green color.
Definition ws2812b.c:35
uint32_t get_pink(uint8_t brightness)
Get pink color.
Definition ws2812b.c:70
uint32_t get_blue(uint8_t brightness)
Get blue color.
Definition ws2812b.c:40
uint32_t get_cyan(uint8_t brightness)
Get cyan color.
Definition ws2812b.c:60
uint32_t get_orange(uint8_t brightness)
Get orange color.
Definition ws2812b.c:65
uint32_t get_magenta(uint8_t brightness)
Get magenta color.
Definition ws2812b.c:80
uint32_t get_turquoise(uint8_t brightness)
Get turquoise color.
Definition ws2812b.c:75

References light_state_t::brightness, light_state_t::color, COLOR_BLUE, COLOR_CYAN, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PINK, COLOR_PURPLE, COLOR_RED, COLOR_TURQUOISE, COLOR_WHITE, COLOR_YELLOW, get_blue(), get_cyan(), get_green(), get_magenta(), get_orange(), get_pink(), get_purple(), get_red(), get_turquoise(), get_white(), get_yellow(), and light_state.

Referenced by run_loop().

◆ set_light_color()

void set_light_color ( enum light_colors  color)

Set light color.

Function sets the light mode to the specified color.

Parameters
colorcolor

Definition at line 68 of file light_state.c.

69{
70 light_state.color = color;
72 return;
74 {
75 switch (color)
76 {
77 case COLOR_RED:
79 break;
80 case COLOR_GREEN:
82 break;
83 case COLOR_BLUE:
85 break;
86 case COLOR_WHITE:
88 break;
89 case COLOR_PURPLE:
91 break;
92 case COLOR_YELLOW:
94 break;
95 case COLOR_CYAN:
97 break;
98 case COLOR_ORANGE:
100 break;
101 case COLOR_PINK:
103 break;
104 case COLOR_TURQUOISE:
106 break;
107 case COLOR_MAGENTA:
109 break;
110 default:
111 break;
112 }
113 }
114}
#define NUM_PIXELS
Definition light_state.h:4
enum light_modes light_mode
Definition light_state.h:61
void set_all_cyan(uint32_t len, uint8_t brightness)
Set all leds cyan.
Definition ws2812b.c:121
void set_all_orange(uint32_t len, uint8_t brightness)
Set all leds orange.
Definition ws2812b.c:127
void set_all_pink(uint32_t len, uint8_t brightness)
Set all leds pink.
Definition ws2812b.c:133
void set_all_blue(uint32_t len, uint8_t brightness)
Set all leds to blue.
Definition ws2812b.c:97
void set_all_turquoise(uint32_t len, uint8_t brightness)
Set all leds turquoise.
Definition ws2812b.c:139
void set_all_magenta(uint32_t len, uint8_t brightness)
Set all leds magenta.
Definition ws2812b.c:145
void set_all_white(uint32_t len, uint8_t brightness)
Set all leds to white.
Definition ws2812b.c:103
void set_all_yellow(uint32_t len, uint8_t brightness)
Set all leds yellow.
Definition ws2812b.c:115
void set_all_green(uint32_t len, uint8_t brightness)
Set all leds to green.
Definition ws2812b.c:91
void set_all_red(uint32_t len, uint8_t brightness)
Set all leds to red.
Definition ws2812b.c:85
void set_all_purple(uint32_t len, uint8_t brightness)
Set all leds purple.
Definition ws2812b.c:109

References light_state_t::brightness, light_state_t::color, COLOR_BLUE, COLOR_CYAN, COLOR_GREEN, COLOR_MAGENTA, COLOR_ORANGE, COLOR_PINK, COLOR_PURPLE, COLOR_RED, COLOR_TURQUOISE, COLOR_WHITE, COLOR_YELLOW, light_state_t::light_mode, light_state, MODE_STATIC, NUM_PIXELS, set_all_blue(), set_all_cyan(), set_all_green(), set_all_magenta(), set_all_orange(), set_all_pink(), set_all_purple(), set_all_red(), set_all_turquoise(), set_all_white(), set_all_yellow(), and light_state_t::state.

Referenced by cgi_led_brightness_handler(), cgi_led_color_handler(), set_light_mode(), and toggle_light_color().

◆ set_light_mode()

void set_light_mode ( enum light_modes  mode)

Set light mode.

Function sets the light mode to the specified mode.

Parameters
modemode

Definition at line 31 of file light_state.c.

32{
35 return;
36 switch (mode)
37 {
39 printf("Setting rainbow wheel mode\n");
40 break;
42 printf("Setting rainbow cycle mode\n");
43 break;
44 case MODE_STATIC:
45 printf("Setting static mode\n");
47 break;
48 case MODE_BREATHING:
49 printf("Setting breathing mode\n");
50 break;
51 case MODE_FLASHING:
52 printf("Setting flashing mode\n");
53 break;
54 case MODE_LOADING:
55 printf("Setting loading mode\n");
56 break;
57 case MODE_WAVE:
58 printf("Setting wave mode\n");
59 break;
60 case MODE_FADE:
61 printf("Setting fade mode\n");
62 break;
63 default:
64 break;
65 }
66}
void set_light_color(enum light_colors color)
Set light color.
Definition light_state.c:68

References light_state_t::brightness, light_state_t::color, light_state_t::light_mode, light_state, MODE_BREATHING, MODE_FADE, MODE_FLASHING, MODE_LOADING, MODE_RAINBOW_CYCLE, MODE_RAINBOW_WHEEL, MODE_STATIC, MODE_WAVE, set_light_color(), and light_state_t::state.

Referenced by cgi_led_mode_handler(), toggle_light_mode(), and toggle_light_state().

◆ toggle_light_color()

void toggle_light_color ( )

Toggle light color.

Function toggles the light color iterating through the light colors.

Definition at line 25 of file light_state.c.

References light_state_t::color, light_state, NUM_LIGHT_COLORS, and set_light_color().

◆ toggle_light_mode()

void toggle_light_mode ( )

Toggle light mode.

Function toggles the light mode iterating through the light modes.

Definition at line 19 of file light_state.c.

20{
23}
void set_light_mode(enum light_modes mode)
Set light mode.
Definition light_state.c:31
#define NUM_LIGHT_MODES
Definition light_state.h:5

References light_state_t::light_mode, light_state, NUM_LIGHT_MODES, and set_light_mode().

Referenced by run_loop().

◆ toggle_light_state()

void toggle_light_state ( )

Toggle light state.

Function toggles on/off the light state.

Definition at line 10 of file light_state.c.

11{
15 else
17}
void turn_off_all(uint32_t len)
Turn off all leds.
Definition ws2812b.c:23

References light_state_t::brightness, light_state_t::light_mode, light_state, NUM_PIXELS, set_light_mode(), light_state_t::state, and turn_off_all().

Referenced by cgi_led_handler(), led_blink(), and run_loop().

Variable Documentation

◆ light_state