nRF5 SDK v16.0.0
Modules | Data Structures | Macros | Typedefs | Enumerations | Functions
Nordic UART Service

Nordic UART Service implementation. More...


 Nordic UART Service configuration

Data Structures

struct  ble_nus_evt_rx_data_t
 Nordic UART Service BLE_NUS_EVT_RX_DATA event data. More...
struct  ble_nus_client_context_t
 Nordic UART Service client context structure. More...
struct  ble_nus_evt_t
 Nordic UART Service event structure. More...
struct  ble_nus_init_t
 Nordic UART Service initialization structure. More...
struct  ble_nus_s
 Nordic UART Service structure. More...


#define BLE_NUS_DEF(_name, _nus_max_clients)
 Macro for defining a ble_nus instance. More...
#define BLE_UUID_NUS_SERVICE   0x0001
#define OPCODE_LENGTH   1
#define HANDLE_LENGTH   2
 Maximum length of data (in bytes) that can be transmitted to the peer by the Nordic UART service module.


typedef struct ble_nus_s ble_nus_t
typedef void(* ble_nus_data_handler_t )(ble_nus_evt_t *p_evt)
 Nordic UART Service event handler type.


enum  ble_nus_evt_type_t {
 Nordic UART Service event types. More...


uint32_t ble_nus_init (ble_nus_t *p_nus, ble_nus_init_t const *p_nus_init)
 Function for initializing the Nordic UART Service. More...
void ble_nus_on_ble_evt (ble_evt_t const *p_ble_evt, void *p_context)
 Function for handling the Nordic UART Service's BLE events. More...
uint32_t ble_nus_data_send (ble_nus_t *p_nus, uint8_t *p_data, uint16_t *p_length, uint16_t conn_handle)
 Function for sending a data to the peer. More...

Detailed Description

Nordic UART Service implementation.

The Nordic UART Service is a simple GATT-based service with TX and RX characteristics. Data received from the peer is passed to the application, and the data received from the application of this service is sent to the peer as Handle Value Notifications. This module demonstrates how to implement a custom GATT-based service and characteristics using the SoftDevice. The service is used by the application to send and receive ASCII text strings to and from the peer.

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

Macro Definition Documentation

#define BLE_NUS_DEF (   _name,

Macro for defining a ble_nus instance.

_nameName of the instance.
[in]_nus_max_clientsMaximum number of NUS clients connected at a time.
#define BLE_UUID_NUS_SERVICE   0x0001

The UUID of the Nordic UART Service.

Enumeration Type Documentation

Nordic UART Service event types.


Data received.


Service is ready to accept new data to be transmitted.


Notification has been enabled.


Notification has been disabled.

Function Documentation

uint32_t ble_nus_data_send ( ble_nus_t p_nus,
uint8_t *  p_data,
uint16_t *  p_length,
uint16_t  conn_handle 

Function for sending a data to the peer.

This function sends the input string as an RX characteristic notification to the peer.

[in]p_nusPointer to the Nordic UART Service structure.
[in]p_dataString to be sent.
[in,out]p_lengthPointer Length of the string. Amount of sent bytes.
[in]conn_handleConnection Handle of the destination client.
Return values
NRF_SUCCESSIf the string was sent successfully. Otherwise, an error code is returned.
uint32_t ble_nus_init ( ble_nus_t p_nus,
ble_nus_init_t const *  p_nus_init 

Function for initializing the Nordic UART Service.

[out]p_nusNordic UART Service structure. This structure must be supplied by the application. It is initialized by this function and will later be used to identify this particular service instance.
[in]p_nus_initInformation needed to initialize the service.
Return values
NRF_SUCCESSIf the service was successfully initialized. Otherwise, an error code is returned.
NRF_ERROR_NULLIf either of the pointers p_nus or p_nus_init is NULL.
void ble_nus_on_ble_evt ( ble_evt_t const *  p_ble_evt,
void *  p_context 

Function for handling the Nordic UART Service's BLE events.

The Nordic UART Service expects the application to call this function each time an event is received from the SoftDevice. This function processes the event if it is relevant and calls the Nordic UART Service event handler of the application if necessary.

[in]p_ble_evtEvent received from the SoftDevice.
[in]p_contextNordic UART Service structure.

Documentation feedback | Developer Zone | Subscribe | Updated