text: #ifndef NdefRecord_h
  #define NdefRecord_h
  
  #include <Due.h>
  #include <Arduino.h>
  #include <Ndef.h>
  
  #define TNF_EMPTY 0x0
  #define TNF_WELL_KNOWN 0x01
  #define TNF_MIME_MEDIA 0x02
  #define TNF_ABSOLUTE_URI 0x03
  #define TNF_EXTERNAL_TYPE 0x04
  #define TNF_UNKNOWN 0x05
  #define TNF_UNCHANGED 0x06
  #define TNF_RESERVED 0x07
  
  class NdefRecord {
    public:
      NdefRecord();
      NdefRecord(const NdefRecord& rhs);
      ~NdefRecord();
      NdefRecord& operator=(const NdefRecord& rhs);
  
      int getEncodedSize();
      void encode(byte* data, bool firstRecord, bool lastRecord);
  
      unsigned int getTypeLength();
      int getPayloadLength();
      unsigned int getIdLength();
  
      byte getTnf();
      void getType(byte* type);
      void getPayload(byte* payload);
      void getId(byte* id);
  
      // convenience methods
      String getType();
      String getId();
  
      void setTnf(byte tnf);
      void setType(const byte* type, const unsigned int numBytes);
      void setPayload(const byte* payload, const int numBytes);
      void setId(const byte* id, const unsigned int numBytes);
  
      #ifdef NDEF_USE_SERIAL
      void print();
      #endif
    private:
      byte getTnfByte(bool firstRecord, bool lastRecord);
      byte _tnf; // 3 bit
      unsigned int _typeLength;
      int _payloadLength;
      unsigned int _idLength;
      byte* _type;
      byte* _payload;
      byte* _id;
  };
  
  #endif