Blame view

PN532/mac_link.h 1.28 KB
1a2e5ee4   henyxia   Big revision
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  
  
  #ifndef __MAC_LINK_H__
  #define __MAC_LINK_H__
  
  #include "PN532.h"
  
  class MACLink {
  public:
      MACLink(PN532Interface &interface) : pn532(interface) {
  
      };
      
      /**
      * @brief    Activate PN532 as a target
      * @param    timeout max time to wait, 0 means no timeout
      * @return   > 0     success
      *           = 0     timeout
      *           < 0     failed
      */
      int8_t activateAsTarget(uint16_t timeout = 0);
  
      /**
      * @brief    write a PDU packet, the packet should be less than (255 - 2) bytes
      * @param    header  packet header
      * @param    hlen    length of header
      * @param 	body	packet body
      * @param 	blen	length of body
      * @return   true    success
      *           false   failed
      */
      bool write(const uint8_t *header, uint8_t hlen, const uint8_t *body = 0, uint8_t blen = 0);
  
      /**
      * @brief    read a PDU packet, the packet will be less than (255 - 2) bytes
      * @param    buf     the buffer to contain the PDU packet
      * @param    len     lenght of the buffer
      * @return   >=0     length of the PDU packet 
      *           <0      failed
      */
      int16_t read(uint8_t *buf, uint8_t len);
  
      uint8_t *getHeaderBuffer(uint8_t *len) {
          return pn532.getBuffer(len);
      };
      
  private:
      PN532 pn532;
  };
  
  #endif // __MAC_LINK_H__