nRF5 SDK v12.1.0
Macros | Enumerations | Functions
Advertising and Scan Response Data Encoder for NFC OOB pairing

Function for encoding data in the Advertising and Scan Response Data format, which can be used to create payload of NFC message intended for initiating the Out-of-Band pairing. More...

Macros

#define AD_TYPE_LE_ROLE_DATA_SIZE   1UL
 
#define AD_TYPE_LE_ROLE_SIZE
 
#define AD_TYPE_TK_VALUE_DATA_SIZE   (sizeof(ble_advdata_tk_value_t))
 
#define AD_TYPE_TK_VALUE_SIZE
 
#define AD_TYPE_OOB_FLAGS_DATA_SIZE   1UL
 
#define AD_TYPE_OOB_FLAGS_SIZE
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_SET   1U
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_CLEAR   0U
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_DATA_PRESENT_POS   0UL
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_LE_SUPPORTED_POS   1UL
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_SIM_LE_AND_EP_POS   2UL
 
#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_PUBLIC   0UL
 
#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_RANDOM   1UL
 
#define AD_TYPE_SEC_MGR_OOB_FLAG_ADDRESS_TYPE_POS   3UL
 

Enumerations

enum  nfc_ble_advdata_le_role_encoded_t {
  NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_PERIPH = 0,
  NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_CENTRAL,
  NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_PERIPH_PREFERRED,
  NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_CENTRAL_PREFERRED
}
 Payload field values of LE Role BLE GAP AD Type. Corresponds with ble_advdata_le_role_t enum. More...
 

Functions

ret_code_t nfc_ble_oob_adv_data_encode (ble_advdata_t const *const p_advdata, uint8_t *const p_encoded_data, uint16_t *const p_len)
 Function for encoding data in the Advertising and Scan Response data format, which is used for NFC OOB pairing. More...
 

Detailed Description

Function for encoding data in the Advertising and Scan Response Data format, which can be used to create payload of NFC message intended for initiating the Out-of-Band pairing.

Macro Definition Documentation

#define AD_TYPE_LE_ROLE_DATA_SIZE   1UL

Data size (in octets) of the LE Bluetooth Device Address AD type.

#define AD_TYPE_LE_ROLE_SIZE
Value:
AD_TYPE_LE_ROLE_DATA_SIZE)

Size (in octets) of the LE Bluetooth Device Address AD type.

#define AD_TYPE_OOB_FLAGS_DATA_SIZE   1UL

Data size (in octets) of the Security Manager OOB Flags AD type.

#define AD_TYPE_OOB_FLAGS_SIZE
Value:
AD_TYPE_OOB_FLAGS_DATA_SIZE)

Size (in octets) of the Security Manager OOB Flags AD type.

#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_PUBLIC   0UL

Security Manager OOB Public Address type.

#define AD_TYPE_SEC_MGR_OOB_ADDRESS_TYPE_RANDOM   1UL

Security Manager OOB Random Address type.

#define AD_TYPE_SEC_MGR_OOB_FLAG_ADDRESS_TYPE_POS   3UL

Security Manager OOB Address type Flag (0 = Public Address, 1 = Random Address) position.

#define AD_TYPE_SEC_MGR_OOB_FLAG_CLEAR   0U

Security Manager OOB Flag clear. Flag selection is done using _POS defines

#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_DATA_PRESENT_POS   0UL

Security Manager OOB Data Present Flag position.

#define AD_TYPE_SEC_MGR_OOB_FLAG_OOB_LE_SUPPORTED_POS   1UL

Security Manager OOB Low Energy Supported Flag position.

#define AD_TYPE_SEC_MGR_OOB_FLAG_SET   1U

Security Manager OOB Flag set. Flag selection is done using _POS defines

#define AD_TYPE_SEC_MGR_OOB_FLAG_SIM_LE_AND_EP_POS   2UL

Security Manager OOB Simultaneous LE and BR/EDR to Same Device Capable Flag position.

#define AD_TYPE_TK_VALUE_DATA_SIZE   (sizeof(ble_advdata_tk_value_t))

Data size (in octets) of the Security Manager TK value AD type.

#define AD_TYPE_TK_VALUE_SIZE
Value:
AD_TYPE_TK_VALUE_DATA_SIZE)

Size (in octets) of the Security Manager TK value AD type.

Enumeration Type Documentation

Payload field values of LE Role BLE GAP AD Type. Corresponds with ble_advdata_le_role_t enum.

Enumerator
NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_PERIPH 

Only Peripheral Role supported.

NFC_BLE_ADVDATA_ROLE_ENCODED_ONLY_CENTRAL 

Only Central Role supported.

NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_PERIPH_PREFERRED 

Peripheral and Central Role supported. Peripheral Role preferred for connection establishment.

NFC_BLE_ADVDATA_ROLE_ENCODED_BOTH_CENTRAL_PREFERRED 

Peripheral and Central Role supported. Central Role preferred for connection establishment

Function Documentation

ret_code_t nfc_ble_oob_adv_data_encode ( ble_advdata_t const *const  p_advdata,
uint8_t *const  p_encoded_data,
uint16_t *const  p_len 
)

Function for encoding data in the Advertising and Scan Response data format, which is used for NFC OOB pairing.

This function encodes data into the Advertising and Scan Response data format (AD structures). Encoding is based on the selections in the supplied structures. This function uses adv_data_encode to encode regular data and adds addtional AD Structures which are specific for NFC OOB pairing: Security Manager TK Value, OOB Flags and LE Role.

Parameters
[in]p_advdataPointer to the structure for specifying the content of encoded data.
[out]p_encoded_dataPointer to the buffer where encoded data will be returned.
[in,out]p_lenin: Size of p_encoded_data buffer. out: Length of encoded data.
Return values
NRF_SUCCESSIf the operation was successful.
NRF_ERROR_INVALID_PARAMIf the operation failed because a wrong parameter was provided in p_advdata.
NRF_ERROR_DATA_SIZEIf the operation failed because not all the requested data could fit into the provided buffer or some encoded AD structure is too long and its length cannot be encoded with one octet.

Documentation feedback | Developer Zone | Subscribe | Updated