| nRF5 SDK v12.0.0 |

Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Modules | Data Structures | Macros | Typedefs | Enumerations | Functions
Nordic UART Service Client
BLE Services

Nordic UART Service Client module. More...

## Modules
| Nordic UART Central Service configuration

## Data Structures
struct | ble_nus_c_handles_t
| Handles on the connected peer device needed to interact with it. More...
struct | ble_nus_c_evt_t
| Structure containing the NUS event data received from the peer. More...
struct | ble_nus_c_s
| NUS Client structure. More...
struct | ble_nus_c_init_t
| NUS Client initialization structure. More...

## Macros
#define | NUS_BASE_UUID {{0x9E, 0xCA, 0xDC, 0x24, 0x0E, 0xE5, 0xA9, 0xE0, 0x93, 0xF3, 0xA3, 0xB5, 0x00, 0x00, 0x40, 0x6E}}
#define | BLE_UUID_NUS_SERVICE 0x0001
#define | BLE_UUID_NUS_TX_CHARACTERISTIC 0x0002
#define | BLE_UUID_NUS_RX_CHARACTERISTIC 0x0003
#define | BLE_NUS_MAX_DATA_LEN (GATT_MTU_SIZE_DEFAULT - 3)

## Typedefs
typedef struct ble_nus_c_s | ble_nus_c_t
typedef void(* | ble_nus_c_evt_handler_t )(ble_nus_c_t *p_ble_nus_c, const ble_nus_c_evt_t *p_evt)
| Event handler type. More...

## Enumerations
enum | ble_nus_c_evt_type_t { BLE_NUS_C_EVT_DISCOVERY_COMPLETE = 1, BLE_NUS_C_EVT_NUS_RX_EVT, BLE_NUS_C_EVT_DISCONNECTED }
| NUS Client event type. More...

## Functions
uint32_t | ble_nus_c_init (ble_nus_c_t *p_ble_nus_c, ble_nus_c_init_t *p_ble_nus_c_init)
| Function for initializing the Nordic UART client module. More...
void | ble_nus_c_on_db_disc_evt (ble_nus_c_t *p_ble_nus_c, ble_db_discovery_evt_t *p_evt)
| Function for handling events from the database discovery module. More...
void | ble_nus_c_on_ble_evt (ble_nus_c_t *p_ble_nus_c, const ble_evt_t *p_ble_evt)
| Function for handling BLE events from the SoftDevice. More...
uint32_t | ble_nus_c_rx_notif_enable (ble_nus_c_t *p_ble_nus_c)
| Function for requesting the peer to start sending notification of RX characteristic. More...
uint32_t | ble_nus_c_string_send (ble_nus_c_t *p_ble_nus_c, uint8_t *p_string, uint16_t length)
| Function for sending a string to the server. More...
uint32_t | ble_nus_c_handles_assign (ble_nus_c_t *p_ble_nus_c, const uint16_t conn_handle, const ble_nus_c_handles_t *p_peer_handles)
| Function for assigning handles to a this instance of nus_c. More...

## Detailed Description

Nordic UART Service Client module.

This module contains the APIs and types exposed by the Nordic UART Service Client module. These APIs and types can be used by the application to perform discovery of the Nordic UART Service at the peer and interact with it.

Note
  The application must propagate BLE stack events to this module by calling ble_nus_c_on_ble_evt().

## Macro Definition Documentation

#define BLE_NUS_MAX_DATA_LEN (GATT_MTU_SIZE_DEFAULT - 3)

Maximum length of data (in bytes) that can be transmitted to the peer by the Nordic UART service module.

#define BLE_UUID_NUS_RX_CHARACTERISTIC 0x0003

The UUID of the RX Characteristic.

#define BLE_UUID_NUS_SERVICE 0x0001

The UUID of the Nordic UART Service.

#define BLE_UUID_NUS_TX_CHARACTERISTIC 0x0002

The UUID of the TX Characteristic.

#define NUS_BASE_UUID {{0x9E, 0xCA, 0xDC, 0x24, 0x0E, 0xE5, 0xA9, 0xE0, 0x93, 0xF3, 0xA3, 0xB5, 0x00, 0x00, 0x40, 0x6E}}

Used vendor specific UUID.

## Typedef Documentation

typedef void(* ble_nus_c_evt_handler_t)(ble_nus_c_t *p_ble_nus_c, const ble_nus_c_evt_t *p_evt)

Event handler type.

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

## Enumeration Type Documentation

enum ble_nus_c_evt_type_t

NUS Client event type.

Enumerator
BLE_NUS_C_EVT_DISCOVERY_COMPLETE | Event indicating that the NUS service and its characteristics was found.
BLE_NUS_C_EVT_NUS_RX_EVT | Event indicating that the central has received something from a peer.
BLE_NUS_C_EVT_DISCONNECTED | Event indicating that the NUS server has disconnected.

## Function Documentation

uint32_t ble_nus_c_handles_assign | ( | ble_nus_c_t * | p_ble_nus_c,
|  | const uint16_t | conn_handle,
|  | const ble_nus_c_handles_t * | p_peer_handles
| ) |  |

Function for assigning handles to a this instance of nus_c.

Call this function when a link has been established with a peer to associate this link to this instance of the module. This makes it possible to handle several link and associate each link to a particular instance of this module. The connection handle and attribute handles will be provided from the discovery event BLE_NUS_C_EVT_DISCOVERY_COMPLETE.

Parameters

  [in] | p_ble_nus_c | Pointer to the NUS client structure instance to associate with these handles.
  [in] | conn_handle | Connection handle to associated with the given NUS Instance.
  [in] | p_peer_handles | Attribute handles on the NUS server that you want this NUS client to interact with.

Return values

  NRF_SUCCESS | If the operation was successful.
  NRF_ERROR_NULL | If a p_nus was a NULL pointer.

uint32_t ble_nus_c_init | ( | ble_nus_c_t * | p_ble_nus_c,
|  | ble_nus_c_init_t * | p_ble_nus_c_init
| ) |  |

Function for initializing the Nordic UART client module.

This function registers with the Database Discovery module for the NUS. Doing so will make the Database Discovery module look for the presence of a NUS instance at the peer when a discovery is started.

Parameters

  [in] | p_ble_nus_c | Pointer to the NUS client structure.
  [in] | p_ble_nus_c_init | Pointer to the NUS initialization structure containing the initialization information.

Return values

  NRF_SUCCESS | If the module was initialized successfully. Otherwise, an error code is returned. This function propagates the error code returned by the Database Discovery module API ble_db_discovery_evt_register.

void ble_nus_c_on_ble_evt | ( | ble_nus_c_t * | p_ble_nus_c,
|  | const ble_evt_t * | p_ble_evt
| ) |  |

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 NUS module, it is used to update internal variables and, if necessary, send events to the application.

Parameters

  [in] | p_ble_nus_c | Pointer to the NUS client structure.
  [in] | p_ble_evt | Pointer to the BLE event.

void ble_nus_c_on_db_disc_evt | ( | ble_nus_c_t * | p_ble_nus_c,
|  | ble_db_discovery_evt_t * | p_evt
| ) |  |

Function for handling events from the database discovery module.

This function will handle an event from the database discovery module, and determine if it relates to the discovery of NUS at the peer. If so, it will call the application's event handler indicating that NUS has been discovered at the peer. It also populates the event with the service related information before providing it to the application.

Parameters

  [in] | p_ble_nus_c | Pointer to the NUS client structure.
  [in] | p_evt | Pointer to the event received from the database discovery module.

uint32_t ble_nus_c_rx_notif_enable | ( | ble_nus_c_t * | p_ble_nus_c | ) |

Function for requesting the peer to start sending notification of RX characteristic.

This function enables notifications of the NUS RX characteristic at the peer by writing to the CCCD of the NUS RX characteristic.

Parameters

  p_ble_nus_c | Pointer to the NUS client structure.

Return values

  NRF_SUCCESS | If the SoftDevice has been requested to write to the CCCD of the peer. Otherwise, an error code is returned. This function propagates the error code returned by the SoftDevice API sd_ble_gattc_write.

uint32_t ble_nus_c_string_send | ( | ble_nus_c_t * | p_ble_nus_c,
|  | uint8_t * | p_string,
|  | uint16_t | length
| ) |  |

Function for sending a string to the server.

This function writes the TX characteristic of the server.

Parameters

  [in] | p_ble_nus_c | Pointer to the NUS client structure.
  [in] | p_string | String to be sent.
  [in] | length | Length of the string.

Return values

  NRF_SUCCESS | If the string was sent successfully. Otherwise, an error code is returned.