nRF5 SDK v17.1.0
Modules | Data Structures | Macros | Functions
Custom NDEF messages

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]NAMEName of the related instance.
[in]MAX_RECORD_CNTMaximal 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]NAMEName of the created record descriptor instance.
[in]TNFType Name Format (TNF) value for the record.
[in]P_IDPointer to the ID string.
[in]ID_LENLength of the ID string.
[in]P_TYPEPointer to the type string.
[in]TYPE_LENLength of the type string.
[in]P_NESTED_MESSAGEPointer 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_msgPointer 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_descPointer to the message descriptor.
[out]p_msg_bufferPointer to the message destination. If NULL, function will calculate the expected size of the message.
[in,out]p_msg_lenSize 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_recordPointer to the record descriptor.
[in,out]p_msgPointer to the message descriptor.
Return values
NRF_SUCCESSIf the record was added successfully.
NRF_ERROR_NO_MEMIf the message already contains the maximum number of records and the operation is not allowed.

Documentation feedback | Developer Zone | Subscribe | Updated