LEER TAG

Dependents:   NFC_HTM_READ EMULAR_TAGS Escribir_tag NFC_HTM_READ-WRITE

Committer:
mauroar211
Date:
Fri Apr 24 18:17:09 2015 +0000
Revision:
0:b805b487fbef
LEER TAG

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mauroar211 0:b805b487fbef 1
mauroar211 0:b805b487fbef 2 #ifndef __LLCP_H__
mauroar211 0:b805b487fbef 3 #define __LLCP_H__
mauroar211 0:b805b487fbef 4
mauroar211 0:b805b487fbef 5 #include "mac_link.h"
mauroar211 0:b805b487fbef 6
mauroar211 0:b805b487fbef 7 #define LLCP_DEFAULT_TIMEOUT 20000
mauroar211 0:b805b487fbef 8 #define LLCP_DEFAULT_DSAP 0x04
mauroar211 0:b805b487fbef 9 #define LLCP_DEFAULT_SSAP 0x20
mauroar211 0:b805b487fbef 10
mauroar211 0:b805b487fbef 11 /**
mauroar211 0:b805b487fbef 12 * The LLCP class
mauroar211 0:b805b487fbef 13 */
mauroar211 0:b805b487fbef 14 class LLCP {
mauroar211 0:b805b487fbef 15 public:
mauroar211 0:b805b487fbef 16 LLCP(PN532Interface &interface) : link(interface) {
mauroar211 0:b805b487fbef 17 headerBuf = link.getHeaderBuffer(&headerBufLen);
mauroar211 0:b805b487fbef 18 ns = 0;
mauroar211 0:b805b487fbef 19 nr = 0;
mauroar211 0:b805b487fbef 20 };
mauroar211 0:b805b487fbef 21
mauroar211 0:b805b487fbef 22 /**
mauroar211 0:b805b487fbef 23 * @brief Actiave PN532 as a target
mauroar211 0:b805b487fbef 24 * @param timeout max time to wait, 0 means no timeout
mauroar211 0:b805b487fbef 25 * @return > 0 success
mauroar211 0:b805b487fbef 26 * = 0 timeout
mauroar211 0:b805b487fbef 27 * < 0 failed
mauroar211 0:b805b487fbef 28 */
mauroar211 0:b805b487fbef 29 int8_t activate(uint16_t timeout = 0);
mauroar211 0:b805b487fbef 30
mauroar211 0:b805b487fbef 31 int8_t waitForConnection(uint16_t timeout = LLCP_DEFAULT_TIMEOUT);
mauroar211 0:b805b487fbef 32
mauroar211 0:b805b487fbef 33 int8_t waitForDisconnection(uint16_t timeout = LLCP_DEFAULT_TIMEOUT);
mauroar211 0:b805b487fbef 34
mauroar211 0:b805b487fbef 35 int8_t connect(uint16_t timeout = LLCP_DEFAULT_TIMEOUT);
mauroar211 0:b805b487fbef 36
mauroar211 0:b805b487fbef 37 int8_t disconnect(uint16_t timeout = LLCP_DEFAULT_TIMEOUT);
mauroar211 0:b805b487fbef 38
mauroar211 0:b805b487fbef 39 /**
mauroar211 0:b805b487fbef 40 * @brief write a packet, the packet should be less than (255 - 2) bytes
mauroar211 0:b805b487fbef 41 * @param header packet header
mauroar211 0:b805b487fbef 42 * @param hlen length of header
mauroar211 0:b805b487fbef 43 * @param body packet body
mauroar211 0:b805b487fbef 44 * @param blen length of body
mauroar211 0:b805b487fbef 45 * @return true success
mauroar211 0:b805b487fbef 46 * false failed
mauroar211 0:b805b487fbef 47 */
mauroar211 0:b805b487fbef 48 bool write(const uint8_t *header, uint8_t hlen, const uint8_t *body = 0, uint8_t blen = 0);
mauroar211 0:b805b487fbef 49
mauroar211 0:b805b487fbef 50 /**
mauroar211 0:b805b487fbef 51 * @brief read a packet, the packet will be less than (255 - 2) bytes
mauroar211 0:b805b487fbef 52 * @param buf the buffer to contain the packet
mauroar211 0:b805b487fbef 53 * @param len lenght of the buffer
mauroar211 0:b805b487fbef 54 * @return >=0 length of the packet
mauroar211 0:b805b487fbef 55 * <0 failed
mauroar211 0:b805b487fbef 56 */
mauroar211 0:b805b487fbef 57 int16_t read(uint8_t *buf, uint8_t len);
mauroar211 0:b805b487fbef 58
mauroar211 0:b805b487fbef 59 uint8_t *getHeaderBuffer(uint8_t *len) {
mauroar211 0:b805b487fbef 60 uint8_t *buf = link.getHeaderBuffer(len);
mauroar211 0:b805b487fbef 61 len -= 3; // I PDU header has 3 bytes
mauroar211 0:b805b487fbef 62 return buf;
mauroar211 0:b805b487fbef 63 };
mauroar211 0:b805b487fbef 64
mauroar211 0:b805b487fbef 65 private:
mauroar211 0:b805b487fbef 66 MACLink link;
mauroar211 0:b805b487fbef 67 uint8_t ssap;
mauroar211 0:b805b487fbef 68 uint8_t dsap;
mauroar211 0:b805b487fbef 69 uint8_t *headerBuf;
mauroar211 0:b805b487fbef 70 uint8_t headerBufLen;
mauroar211 0:b805b487fbef 71 uint8_t ns; // Number of I PDU Sent
mauroar211 0:b805b487fbef 72 uint8_t nr; // Number of I PDU Received
mauroar211 0:b805b487fbef 73
mauroar211 0:b805b487fbef 74 static uint8_t SYMM_PDU[2];
mauroar211 0:b805b487fbef 75 };
mauroar211 0:b805b487fbef 76
mauroar211 0:b805b487fbef 77 #endif // __LLCP_H__