nRF5 SDK  v14.1.0
Choose documentation:
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
GATT module

Module for negotiating and keeping track of GATT connection parameters and updating the data length. More...

Modules

 GATT module configuration
 

Data Structures

struct  nrf_ble_gatt_evt_t
 GATT module event. More...
 
struct  nrf_ble_gatt_link_t
 GATT information for each connection. More...
 
struct  nrf_ble_gatt_s
 GATT structure that contains status information for the GATT module. More...
 

Macros

#define NRF_BLE_GATT_DEF(_name)
 Macro for defining a nrf_ble_gatt instance. More...
 
#define NRF_BLE_GATT_LINK_COUNT   (NRF_SDH_BLE_PERIPHERAL_LINK_COUNT + NRF_SDH_BLE_CENTRAL_LINK_COUNT)
 The maximum number of peripheral and central connections combined. This value is based on what is configured in the SoftDevice handler sdk_config.
 

Typedefs

typedef struct nrf_ble_gatt_s nrf_ble_gatt_t
 
typedef void(* nrf_ble_gatt_evt_handler_t )(nrf_ble_gatt_t *p_gatt, nrf_ble_gatt_evt_t const *p_evt)
 GATT module event handler type. More...
 

Enumerations

enum  nrf_ble_gatt_evt_id_t {
  NRF_BLE_GATT_EVT_ATT_MTU_UPDATED = 0xA77,
  NRF_BLE_GATT_EVT_DATA_LENGTH_UPDATED = 0xDA7A
}
 GATT module event types. More...
 

Functions

ret_code_t nrf_ble_gatt_init (nrf_ble_gatt_t *p_gatt, nrf_ble_gatt_evt_handler_t evt_handler)
 Function for initializing the GATT module. More...
 
ret_code_t nrf_ble_gatt_att_mtu_periph_set (nrf_ble_gatt_t *p_gatt, uint16_t desired_mtu)
 Function for setting the ATT_MTU size for the next connection that is established as peripheral. More...
 
ret_code_t nrf_ble_gatt_att_mtu_central_set (nrf_ble_gatt_t *p_gatt, uint16_t desired_mtu)
 Function for setting the ATT_MTU size for the next connection that is established as central. More...
 
ret_code_t nrf_ble_gatt_data_length_set (nrf_ble_gatt_t *p_gatt, uint16_t conn_handle, uint8_t data_length)
 Function for setting the data length for a connection. More...
 
ret_code_t nrf_ble_gatt_data_length_get (nrf_ble_gatt_t const *p_gatt, uint16_t conn_handle, uint8_t *p_data_length)
 Function for retrieving the data length of a connection. More...
 
void nrf_ble_gatt_on_ble_evt (ble_evt_t const *p_ble_evt, void *p_context)
 Function for handling BLE stack events. More...
 
uint16_t nrf_ble_gatt_eff_mtu_get (nrf_ble_gatt_t const *p_gatt, uint16_t conn_handle)
 Function for getting the current ATT_MTU size for a given connection. More...
 

Detailed Description

Module for negotiating and keeping track of GATT connection parameters and updating the data length.

Macro Definition Documentation

#define NRF_BLE_GATT_DEF (   _name)

Macro for defining a nrf_ble_gatt instance.

Parameters
_nameName of the instance.

Typedef Documentation

typedef void(* nrf_ble_gatt_evt_handler_t)(nrf_ble_gatt_t *p_gatt, nrf_ble_gatt_evt_t const *p_evt)

GATT module event handler type.

The GATT module calls a function of this type when a parameter value is changed.

Enumeration Type Documentation

GATT module event types.

Enumerator
NRF_BLE_GATT_EVT_ATT_MTU_UPDATED 

The ATT_MTU size was updated.

NRF_BLE_GATT_EVT_DATA_LENGTH_UPDATED 

The data length was updated.

Function Documentation

ret_code_t nrf_ble_gatt_att_mtu_central_set ( nrf_ble_gatt_t p_gatt,
uint16_t  desired_mtu 
)

Function for setting the ATT_MTU size for the next connection that is established as central.

Parameters
[in,out]p_gattPointer to the GATT structure.
[in]desired_mtuRequested ATT_MTU size.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_NULLIf p_gatt is NULL.
NRF_ERROR_INVALID_PARAMIf the size of desired_mtu is bigger than NRF_SDH_BLE_GATT_MAX_MTU_SIZE or smaller than BLE_GATT_ATT_MTU_DEFAULT.
ret_code_t nrf_ble_gatt_att_mtu_periph_set ( nrf_ble_gatt_t p_gatt,
uint16_t  desired_mtu 
)

Function for setting the ATT_MTU size for the next connection that is established as peripheral.

Parameters
[in]p_gattPointer to the GATT structure.
[in]desired_mtuRequested ATT_MTU size.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_NULLIf p_gatt is NULL.
NRF_ERROR_INVALID_PARAMIf the size of desired_mtu is bigger than NRF_SDH_BLE_GATT_MAX_MTU_SIZE or smaller than BLE_GATT_ATT_MTU_DEFAULT.
ret_code_t nrf_ble_gatt_data_length_get ( nrf_ble_gatt_t const *  p_gatt,
uint16_t  conn_handle,
uint8_t *  p_data_length 
)

Function for retrieving the data length of a connection.

If conn_handle is BLE_CONN_HANDLE_INVALID, the function retrieves the data length that will be requested for the next connection. If conn_handle is a handle to an existing connection, the function retrieves the effective data length that was negotiated for that connection.

Parameters
[in,out]p_gattPointer to the GATT structure.
[in]conn_handleThe connection for which to retrieve the data length, or BLE_CONN_HANDLE_INVALID to retrieve the requested data length for the next connection.
[out]p_data_lengthThe connection data length.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_NULLIf p_gatt or p_data_length is NULL.
NRF_ERROR_INVALID_PARAMIf conn_handle is larger than NRF_BLE_GATT_LINK_COUNT.
ret_code_t nrf_ble_gatt_data_length_set ( nrf_ble_gatt_t p_gatt,
uint16_t  conn_handle,
uint8_t  data_length 
)

Function for setting the data length for a connection.

If conn_handle is a handle to an existing connection, a data length update request is sent on that connection. If conn_handle is BLE_CONN_HANDLE_INVALID, a data length update request is sent on the next connection that is established after the ATT_MTU exchange has completed. If no ATT_MTU exchange procedure is carried out (for example, if a default ATT_MTU size is used), the data length is not changed.

uint16_t nrf_ble_gatt_eff_mtu_get ( nrf_ble_gatt_t const *  p_gatt,
uint16_t  conn_handle 
)

Function for getting the current ATT_MTU size for a given connection.

Parameters
[in]p_gattPointer to the GATT structure.
[in]conn_handleConnection handle of the connection.
Returns
ATT_MTU size for the given connection.
Return values
0If p_gatt is NULL or if conn_handle is larger than the supported maximum number of connections.
ret_code_t nrf_ble_gatt_init ( nrf_ble_gatt_t p_gatt,
nrf_ble_gatt_evt_handler_t  evt_handler 
)

Function for initializing the GATT module.

Parameters
[in]evt_handlerEvent handler.
[out]p_gattPointer to the GATT structure.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_NULLIf p_gatt is NULL.
void nrf_ble_gatt_on_ble_evt ( ble_evt_t const *  p_ble_evt,
void *  p_context 
)

Function for handling BLE stack events.

This function handles events from the BLE stack that are of interest to the module.

Parameters
[in]p_ble_evtEvent received from the BLE stack.
[in]p_contextPointer to the GATT structure.