LED¶
Overview¶
The LED API provides access to Light Emitting Diodes, both in individual and stip form.
API Reference¶
LED¶
-
group
led_interface
LED Interface.
Typedefs
-
typedef int (*
led_api_blink
)(const struct device *dev, uint32_t led, uint32_t delay_on, uint32_t delay_off)¶ Callback API for blinking an LED.
- See
led_blink() for argument descriptions.
-
typedef int (*
led_api_get_info
)(const struct device *dev, uint32_t led, const struct led_info **info)¶ Optional API callback to get LED information.
- See
led_get_info() for argument descriptions.
-
typedef int (*
led_api_set_brightness
)(const struct device *dev, uint32_t led, uint8_t value)¶ Callback API for setting brightness of an LED.
- See
led_set_brightness() for argument descriptions.
-
typedef int (*
led_api_set_color
)(const struct device *dev, uint32_t led, uint8_t num_colors, const uint8_t *color)¶ Optional API callback to set the colors of a LED.
- See
led_set_color() for argument descriptions.
-
typedef int (*
led_api_on
)(const struct device *dev, uint32_t led)¶ Callback API for turning on an LED.
- See
led_on() for argument descriptions.
-
typedef int (*
led_api_off
)(const struct device *dev, uint32_t led)¶ Callback API for turning off an LED.
- See
led_off() for argument descriptions.
-
typedef int (*
led_api_write_channels
)(const struct device *dev, uint32_t start_channel, uint32_t num_channels, const uint8_t *buf)¶ Callback API for writing a strip of LED channels.
- See
led_api_write_channels() for arguments descriptions.
Functions
-
int
led_blink
(const struct device *dev, uint32_t led, uint32_t delay_on, uint32_t delay_off)¶ Blink an LED.
This optional routine starts blinking a LED forever with the given time period.
- Return
0 on success, negative on error
- Parameters
dev
: LED deviceled
: LED numberdelay_on
: Time period (in milliseconds) an LED should be ONdelay_off
: Time period (in milliseconds) an LED should be OFF
-
int
led_get_info
(const struct device *dev, uint32_t led, const struct led_info **info)¶ Get LED information.
This optional routine provides information about a LED.
- Return
0 on success, negative on error
- Parameters
dev
: LED deviceled
: LED numberinfo
: Pointer to a pointer filled with LED information
-
int
led_set_brightness
(const struct device *dev, uint32_t led, uint8_t value)¶ Set LED brightness.
This optional routine sets the brightness of a LED to the given value. Calling this function after led_blink() won’t affect blinking.
- Return
0 on success, negative on error
- Parameters
dev
: LED deviceled
: LED numbervalue
: Brightness value to set in percent
-
int
led_write_channels
(const struct device *dev, uint32_t start_channel, uint32_t num_channels, const uint8_t *buf)¶ Write/update a strip of LED channels.
This optional routine writes a strip of LED channels to the given array of levels. Therefore it can be used to configure several LEDs at the same time.
Calling this function after led_blink() won’t affect blinking.
- Return
0 on success, negative on error
- Parameters
dev
: LED devicestart_channel
: Absolute number (i.e. not relative to a LED) of the first channel to update.num_channels
: The number of channels to write/update.buf
: array of values to configure the channels with. num_channels entries must be provided.
-
int
led_set_channel
(const struct device *dev, uint32_t channel, uint8_t value)¶ Set a single LED channel.
This optional routine sets a single LED channel to the given value.
Calling this function after led_blink() won’t affect blinking.
- Return
0 on success, negative on error
- Parameters
dev
: LED devicechannel
: Absolute channel number (i.e. not relative to a LED)value
: Value to configure the channel with
-
int
led_set_color
(const struct device *dev, uint32_t led, uint8_t num_colors, const uint8_t *color)¶ Set LED color.
This routine configures all the color channels of a LED with the given color array.
Calling this function after led_blink() won’t affect blinking.
- Return
0 on success, negative on error
- Parameters
dev
: LED deviceled
: LED numbernum_colors
: Number of colors in the array.color
: Array of colors. It must be ordered following the color mapping of the LED controller. See the the color_mapping member in struct led_info.
-
struct
led_info
¶ - #include <led.h>
LED information structure.
This structure gathers useful information about LED controller.
- Parameters
label
: LED label.num_colors
: Number of colors per LED.index
: Index of the LED on the controller.color_mapping
: Mapping of the LED colors.
-
struct
led_driver_api
¶ - #include <led.h>
LED driver API.
-
typedef int (*
LED Strip¶
-
group
led_strip_interface
LED Strip Interface.
Typedefs
-
typedef int (*
led_api_update_rgb
)(const struct device *dev, struct led_rgb *pixels, size_t num_pixels)¶ Callback API for updating an RGB LED strip.
- See
led_strip_update_rgb() for argument descriptions.
-
typedef int (*
led_api_update_channels
)(const struct device *dev, uint8_t *channels, size_t num_channels)¶ Callback API for updating channels without an RGB interpretation.
- See
led_strip_update_channels() for argument descriptions.
Functions
-
static inline int
led_strip_update_rgb
(const struct device *dev, struct led_rgb *pixels, size_t num_pixels)¶ Update an LED strip made of RGB pixels.
Important: This routine may overwrite pixels.
This routine immediately updates the strip display according to the given pixels array.
- Return
0 on success, negative on error
- Warning
May overwrite pixels
- Parameters
dev
: LED strip devicepixels
: Array of pixel datanum_pixels
: Length of pixels array
-
static inline int
led_strip_update_channels
(const struct device *dev, uint8_t *channels, size_t num_channels)¶ Update an LED strip on a per-channel basis.
Important: This routine may overwrite channels.
This routine immediately updates the strip display according to the given channels array. Each channel byte corresponds to an individually addressable color channel or LED. Channels are updated linearly in strip order.
- Return
0 on success, negative on error
- Warning
May overwrite channels
- Parameters
dev
: LED strip devicechannels
: Array of per-channel datanum_channels
: Length of channels array
-
struct
led_rgb
¶ - #include <led_strip.h>
Color value for a single RGB LED.
Individual strip drivers may ignore lower-order bits if their resolution in any channel is less than a full byte.
-
struct
led_strip_driver_api
¶ - #include <led_strip.h>
LED strip driver API.
This is the mandatory API any LED strip driver needs to expose.
-
typedef int (*