nRF5 SDK v17.1.0
Macros | Typedefs | Enumerations | Functions
NFC tag 2 type emulation library

The T2T emulation library interface. More...

Macros

#define NFC_T2T_SIZEOF_INTERNAL_BYTES   10
 T2T internal byte size.
 
#define NFC_T2T_MAX_PAYLOAD_SIZE   988
 Maximum NDEF message size.
 
#define NFC_T2T_MAX_PAYLOAD_SIZE_RAW   1008
 No NDEF-TLV and no implicit lock bytes at the end.
 

Typedefs

typedef void(* nfc_t2t_callback_t )(void *p_context, nfc_t2t_event_t event, const uint8_t *p_data, size_t data_length)
 Callback to pass events from NFC T2T Library to application. More...
 

Enumerations

enum  nfc_t2t_event_t {
  NFC_T2T_EVENT_NONE,
  NFC_T2T_EVENT_FIELD_ON,
  NFC_T2T_EVENT_FIELD_OFF,
  NFC_T2T_EVENT_DATA_READ,
  NFC_T2T_EVENT_STOPPED
}
 Events passed to the callback function. More...
 
enum  nfc_t2t_param_id_t {
  NFC_T2T_PARAM_TESTING,
  NFC_T2T_PARAM_NFCID1
}
 

Functions

ret_code_t nfc_t2t_setup (nfc_t2t_callback_t callback, void *p_context)
 Function for registering the application callback for event signaling. More...
 
ret_code_t nfc_t2t_parameter_set (nfc_t2t_param_id_t id, void *p_data, size_t data_length)
 Function for setting an NFC parameter. More...
 
ret_code_t nfc_t2t_parameter_get (nfc_t2t_param_id_t id, void *p_data, size_t *p_max_data_length)
 Function for querying an NFC parameter value. More...
 
ret_code_t nfc_t2t_payload_set (const uint8_t *p_payload, size_t payload_length)
 Function for registering the payload to send on reception of a READ request. More...
 
ret_code_t nfc_t2t_payload_raw_set (const uint8_t *p_payload, size_t payload_length)
 Function for registering the raw payload to send on reception of a READ request. More...
 
ret_code_t nfc_t2t_internal_set (const uint8_t *p_data, size_t data_length)
 Function for registering the sequence of internal bytes. More...
 
ret_code_t nfc_t2t_emulation_start (void)
 Function for activating the NFC frontend. More...
 
ret_code_t nfc_t2t_emulation_stop (void)
 Function for deactivating the NFC frontend. More...
 
ret_code_t nfc_t2t_done (void)
 Function for releasing the reference to the application callback. More...
 

Detailed Description

The T2T emulation library interface.

Typedef Documentation

typedef void(* nfc_t2t_callback_t)(void *p_context, nfc_t2t_event_t event, const uint8_t *p_data, size_t data_length)

Callback to pass events from NFC T2T Library to application.

Parameters
[in]p_contextApplication context for callback execution.
[in]eventThe event that occurred.
[in]p_dataData to send to the application (event specific).
[in]data_lengthLength of the data.

Enumeration Type Documentation

Events passed to the callback function.

Enumerator
NFC_T2T_EVENT_NONE 

Not used.

NFC_T2T_EVENT_FIELD_ON 

NFC tag has detected external NFC field and was selected by an NFC polling device.

NFC_T2T_EVENT_FIELD_OFF 

External NFC field has been removed.

NFC_T2T_EVENT_DATA_READ 

NFC polling device has read all tag data.

Repeated reading in the same session i.e. before NFC_T2T_EVENT_FIELD_OFF event, will not trigger another NFC_T2T_EVENT_DATA_READ event.

NFC_T2T_EVENT_STOPPED 

Reference to the application NFC callback has been released using nfc_t2t_done.

Enumerator
NFC_T2T_PARAM_TESTING 

Used for unit tests.

NFC_T2T_PARAM_NFCID1 

NFCID1 value, data can be 4, 7, or 10 bytes long (single, double, or triple size). To use default NFCID1 of specific length pass one byte containing requested length. Default 7-byte NFCID1 will be used if this parameter was not set. This parameter can be set before nfc_t2t_setup() to set initial NFCID1 and it can be changed later.

Function Documentation

ret_code_t nfc_t2t_done ( void  )

Function for releasing the reference to the application callback.

After calling this function, the passed callback pointer is no longer considered valid.

Return values
NRF_SUCCESSThis function always succeeds.
ret_code_t nfc_t2t_emulation_start ( void  )

Function for activating the NFC frontend.

You must call this function so that events are posted to the application callback.

Return values
NRF_SUCCESSIf the NFC frontend was activated successfully. If the lower layer could not be started, an error code is returned.
ret_code_t nfc_t2t_emulation_stop ( void  )

Function for deactivating the NFC frontend.

After calling this function, no more events will be posted to the application callback.

Return values
NRF_SUCCESSIf the NFC frontend was deactivated successfully. If the lower layer could not be stopped, an error code is returned.
ret_code_t nfc_t2t_internal_set ( const uint8_t *  p_data,
size_t  data_length 
)

Function for registering the sequence of internal bytes.

This refers to the first 10 bytes of the tag memory. The library will set a sensible default for these bytes. The application can use this function to override the default.

Passing a NULL pointer reverts back to the default sequence. The data will be copied by NFC T2T Library, so the memory does not have to remain valid after the function returns.

Note
When modifying the internal bytes, remember that they must be consistent with the NFC hardware register settings (see Internal bytes).
Parameters
[in]p_dataPointer to the memory area containing the data.
[in]data_lengthSize of the data in bytes.
Return values
NRF_SUCCESSIf the operation was successful. If the data was not NULL and the data length was not 10, an error code is returned.
ret_code_t nfc_t2t_parameter_get ( nfc_t2t_param_id_t  id,
void *  p_data,
size_t *  p_max_data_length 
)

Function for querying an NFC parameter value.

The queried value will be placed into the passed data buffer. If the buffer is too small, p_max_data_length will contain the required buffer size. If the buffer is big enough, p_max_data_length will contain the actual size of the data.

Parameters
[in]idID of the parameter to query.
[in]p_dataPointer to a buffer receiving the queried data.
[in,out]p_max_data_lengthSize of the buffer, receives actual size of queried data.
Return values
NRF_SUCCESSIf the parameter was received successfully. If one of the arguments was invalid (for example, the buffer was too small), an error code is returned.
ret_code_t nfc_t2t_parameter_set ( nfc_t2t_param_id_t  id,
void *  p_data,
size_t  data_length 
)

Function for setting an NFC parameter.

This function allows to set an NFC configuration parameter.

Parameters
[in]idID of the parameter to set.
[in]p_dataPointer to a buffer containing the data to set.
[in]data_lengthSize of the buffer containing the data to set.
Return values
NRF_SUCCESSIf the parameter was set successfully. If one of the arguments was invalid (for example, a wrong data length), an error code is returned.
ret_code_t nfc_t2t_payload_raw_set ( const uint8_t *  p_payload,
size_t  payload_length 
)

Function for registering the raw payload to send on reception of a READ request.

The payload will be delivered directly as-is to the reader, without implicitly adding an NDEF TLV container. This can be used if the application wants to define the TLVs itself, for example, to provide a different memory layout.

The pointer to the payload must stay valid for the duration of the library execution, or until it is explicitly released.

If a new payload is registered, the previously registered one is considered released.

Passing a NULL pointer releases the current payload, without registering a new one.

If an invalid size is given (too big), the function returns with an error and the currently registered payload is left unchanged.

Note
Provided pointer must points to RAM region.
Parameters
[in]p_payloadPointer to the memory area in RAM containing the payload to send.
[in]payload_lengthSize of the payload in bytes.
Return values
NRF_SUCCESSIf the operation was successful. If one of the arguments was invalid, an error code is returned.
ret_code_t nfc_t2t_payload_set ( const uint8_t *  p_payload,
size_t  payload_length 
)

Function for registering the payload to send on reception of a READ request.

The payload is considered to only contain the NDEF message to deliver to a reader. The required NDEF TLV will be created implicitly by NFC T2T Library.

The pointer to the payload must stay valid for the duration of the library execution, or until it is explicitly released.

If the pointer is not NULL, but the length is zero, the paypload is considered to be an empty NDEF message.

If a new payload is registered, the previously registered one is considered released.

Passing a NULL pointer releases the current payload without registering a new one.

If an invalid size is given (too big), the function returns with an error and the currently registered payload is left unchanged.

Note
Provided pointer must point to RAM region.
Parameters
[in]p_payloadPointer to the memory area in RAM containing the payload to send.
[in]payload_lengthSize of the payload in bytes.
Return values
NRF_SUCCESSIf the operation was successful. If one of the arguments was invalid, an error code is returned.
ret_code_t nfc_t2t_setup ( nfc_t2t_callback_t  callback,
void *  p_context 
)

Function for registering the application callback for event signaling.

The callback will be called by NFC T2T Library to notify the application of relevant events. It will be called from the HAL_NFC callback context.

Parameters
[in]callbackFunction pointer to the callback.
[in]p_contextPointer to a memory area used by the callback for execution (optional).
Return values
NRF_SUCCESSIf the application callback was registered successfully. If one of the arguments was invalid, an error code is returned.

Documentation feedback | Developer Zone | Subscribe | Updated