Functions

S130 SoftDevice v2.0.0 API

S130 SoftDevice v2.0.0

Functions

uint32_t sd_ble_l2cap_cid_register (uint16_t cid)
Register a CID with L2CAP. More...
uint32_t sd_ble_l2cap_cid_unregister (uint16_t cid)
Unregister a CID with L2CAP. More...
uint32_t sd_ble_l2cap_tx (uint16_t conn_handle, ble_l2cap_header_t const *p_header, uint8_t const *p_data)
Transmit an L2CAP packet. More...

Detailed Description

Function Documentation

uint32_t sd_ble_l2cap_cid_register ( uint16_t cid )

Register a CID with L2CAP.

This registers a higher protocol layer with the L2CAP multiplexer, and is requried prior to all operations on the CID.

Relevant Message Sequence Charts
Parameters
[in] cid L2CAP CID.
Return values
NRF_SUCCESS Successfully registered a CID with the L2CAP layer.
NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CID must be above BLE_L2CAP_CID_DYN_BASE .
BLE_ERROR_L2CAP_CID_IN_USE L2CAP CID already in use.
NRF_ERROR_NO_MEM Not enough memory to complete operation.
uint32_t sd_ble_l2cap_cid_unregister ( uint16_t cid )

Unregister a CID with L2CAP.

This unregisters a previously registerd higher protocol layer with the L2CAP multiplexer.

Relevant Message Sequence Charts
Parameters
[in] cid L2CAP CID.
Return values
NRF_SUCCESS Successfully unregistered the CID.
NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
NRF_ERROR_NOT_FOUND CID not previously registered.
uint32_t sd_ble_l2cap_tx ( uint16_t conn_handle ,
ble_l2cap_header_t const * p_header ,
uint8_t const * p_data
)

Transmit an L2CAP packet.

Note
It is important to note that a call to this function will consume an application packet , and will therefore generate a BLE_EVT_TX_COMPLETE event when the packet has been transmitted. Please see the documentation of sd_ble_tx_packet_count_get for more details.
Events generated
Relevant Message Sequence Charts
Parameters
[in] conn_handle Connection Handle.
[in] p_header Pointer to a packet header containing length and CID.
[in] p_data Pointer to the data to be transmitted.
Return values
NRF_SUCCESS Successfully queued an L2CAP packet for transmission.
NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CIDs must be registered beforehand with sd_ble_l2cap_cid_register .
NRF_ERROR_NOT_FOUND CID not found.
NRF_ERROR_NO_MEM Not enough memory to complete operation.
BLE_ERROR_NO_TX_PACKETS Not enough application packets available.
NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, see BLE_L2CAP_MTU_DEF .