nRF51 SDK - S120 SoftDevice
|
The BLE Button Module provides a dynamic configuration of button actions. It is used in most BLE examples in the SDK.
The application must propagate BLE events to the BLE Button Module. Based on these events, the BLE Button Module configures the Board Support Package to generate BSP events for certain button actions. These BSP events should then be handled by the application's BSP event handler.
For example, when the application is connected, long pressing Button 1 generates the event BSP_EVENT_DISCONNECT. The application's BSP event handler should react to this event by performing a disconnect.
The Board Support Package, configured by the BLE Button Module, generates the following events for button actions:
Current state | Button | Action | Event |
---|---|---|---|
Sleep | 1 | Push | BSP_EVENT_WAKEUP |
Sleep | 2 | Push | BSP_EVENT_CLEAR_BONDING_DATA |
Awake | 2 | Long Push | BSP_EVENT_WHITELIST_OFF |
Connected | 1 | Long push | BSP_EVENT_DISCONNECT |
Not Connected | 1 | Release | BSP_EVENT_SLEEP |
The application is responsible for interpreting and implementing the event actions. The first two events will wake the device from sleep mode. These actions can therefore not be handled by the application's event handler. Instead, they are indicated to the application through the bsp_btn_ble_init function.
When the device is not in a connection, the BLE Button Module assumes full control of all button actions from button 1, in addition to the long push action on all buttons. When the device is connected, the BLE Button Module controls all long push actions, and assigns the default events to the push and release actions of all button 1 so they can be utilized by the application.