Remove nfc_initiator_transceive_dep_bytes() and introduce NDO_EASY_FRAMING option.

Always use nfc_initiator_transceive_bytes(). If you where using advanced
features and already relying on nfc_initiator_transceive_bytes(), then your
code has to be updated to unset the NDO_EASY_FRAMING option.  See an example of
such a change in the libfreefare's repository:
http://code.google.com/p/nfc-tools/source/detail?r=566

Updates issue 106
Status: Feedback
Romuald: I am not sure about the option enum values.  I took 0x02 thinking it
would not hurt but am not really sure about that because I can see many 'holes'
in the sequence.
This commit is contained in:
Romain Tartiere 2010-09-03 16:13:36 +00:00
parent b1f4c38f8f
commit a5676ecd94
9 changed files with 34 additions and 57 deletions

View file

@ -67,6 +67,8 @@ typedef struct {
bool bCrc;
/** Does the PN53x chip handles parity bits, all parities are handled as data */
bool bPar;
/** Should the PN53x chip handle frames encapsulation and chaining */
bool bEasyFraming;
/** The last tx bits setting, we need to reset this if it does not apply anymore */
uint8_t ui8TxBits;
/** Last error reported by the PCD / encountered by the PCD driver
@ -142,6 +144,8 @@ typedef enum {
NDO_HANDLE_CRC = 0x00,
/** Parity bits in the network layer of ISO14443-A are by default generated and validated in the PN53X chip. This is a very convenient feature. On certain times though it is useful to get full control of the transmitted data. The proprietary MIFARE Classic protocol uses for example custom (encrypted) parity bits. For interoperability it is required to be completely compatible, including the arbitrary parity bits. When this option is disabled, the functions to communicating bits should be used. */
NDO_HANDLE_PARITY = 0x01,
/** Use automatic frames encapsulation and chaining. */
NDO_EASY_FRAMING = 0x02,
/** This option can be used to enable or disable the electronic field of the NFC device. */
NDO_ACTIVATE_FIELD = 0x10,
/** The internal CRYPTO1 co-processor can be used to transmit messages encrypted. This option is automatically activated after a successful MIFARE Classic authentication. */

View file

@ -68,7 +68,6 @@ NFC_EXPORT bool nfc_initiator_select_dep_target(nfc_device_t* pnd, const nfc_mod
NFC_EXPORT bool nfc_initiator_deselect_target(nfc_device_t* pnd);
NFC_EXPORT 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);
NFC_EXPORT bool nfc_initiator_transceive_bytes(nfc_device_t* pnd, const byte_t* pbtTx, const size_t szTxLen, byte_t* pbtRx, size_t* pszRxLen);
NFC_EXPORT bool nfc_initiator_transceive_dep_bytes(nfc_device_t* pnd, const byte_t* pbtTx, const size_t szTxLen, byte_t* pbtRx, size_t* pszRxLen);
/* NFC target: act as tag (i.e. MIFARE Classic) or NFC target device. */
NFC_EXPORT bool nfc_target_init(nfc_device_t* pnd, byte_t* pbtRx, size_t* pszRxBits);