Custom NDEF messages

nRF5 SDK v14.0.0

Generation of NFC NDEF messages for the NFC tag. More...

Modules

NFC NDEF Message generator module configuration
Custom NDEF records
Generation of NFC NDEF records for NFC messages.

Data Structures

struct nfc_ndef_msg_desc_t
NDEF message descriptor. More...

Macros

#define TYPE_4_TAG 4U
Type 4 Tag identifier.
#define NLEN_FIELD_SIZE 2U
Size of NLEN field, used to encode NDEF message for Type 4 Tag.
#define NFC_NDEF_MSG_DEF (NAME, MAX_RECORD_CNT)
Macro for creating and initializing an NFC NDEF message descriptor. More...
#define NFC_NDEF_MSG (NAME)   (NAME##_nfc_ndef_msg_desc)
Macro for accessing the NFC NDEF message descriptor instance that you created with NFC_NDEF_MSG_DEF .
#define NFC_NDEF_NESTED_NDEF_MSG_RECORD_DEF (NAME,TNF,P_ID,ID_LEN,P_TYPE,TYPE_LEN,P_NESTED_MESSAGE)
Macro for creating and initializing an NFC NDEF record descriptor with an encapsulated NDEF message. More...
#define NFC_NDEF_NESTED_NDEF_MSG_RECORD (NAME)   (NAME##_ndef_record_nested_desc)
Macro for accessing the NFC NDEF record descriptor instance that you created with NFC_NDEF_NESTED_NDEF_MSG_RECORD_DEF .

Functions

ret_code_t nfc_ndef_msg_encode ( nfc_ndef_msg_desc_t const *p_ndef_msg_desc, uint8_t *p_msg_buffer, uint32_t *const p_msg_len)
Function for encoding an NDEF message. More...
void nfc_ndef_msg_clear ( nfc_ndef_msg_desc_t *p_msg)
Function for clearing an NDEF message. More...
ret_code_t nfc_ndef_msg_record_add ( nfc_ndef_msg_desc_t *const p_msg, nfc_ndef_record_desc_t *const p_record)
Function for adding a record to an NDEF message. More...

Detailed Description

Generation of NFC NDEF messages for the NFC tag.

Macro Definition Documentation

#define NFC_NDEF_MSG_DEF ( NAME,
MAX_RECORD_CNT
)
Value:
nfc_ndef_record_desc_t * NAME##_nfc_ndef_p_record_desc_array[MAX_RECORD_CNT]; \
nfc_ndef_msg_desc_t NAME##_nfc_ndef_msg_desc = \
{ \
. pp_record = NAME##_nfc_ndef_p_record_desc_array, \
.max_record_count = MAX_RECORD_CNT, \
.record_count = 0 \
}

Macro for creating and initializing an NFC NDEF message descriptor.

This macro creates and initializes an instance of type nfc_ndef_msg_desc_t and an array of pointers to record descriptors ( nfc_ndef_record_desc_t ) used by the message.

Use the macro NFC_NDEF_MSG to access the NDEF message descriptor instance.

Note
The message descriptor is declared as automatic variable, which implies that the NDEF message encoding must be done in the same variable scope.
Parameters
[in] NAME Name of the related instance.
[in] MAX_RECORD_CNT Maximal count of records in the message.
#define NFC_NDEF_NESTED_NDEF_MSG_RECORD_DEF ( NAME,
TNF,
P_ID,
ID_LEN,
P_TYPE,
TYPE_LEN,
P_NESTED_MESSAGE
)
Value:
nfc_ndef_record_desc_t NAME##_ndef_record_nested_desc = \
{ \
. tnf = TNF, \
\
.id_length = ID_LEN, \
.p_id = P_ID, \
\
.type_length = TYPE_LEN, \
.p_type = P_TYPE, \
\
.payload_constructor = ( p_payload_constructor_t )( nfc_ndef_msg_encode ), \
.p_payload_descriptor = ( void *) (P_NESTED_MESSAGE) \
}

Macro for creating and initializing an NFC NDEF record descriptor with an encapsulated NDEF message.

This macro creates and initializes a static instance of type nfc_ndef_record_desc_t that contains an encapsulated NDEF message as payload. nfc_ndef_msg_encode is used as payload constructor to encode the message. The encoded message is then used as payload for the record.

Use the macro NFC_NDEF_NESTED_NDEF_MSG_RECORD to access the NDEF record descriptor instance.

Note
The message descriptor is declared as automatic variable, which implies that the NDEF message encoding must be done in the same variable scope.
Parameters
[in] NAME Name of the created record descriptor instance.
[in] TNF Type Name Format (TNF) value for the record.
[in] P_ID Pointer to the ID string.
[in] ID_LEN Length of the ID string.
[in] P_TYPE Pointer to the type string.
[in] TYPE_LEN Length of the type string.
[in] P_NESTED_MESSAGE Pointer to the message descriptor to encapsulate as the record's payload.

Function Documentation

void nfc_ndef_msg_clear ( nfc_ndef_msg_desc_t * p_msg )

Function for clearing an NDEF message.

This function clears an NDEF message descriptor, thus empties the NDEF message.

Parameters
[in,out] p_msg Pointer to the message descriptor.
ret_code_t nfc_ndef_msg_encode ( nfc_ndef_msg_desc_t const * p_ndef_msg_desc ,
uint8_t * p_msg_buffer ,
uint32_t *const p_msg_len
)

Function for encoding an NDEF message.

This function encodes an NDEF message according to the provided message descriptor.

Note
The way of encoding an NDEF message may vary depending on tag's platform, which can be chosen with NFC_NDEF_MSG_TAG_TYPE in sdk_config.h .
Parameters
[in] p_ndef_msg_desc Pointer to the message descriptor.
[out] p_msg_buffer Pointer to the message destination. If NULL, function will calculate the expected size of the message.
[in,out] p_msg_len Size of the available memory for the message as input. Size of the generated message as output.
Returns
Return value from nfc_ndef_record_encode .
ret_code_t nfc_ndef_msg_record_add ( nfc_ndef_msg_desc_t *const p_msg ,
nfc_ndef_record_desc_t *const p_record
)

Function for adding a record to an NDEF message.

Parameters
[in] p_record Pointer to the record descriptor.
[in,out] p_msg Pointer to the message descriptor.
Return values
NRF_SUCCESS If the record was added successfully.
NRF_ERROR_NO_MEM If the message already contains the maximum number of records and the operation is not allowed.