LED state module
The LED state module is used to set LED effects based on the Bluetooth® peer state and the system state.
Controlled LEDs
The module controls LEDs defined by enumerators in led_id
:
LED_ID_SYSTEM_STATE
- Shows the system state. The system can be in one of the following states:LED_SYSTEM_STATE_IDLE
- Device is not being charged.LED_SYSTEM_STATE_CHARGING
- Device is being charged.LED_SYSTEM_STATE_ERROR
- Fatal application error occurred (a module reported error state or battery state error was reported).
LED_ID_PEER_STATE
- Shows the Bluetooth peer state. The Bluetooth peer can be in one of the following states:LED_PEER_STATE_DISCONNECTED
- Bluetooth peer is disconnected.LED_PEER_STATE_CONNECTED
- Bluetooth peer is connected.LED_PEER_STATE_PEER_SEARCH
- Device is looking for a peer, either by scanning or advertising.LED_PEER_STATE_CONFIRM_SELECT
- Bluetooth peer is being selected (the device is waiting for confirmation).LED_PEER_STATE_CONFIRM_ERASE
- Device is waiting for user confirmation to erase peers (for Bluetooth® Central) or start erase advertising (for Bluetooth® Peripheral).LED_PEER_STATE_ERASE_ADV
- Device is advertising for peer erase.
For the complete description of peer management, see Bluetooth LE bond module.
Note
If a configuration does not support Bluetooth (CONFIG_CAF_BLE_COMMON_EVENTS
is disabled), the Bluetooth peer state will not be notified.
In that case, the Bluetooth peer state LED is set only once during the boot.
The set LED effect represents LED_PEER_STATE_DISCONNECTED
state for the default peer.
Module events
Source Module |
Input Event |
This Module |
Output Event |
Sink Module |
---|---|---|---|---|
|
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
Note
See the Application overview for more information about the event-based communication in the nRF Desktop application and about how to read this table.
Configuration
The LED state module is enabled when you set the CONFIG_CAF_LEDS
option.
You must also configure CAF: LEDs module, which is used as a sink module for led_state
.
For every board that has this option enabled, you must define the module configuration.
The configuration must be defined in the file named CONFIG_DESKTOP_LED_STATE_DEF_PATH located in the board-specific directory in the application configuration directory.
By default, the file is named as led_state_def.h
.
The configuration consists of the following elements:
led_map
- Maps theled_id
values to IDs used by CAF: LEDs module. If no physical LED is assigned to aled_id
value, assignLED_UNAVAILABLE
as the ID used by CAF: LEDs module.led_system_state_effect
- Defines the LED effects used to show the system states. The effect must be defined for every system state.led_peer_state_effect
- Defines the LED effects used to show the Bluetooth peer states. The effect must be defined for every state of every peer.
The LED effects are defined in the caf/led_effect.h
file in the common configuration directory.