Functions |
nfc_device_desc_t * | nfc_pick_device (void) |
| Probe for the first discoverable supported devices (ie. only available for some drivers).
|
void | nfc_list_devices (nfc_device_desc_t pnddDevices[], size_t szDevices, size_t *pszDeviceFound) |
| Probe for discoverable supported devices (ie. only available for some drivers).
|
nfc_device_t * | nfc_connect (nfc_device_desc_t *pndd) |
| Connect to a NFC device.
|
void | nfc_disconnect (nfc_device_t *pnd) |
| Disconnect from a NFC device.
|
bool | nfc_configure (nfc_device_t *pnd, const nfc_device_option_t ndo, const bool bEnable) |
| Configure advanced NFC device settings.
|
bool | nfc_initiator_init (nfc_device_t *pnd) |
| Initialize NFC device as initiator (reader).
|
bool | nfc_initiator_select_dep_target (nfc_device_t *pnd, const nfc_modulation_t nmInitModulation, const byte_t *pbtPidData, const size_t szPidDataLen, const byte_t *pbtNFCID3i, const size_t szNFCID3iDataLen, const byte_t *pbtGbData, const size_t szGbDataLen, nfc_target_info_t *pnti) |
| Select a target and request active or passive mode for DEP (Data Exchange Protocol).
|
bool | nfc_initiator_deselect_target (nfc_device_t *pnd) |
| Deselect a selected passive or emulated tag.
|
bool | nfc_initiator_poll_targets (nfc_device_t *pnd, const nfc_target_type_t *pnttTargetTypes, const size_t szTargetTypes, const byte_t btPollNr, const byte_t btPeriod, nfc_target_t *pntTargets, size_t *pszTargetFound) |
| Polling for NFC targets.
|
bool | nfc_initiator_transceive_bits (nfc_device_t *pnd, const byte_t *pbtTx, const size_t szTxBits, const byte_t *pbtTxPar, byte_t *pbtRx, size_t *pszRxBits, byte_t *pbtRxPar) |
| Transceive raw bit-frames.
|
bool | nfc_initiator_transceive_bytes (nfc_device_t *pnd, const byte_t *pbtTx, const size_t szTxLen, byte_t *pbtRx, size_t *pszRxLen) |
| Send raw data to target then retrieve raw data from target.
|
bool | nfc_target_init (nfc_device_t *pnd, byte_t *pbtRx, size_t *pszRxBits) |
| Initialize NFC device as an emulated tag.
|
bool | nfc_target_receive_bits (nfc_device_t *pnd, byte_t *pbtRx, size_t *pszRxBits, byte_t *pbtRxPar) |
| Receive bit-frames.
|
bool | nfc_target_receive_bytes (nfc_device_t *pnd, byte_t *pbtRx, size_t *pszRxLen) |
| Receive bytes and APDU frames.
|
bool | nfc_target_send_bits (nfc_device_t *pnd, const byte_t *pbtTx, const size_t szTxBits, const byte_t *pbtTxPar) |
| Send raw bit-frames.
|
bool | nfc_target_send_bytes (nfc_device_t *pnd, const byte_t *pbtTx, const size_t szTxLen) |
| Send bytes and APDU frames.
|
const char * | nfc_strerror (const nfc_device_t *pnd) |
| Return the PCD error string.
|
int | nfc_strerror_r (const nfc_device_t *pnd, char *pcStrErrBuf, size_t szBufLen) |
| Renders the PCD error in pcStrErrBuf for a maximum size of szBufLen chars.
|
void | nfc_perror (const nfc_device_t *pnd, const char *pcString) |
| Display the PCD error a-la perror.
|
const char * | nfc_device_name (nfc_device_t *pnd) |
| Returns the device name.
|
const char * | nfc_version (void) |
| Returns the library version.
|
NFC library implementation.
Configure advanced NFC device settings.
- Returns:
- Returns true if action was successfully performed; otherwise returns false.
- Parameters:
-
| pnd | nfc_device_t struct pointer that represent currently used device |
| ndo | nfc_device_option_t struct that contains options to set to device |
| bEnable | boolean |
Configures parameters and registers that control for example timing, modulation, frame and error handling. There are different categories for configuring the PN53X chip features (handle, activate, infinite and accept). These are defined to organize future settings that will become available when they are needed.
Definition at line 225 of file nfc.c.
Connect to a NFC device.
- Parameters:
-
| pndd | Device description if specific device is wanted, NULL otherwise |
- Returns:
- Returns pointer to a nfc_device_t struct if successfull; otherwise returns NULL value.
If pndd is NULL, the first available NFC device is claimed by libnfc. It will automatically search the system using all available drivers to determine a device is free.
If pndd is passed then libnfc will try to claim the right device using information provided by this struct.
When it has successfully claimed a NFC device, memory is allocated to save the device information. It will return a pointer to a nfc_device_t struct. This pointer should be supplied by every next function of libnfc that should perform an action with this device.
Definition at line 112 of file nfc.c.
Deselect a selected passive or emulated tag.
- Returns:
- Returns true if action was successfully performed; otherwise returns false.
- Parameters:
-
| pnd | nfc_device_t struct pointer that represent currently used device |
After selecting and communicating with a passive tag, this function could be used to deactivate and release the tag. This is very useful when there are multiple tags available in the field. It is possible to use the nfc_initiator_select_passive_target() function to select the first available tag, test it for the available features and support, deselect it and skip to the next tag until the correct tag is found.
Definition at line 439 of file nfc.c.
bool nfc_initiator_transceive_bytes |
( |
nfc_device_t * |
pnd, |
|
|
const byte_t * |
pbtTx, |
|
|
const size_t |
szTxLen, |
|
|
byte_t * |
pbtRx, |
|
|
size_t * |
pszRxLen | |
|
) |
| | |
Send raw data to target then retrieve raw data from target.
- Returns:
- Returns true if action was successfully performed; otherwise returns false.
The reader will transmit the supplied bytes (pbtTx) to the target in raw mode: PN53x will not handle input neither output data. It waits for the response and stores the received bytes in the pbtRx byte array. The parity bits are handled by the PN53X chip. The CRC can be generated automatically or handled manually. Using this function, frames can be communicated very fast via the NFC reader to the tag.
Tests show that on average this way of communicating is much faster than using the regular driver/middle-ware (often supplied by manufacturers).
- Warning:
- The configuration option NDO_HANDLE_PARITY must be set to true (the default value).
Definition at line 503 of file nfc.c.