LEER TAG

Dependents:   NFC_HTM_READ EMULAR_TAGS Escribir_tag NFC_HTM_READ-WRITE

Committer:
mauroar211
Date:
Fri Apr 24 19:02:44 2015 +0000
Revision:
1:a549ef8b142a
Parent:
0:b805b487fbef
SE RESTAURARON LOS ARCHIVO DE LA LIBRER?A;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mauroar211 0:b805b487fbef 1
mauroar211 0:b805b487fbef 2
mauroar211 0:b805b487fbef 3 #ifndef __PN532_INTERFACE_H__
mauroar211 0:b805b487fbef 4 #define __PN532_INTERFACE_H__
mauroar211 0:b805b487fbef 5
mauroar211 0:b805b487fbef 6 #include <stdint.h>
mauroar211 0:b805b487fbef 7
mauroar211 0:b805b487fbef 8 #define PN532_PREAMBLE (0x00)
mauroar211 0:b805b487fbef 9 #define PN532_STARTCODE1 (0x00)
mauroar211 0:b805b487fbef 10 #define PN532_STARTCODE2 (0xFF)
mauroar211 0:b805b487fbef 11 #define PN532_POSTAMBLE (0x00)
mauroar211 0:b805b487fbef 12
mauroar211 0:b805b487fbef 13 #define PN532_HOSTTOPN532 (0xD4)
mauroar211 0:b805b487fbef 14 #define PN532_PN532TOHOST (0xD5)
mauroar211 0:b805b487fbef 15
mauroar211 0:b805b487fbef 16 #define PN532_ACK_WAIT_TIME (10) // ms, timeout of waiting for ACK
mauroar211 0:b805b487fbef 17
mauroar211 0:b805b487fbef 18 #define PN532_INVALID_ACK (-1)
mauroar211 0:b805b487fbef 19 #define PN532_TIMEOUT (-2)
mauroar211 0:b805b487fbef 20 #define PN532_INVALID_FRAME (-3)
mauroar211 0:b805b487fbef 21 #define PN532_NO_SPACE (-4)
mauroar211 0:b805b487fbef 22
mauroar211 0:b805b487fbef 23 #define REVERSE_BITS_ORDER(b) b = (b & 0xF0) >> 4 | (b & 0x0F) << 4; \
mauroar211 0:b805b487fbef 24 b = (b & 0xCC) >> 2 | (b & 0x33) << 2; \
mauroar211 0:b805b487fbef 25 b = (b & 0xAA) >> 1 | (b & 0x55) << 1
mauroar211 0:b805b487fbef 26
mauroar211 0:b805b487fbef 27 /**
mauroar211 0:b805b487fbef 28 * The PN532Interface class
mauroar211 0:b805b487fbef 29 */
mauroar211 0:b805b487fbef 30 class PN532Interface
mauroar211 0:b805b487fbef 31 {
mauroar211 0:b805b487fbef 32 public:
mauroar211 0:b805b487fbef 33 virtual void begin() = 0;
mauroar211 0:b805b487fbef 34 virtual void wakeup() = 0;
mauroar211 0:b805b487fbef 35
mauroar211 0:b805b487fbef 36 /**
mauroar211 0:b805b487fbef 37 * @brief write a command and check ack
mauroar211 0:b805b487fbef 38 * @param header packet header
mauroar211 0:b805b487fbef 39 * @param hlen length of header
mauroar211 0:b805b487fbef 40 * @param body packet body
mauroar211 0:b805b487fbef 41 * @param blen length of body
mauroar211 0:b805b487fbef 42 * @return 0 success
mauroar211 0:b805b487fbef 43 * not 0 failed
mauroar211 0:b805b487fbef 44 */
mauroar211 0:b805b487fbef 45 virtual int8_t writeCommand(const uint8_t *header, uint8_t hlen, const uint8_t *body = 0, uint8_t blen = 0) = 0;
mauroar211 0:b805b487fbef 46
mauroar211 0:b805b487fbef 47 /**
mauroar211 0:b805b487fbef 48 * @brief read the response of a command, strip prefix and suffix
mauroar211 0:b805b487fbef 49 * @param buf to contain the response data
mauroar211 0:b805b487fbef 50 * @param len lenght to read
mauroar211 0:b805b487fbef 51 * @param timeout max time to wait, 0 means no timeout
mauroar211 0:b805b487fbef 52 * @return >=0 length of response without prefix and suffix
mauroar211 0:b805b487fbef 53 * <0 failed to read response
mauroar211 0:b805b487fbef 54 */
mauroar211 0:b805b487fbef 55 virtual int16_t readResponse(uint8_t buf[], uint8_t len, uint16_t timeout = 1000) = 0;
mauroar211 0:b805b487fbef 56 };
mauroar211 0:b805b487fbef 57
mauroar211 0:b805b487fbef 58 #endif
mauroar211 0:b805b487fbef 59