PN532 NFC library for Seeed Studio's NFC Shield

Fork of PN532 by Yihui Xiong

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