nRF5 SDK v17.1.0
Modules | Data Structures | Macros | Typedefs | Enumerations | Functions
LED Button Service Client

The LED Button Service client can be used to set up a LED and read a button state on a LED button service server. More...

Modules

 Nordic LED Button Service Client configuration
 

Data Structures

struct  ble_button_t
 Structure containing the Button value received from the peer. More...
 
struct  lbs_db_t
 Structure containing the handles related to the LED Button Service found on the peer. More...
 
struct  ble_lbs_c_evt_t
 LED Button Event structure. More...
 
struct  ble_lbs_c_s
 LED Button Client structure. More...
 
struct  ble_lbs_c_init_t
 LED Button Client initialization structure. More...
 

Macros

#define BLE_LBS_C_DEF(_name)
 Macro for defining a ble_lbs_c instance. More...
 
#define BLE_LBS_C_ARRAY_DEF(_name, _cnt)
 Macro for defining multiple ble_lbs_c instances. More...
 
#define LBS_UUID_BASE
 
#define LBS_UUID_SERVICE   0x1523
 
#define LBS_UUID_BUTTON_CHAR   0x1524
 
#define LBS_UUID_LED_CHAR   0x1525
 

Typedefs

typedef struct ble_lbs_c_s ble_lbs_c_t
 
typedef void(* ble_lbs_c_evt_handler_t )(ble_lbs_c_t *p_ble_lbs_c, ble_lbs_c_evt_t *p_evt)
 Event handler type. More...
 

Enumerations

enum  ble_lbs_c_evt_type_t {
  BLE_LBS_C_EVT_DISCOVERY_COMPLETE = 1,
  BLE_LBS_C_EVT_BUTTON_NOTIFICATION
}
 LBS Client event type. More...
 

Functions

uint32_t ble_lbs_c_init (ble_lbs_c_t *p_ble_lbs_c, ble_lbs_c_init_t *p_ble_lbs_c_init)
 Function for initializing the LED Button client module. More...
 
void ble_lbs_c_on_ble_evt (ble_evt_t const *p_ble_evt, void *p_context)
 Function for handling BLE events from the SoftDevice. More...
 
uint32_t ble_lbs_c_button_notif_enable (ble_lbs_c_t *p_ble_lbs_c)
 Function for requesting the peer to start sending notification of the Button Characteristic. More...
 
void ble_lbs_on_db_disc_evt (ble_lbs_c_t *p_ble_lbs_c, const ble_db_discovery_evt_t *p_evt)
 Function for handling events from the Database Discovery module. More...
 
uint32_t ble_lbs_c_handles_assign (ble_lbs_c_t *p_ble_lbs_c, uint16_t conn_handle, const lbs_db_t *p_peer_handles)
 Function for assigning handles to this instance of lbs_c. More...
 
uint32_t ble_lbs_led_status_send (ble_lbs_c_t *p_ble_lbs_c, uint8_t status)
 Function for writing the LED status to the connected server. More...
 

Detailed Description

The LED Button Service client can be used to set up a LED and read a button state on a LED button service server.

This module contains the APIs and types exposed by the LED Button Service Client module. The application can use these APIs and types to perform the discovery of LED Button Service at the peer and to interact with it.

Note
The application must register this module as the BLE event observer by using the NRF_SDH_BLE_OBSERVER macro. Example:

Macro Definition Documentation

#define BLE_LBS_C_ARRAY_DEF (   _name,
  _cnt 
)
Value:
static ble_lbs_c_t _name[_cnt]; \
NRF_SDH_BLE_OBSERVERS(_name ## _obs, \
ble_lbs_c_on_ble_evt, &_name, _cnt)

Macro for defining multiple ble_lbs_c instances.

Parameters
_nameName of the array of instances.
_cntNumber of instances to define.
#define BLE_LBS_C_DEF (   _name)

Macro for defining a ble_lbs_c instance.

Parameters
_nameName of the instance.
#define LBS_UUID_BASE
Value:
{0x23, 0xD1, 0xBC, 0xEA, 0x5F, 0x78, 0x23, 0x15, \
0xDE, 0xEF, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00}

Typedef Documentation

typedef void(* ble_lbs_c_evt_handler_t)(ble_lbs_c_t *p_ble_lbs_c, ble_lbs_c_evt_t *p_evt)

Event handler type.

This is the type of the event handler that is to be provided by the application of this module in order to receive events.

Enumeration Type Documentation

LBS Client event type.

Enumerator
BLE_LBS_C_EVT_DISCOVERY_COMPLETE 

Event indicating that the LED Button Service was discovered at the peer.

BLE_LBS_C_EVT_BUTTON_NOTIFICATION 

Event indicating that a notification of the LED Button Button characteristic was received from the peer.

Function Documentation

uint32_t ble_lbs_c_button_notif_enable ( ble_lbs_c_t p_ble_lbs_c)

Function for requesting the peer to start sending notification of the Button Characteristic.

This function enables to notification of the Button at the peer by writing to the CCCD of the Button characteristic.

Parameters
[in]p_ble_lbs_cPointer to the LED Button Client structure.
Return values
NRF_SUCCESSIf the SoftDevice has been requested to write to the CCCD of the peer.
NRF_ERROR_INVALID_STATEIf no connection handle has been assigned (ble_lbs_c_handles_assign).
NRF_ERROR_NULLIf the given parameter is NULL.
err_codeOtherwise, this API propagates the error code returned by function nrf_ble_gq_item_add.
uint32_t ble_lbs_c_handles_assign ( ble_lbs_c_t p_ble_lbs_c,
uint16_t  conn_handle,
const lbs_db_t p_peer_handles 
)

Function for assigning handles to this instance of lbs_c.

Call this function when a link has been established with a peer to associate the link to this instance of the module. This makes it possible to handle several links and associate each link to a particular instance of this module.

Parameters
[in]p_ble_lbs_cPointer to the LED Button client structure instance for associating the link.
[in]conn_handleConnection handle to associate with the given LED Button Client Instance.
[in]p_peer_handlesLED Button Service handles found on the peer (from BLE_LBS_C_EVT_DISCOVERY_COMPLETE event).
Return values
NRF_SUCCESSIf the status was sent successfully.
err_codeOtherwise, this API propagates the error code returned by function nrf_ble_gq_item_add.
uint32_t ble_lbs_c_init ( ble_lbs_c_t p_ble_lbs_c,
ble_lbs_c_init_t p_ble_lbs_c_init 
)

Function for initializing the LED Button client module.

This function registers with the Database Discovery module for the LED Button Service. The module looks for the presence of a LED Button Service instance at the peer when a discovery is started.

Parameters
[in]p_ble_lbs_cPointer to the LED Button client structure.
[in]p_ble_lbs_c_initPointer to the LED Button initialization structure that contains the initialization information.
Return values
NRF_SUCCESSOn successful initialization.
err_codeOtherwise, this function propagates the error code returned by the Database Discovery module API ble_db_discovery_evt_register.
void ble_lbs_c_on_ble_evt ( ble_evt_t const *  p_ble_evt,
void *  p_context 
)

Function for handling BLE events from the SoftDevice.

This function handles the BLE events received from the SoftDevice. If a BLE event is relevant to the LED Button Client module, the function uses the event's data to update interval variables and, if necessary, send events to the application.

Parameters
[in]p_ble_evtPointer to the BLE event.
[in]p_contextPointer to the LED button client structure.
uint32_t ble_lbs_led_status_send ( ble_lbs_c_t p_ble_lbs_c,
uint8_t  status 
)

Function for writing the LED status to the connected server.

Parameters
[in]p_ble_lbs_cPointer to the LED Button client structure.
[in]statusLED status to send.
Return values
NRF_SUCCESSIf the status was sent successfully.
err_codeOtherwise, this API propagates the error code returned by function nrf_ble_gq_conn_handle_register.
void ble_lbs_on_db_disc_evt ( ble_lbs_c_t p_ble_lbs_c,
const ble_db_discovery_evt_t p_evt 
)

Function for handling events from the Database Discovery module.

Call this function when you get a callback event from the Database Discovery module. This function handles an event from the Database Discovery module, and determines whether it relates to the discovery of LED Button service at the peer. If it does, this function calls the application's event handler to indicate that the LED Button service was discovered at the peer. The function also populates the event with service-related information before providing it to the application.

Parameters
[in]p_ble_lbs_cPointer to the LED Button client structure.
[in]p_evtPointer to the event received from the Database Discovery module.

Documentation feedback | Developer Zone | Subscribe | Updated