PN532 NFC library for Seeed Studio's NFC Shield
Fork of PN532 by
Diff: PN532.h
- Revision:
- 1:b8cab5222fd0
- Parent:
- 0:9c6b9280c0e1
- Child:
- 2:f618fb2169c4
--- a/PN532.h Tue Oct 08 08:33:22 2013 +0000 +++ b/PN532.h Thu Oct 17 06:37:26 2013 +0000 @@ -1,8 +1,30 @@ -/** - * \file PN532.h - * \brief PN532 NFC library, Ported from https://github.com/Seeed-Studio/PN532 for Arduino - * \license BSD - */ +/**************************************************************************/ +/*! + @file PN532.h + @author Adafruit Industries + @license BSD (see license.txt) + + This is a library for the Adafruit PN532 NFC/RFID shield + This library works with the Adafruit NFC breakout + ----> https://www.adafruit.com/products/364 + + Check out the links above for our tutorials and wiring diagrams + These chips use I2C to communicate + + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! + + @section HISTORY + + v1.3 - Modified to work with I2C + + v1.1 - Added full command list + - Added 'verbose' mode flag to constructor to toggle debug output + - Changed readPassiveTargetID() to return variable length values + +*/ +/**************************************************************************/ #ifndef PN532_h #define PN532_h @@ -125,55 +147,56 @@ //#define PN532DEBUG -class PN532{ +class PN532 +{ public: - PN532(PN532Interface &interface); + PN532(PN532Interface &interface); PN532(PinName mosi, PinName miso, PinName sclk, PinName cs); ~PN532(); - - void begin(void); - - // Generic PN532 functions - bool SAMConfig(void); - uint32_t getFirmwareVersion(void); - bool writeGPIO(uint8_t pinstate); - uint8_t readGPIO(void); - bool setPassiveActivationRetries(uint8_t maxRetries); - - int8_t tgInitAsTarget(); - int16_t tgGetData(uint8_t *buf, uint16_t len); - bool tgSetData(const uint8_t *buf, uint16_t len); - - // ISO14443A functions - bool inListPassiveTarget(); - bool readPassiveTargetID(uint8_t cardbaudrate, uint8_t * uid, uint8_t * uidLength); - bool inDataExchange(uint8_t * send, uint8_t sendLength, uint8_t * response, uint8_t * responseLength); - - // Mifare Classic functions - bool mifareclassic_IsFirstBlock (uint32_t uiBlock); - bool mifareclassic_IsTrailerBlock (uint32_t uiBlock); - uint8_t mifareclassic_AuthenticateBlock (uint8_t * uid, uint8_t uidLen, uint32_t blockNumber, uint8_t keyNumber, uint8_t * keyData); - uint8_t mifareclassic_ReadDataBlock (uint8_t blockNumber, uint8_t * data); - uint8_t mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t * data); - uint8_t mifareclassic_FormatNDEF (void); - uint8_t mifareclassic_WriteNDEFURI (uint8_t sectorNumber, uint8_t uriIdentifier, const char * url); - - // Mifare Ultralight functions - uint8_t mifareultralight_ReadPage (uint8_t page, uint8_t * buffer); - - // Help functions to display formatted text - static void PrintHex(const uint8_t * data, const uint32_t numBytes); - static void PrintHexChar(const uint8_t * pbtData, const uint32_t numBytes); + + void begin(void); + + // Generic PN532 functions + bool SAMConfig(void); + uint32_t getFirmwareVersion(void); + bool writeGPIO(uint8_t pinstate); + uint8_t readGPIO(void); + bool setPassiveActivationRetries(uint8_t maxRetries); + + int8_t tgInitAsTarget(); + int16_t tgGetData(uint8_t *buf, uint16_t len); + bool tgSetData(const uint8_t *buf, uint16_t len); + + // ISO14443A functions + bool inListPassiveTarget(); + bool readPassiveTargetID(uint8_t cardbaudrate, uint8_t *uid, uint8_t *uidLength); + bool inDataExchange(uint8_t *send, uint8_t sendLength, uint8_t *response, uint8_t *responseLength); - private: - uint8_t _uid[7]; // ISO14443A uid - uint8_t _uidLen; // uid len - uint8_t _key[6]; // Mifare Classic key - uint8_t inListedTag; // Tg number of inlisted tag. - - PN532Interface* _interface; - SPI* _spi; + // Mifare Classic functions + bool mifareclassic_IsFirstBlock (uint32_t uiBlock); + bool mifareclassic_IsTrailerBlock (uint32_t uiBlock); + uint8_t mifareclassic_AuthenticateBlock (uint8_t *uid, uint8_t uidLen, uint32_t blockNumber, uint8_t keyNumber, uint8_t *keyData); + uint8_t mifareclassic_ReadDataBlock (uint8_t blockNumber, uint8_t *data); + uint8_t mifareclassic_WriteDataBlock (uint8_t blockNumber, uint8_t *data); + uint8_t mifareclassic_FormatNDEF (void); + uint8_t mifareclassic_WriteNDEFURI (uint8_t sectorNumber, uint8_t uriIdentifier, const char *url); + + // Mifare Ultralight functions + uint8_t mifareultralight_ReadPage (uint8_t page, uint8_t *buffer); + + // Help functions to display formatted text + static void PrintHex(const uint8_t *data, const uint32_t numBytes); + static void PrintHexChar(const uint8_t *pbtData, const uint32_t numBytes); + +private: + uint8_t _uid[7]; // ISO14443A uid + uint8_t _uidLen; // uid len + uint8_t _key[6]; // Mifare Classic key + uint8_t inListedTag; // Tg number of inlisted tag. + + PN532Interface *_interface; + SPI *_spi; }; #endif