AppNearMe µNFC stack for the NXP PN532 chip License: You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Dependents:   IOT_sensor_nfc AppNearMe_MuNFC_PN532_Test p2p_nfc_test NFCMoodLamp ... more

License

You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!

Revision:
3:0b949b2d3b55
Parent:
1:1074716d0111
--- a/PN532/TLVList.cpp	Thu Jul 26 10:02:19 2012 +0000
+++ b/PN532/TLVList.cpp	Tue Aug 07 21:55:12 2012 +0000
@@ -1,235 +1,235 @@
-/*
-	TLVList.cpp 
-	Copyright (c) Donatien Garnier 2012
-	donatien.garnier@appnearme.com
-	http://www.appnearme.com/
-*/
-
-#include "TLVList.h"
-
-#include "munfc/core/fwk.h"
-#include "munfc/ndef/appnearme_ndef_tlv.h"
-
-#include <cstring> //For memcpy, strlen
-using std::memcpy;
-using std::strlen;
-
-TLVList::TLVList() : m_tlvList(NULL)
-{
-
-}
-
-void TLVList::wrap(tlv_list* payload)
-{
-  m_tlvList = payload;
-  m_space = true;
-  m_type = NONE;
-}
-
-
-
-/* Getters */
-
-/** Iterate to next item
- *  @return type if next item exists, NONE otherwise
- */
-TLVList::TLVType TLVList::getNext()
-{
-  if(!m_tlvList)
-  {
-    return NONE;
-  }
-
-  m_type = (TLVList::TLVType) appnearme_ndef_tlv_next_type(m_tlvList); //Explicit cast, this is the same enum
-  switch(m_type)
-  {
-  case UINT8:
-    m_arrayLen = 0;
-    m_uint8 = appnearme_ndef_tlv_get_uint8(m_tlvList);
-    break;
-  case UINT32:
-    m_arrayLen = 0;
-    m_uint32 = appnearme_ndef_tlv_get_uint32(m_tlvList);
-    break;
-  case UINT8_ARRAY:
-    //In this order, otherwise would break state-machine
-    m_arrayLen = appnearme_ndef_tlv_get_array_length(m_tlvList);
-    m_array = appnearme_ndef_tlv_get_array(m_tlvList);
-    break;
-  case STRING:
-    //In this order, otherwise would break state-machine
-    m_strLen = appnearme_ndef_tlv_get_string_length(m_tlvList);
-    m_str = appnearme_ndef_tlv_get_string(m_tlvList);
-    break;
-  }
-  return m_type;
-}
-
-/** Get uint8_t value
- * If the current item's type is uint32_t, the value will be masked with 0xFF
- *  @return uint8_t value OR 0 if the type is incompatible
- */
-uint8_t TLVList::getUInt8()
-{
-  switch(m_type)
-  {
-  case UINT8:
-    return m_uint8;
-  case UINT32:
-    return m_uint32 & 0xFF;
-  default:
-    return 0;
-  }
-}
-
-/** Get uint32_t value
- * If the current item's type is uint8_t, the value will be casted to uint32_t
- *  @return uint32_t value OR 0 if the type is incompatible
- */
-uint32_t TLVList::getUInt32()
-{
-  switch(m_type)
-  {
-  case UINT32:
-    return m_uint32;
-  case UINT8:
-    return m_uint8 & 0xFF;
-  default:
-    return 0;
-  }
-}
-
-/** Get array length
- *  @return bytes array length
- */
-size_t TLVList::getArrayLength()
-{
-  switch(m_type)
-  {
-  case UINT8_ARRAY:
-    return m_arrayLen;
-  default:
-    return 0;
-  }
-}
-
-/** Get array
- *  @param buf pointer to buffer's start
- *  @param maxLen maximum number of bytes to copy
- *  @return number of copied bytes
- */
-size_t TLVList::getArray(uint8_t* buf, size_t maxLen)
-{
-  if(m_type != UINT8_ARRAY)
-  {
-    return 0;
-  }
-  size_t len = MIN(maxLen, m_arrayLen);
-  memcpy(buf, m_array, len);
-  return len;
-}
-
-/** Get string length
- *  @return string length
- */
-size_t TLVList::getStringLength()
-{
-  switch(m_type)
-  {
-  case STRING:
-    return m_strLen;
-  default:
-    return 0;
-  }
-}
-
-
-/** Get string
- *  Copy string to buffer (including null-terminating char)
- *  @param str pointer to string's start
- *  @param maxLen maximum number of chars to copy (not including null-terminating char)
- *  @return number of copied chars
- */
-size_t TLVList::getString(char* str, size_t maxLen)
-{
-  if(m_type != STRING)
-  {
-    return 0;
-  }
-  size_t len = MIN(maxLen, m_strLen);
-  memcpy(str, m_str, len);
-  str[len] = '\0'; //Add null-terminating char
-  return len;
-}
-
-/* Setters */
-
-/** Check whether there is space left in list
- *  @return true if there is space left, false otherwise
- */
-bool TLVList::isSpace()
-{
-  return m_space;
-}
-
-/** Put uint8_t value
- *  @param value uint8_t value
- *  @return true on success, false if there is not enough space in buffer
- */
-bool TLVList::putUInt8(uint8_t value)
-{
-  int res = appnearme_ndef_tlv_put_uint8(m_tlvList, value);
-  if( !res )
-  {
-    m_space = false;
-    return false;
-  }
-  return true;
-}
-
-/** Put uint32_t value
- *  @param value uint32_t value
- *  @return true on success, false if there is not enough space in buffer
- */
-bool TLVList::putUInt32(uint32_t value)
-{
-  int res = appnearme_ndef_tlv_put_uint32(m_tlvList, value);
-  if( !res )
-  {
-    m_space = false;
-    return false;
-  }
-  return true;
-}
-
-/** Put array
- *  @param buf pointer to buffer's start
- *  @param len number of bytes to copy
- *  @return number of copied bytes
- */
-size_t TLVList::putArray(uint8_t* buf, size_t len)
-{
-  int res = appnearme_ndef_tlv_put_array(m_tlvList, buf, len);
-  if( !res )
-  {
-    m_space = false;
-    return 0;
-  }
-  return len;
-}
-
-/** Put string
- *  @param str pointer to null-terminated string's start
- *  @return number of copied bytes
- */
-size_t TLVList::putString(char* str)
-{
-  int res = appnearme_ndef_tlv_put_string(m_tlvList, str);
-  if( !res )
-  {
-    m_space = false;
-    return 0;
-  }
-  return strlen(str);
-}
-
+/*
+    TLVList.cpp 
+    Copyright (c) Donatien Garnier 2012
+    donatien.garnier@appnearme.com
+    http://www.appnearme.com/
+*/
+
+#include "TLVList.h"
+
+#include "munfc/core/fwk.h"
+#include "munfc/ndef/appnearme_ndef_tlv.h"
+
+#include <cstring> //For memcpy, strlen
+using std::memcpy;
+using std::strlen;
+
+TLVList::TLVList() : m_tlvList(NULL)
+{
+
+}
+
+void TLVList::wrap(tlv_list* payload)
+{
+  m_tlvList = payload;
+  m_space = true;
+  m_type = NONE;
+}
+
+
+
+/* Getters */
+
+/** Iterate to next item
+ *  @return type if next item exists, NONE otherwise
+ */
+TLVList::TLVType TLVList::getNext()
+{
+  if(!m_tlvList)
+  {
+    return NONE;
+  }
+
+  m_type = (TLVList::TLVType) appnearme_ndef_tlv_next_type(m_tlvList); //Explicit cast, this is the same enum
+  switch(m_type)
+  {
+  case UINT8:
+    m_arrayLen = 0;
+    m_uint8 = appnearme_ndef_tlv_get_uint8(m_tlvList);
+    break;
+  case UINT32:
+    m_arrayLen = 0;
+    m_uint32 = appnearme_ndef_tlv_get_uint32(m_tlvList);
+    break;
+  case UINT8_ARRAY:
+    //In this order, otherwise would break state-machine
+    m_arrayLen = appnearme_ndef_tlv_get_array_length(m_tlvList);
+    m_array = appnearme_ndef_tlv_get_array(m_tlvList);
+    break;
+  case STRING:
+    //In this order, otherwise would break state-machine
+    m_strLen = appnearme_ndef_tlv_get_string_length(m_tlvList);
+    m_str = appnearme_ndef_tlv_get_string(m_tlvList);
+    break;
+  }
+  return m_type;
+}
+
+/** Get uint8_t value
+ * If the current item's type is uint32_t, the value will be masked with 0xFF
+ *  @return uint8_t value OR 0 if the type is incompatible
+ */
+uint8_t TLVList::getUInt8()
+{
+  switch(m_type)
+  {
+  case UINT8:
+    return m_uint8;
+  case UINT32:
+    return m_uint32 & 0xFF;
+  default:
+    return 0;
+  }
+}
+
+/** Get uint32_t value
+ * If the current item's type is uint8_t, the value will be casted to uint32_t
+ *  @return uint32_t value OR 0 if the type is incompatible
+ */
+uint32_t TLVList::getUInt32()
+{
+  switch(m_type)
+  {
+  case UINT32:
+    return m_uint32;
+  case UINT8:
+    return m_uint8 & 0xFF;
+  default:
+    return 0;
+  }
+}
+
+/** Get array length
+ *  @return bytes array length
+ */
+size_t TLVList::getArrayLength()
+{
+  switch(m_type)
+  {
+  case UINT8_ARRAY:
+    return m_arrayLen;
+  default:
+    return 0;
+  }
+}
+
+/** Get array
+ *  @param buf pointer to buffer's start
+ *  @param maxLen maximum number of bytes to copy
+ *  @return number of copied bytes
+ */
+size_t TLVList::getArray(uint8_t* buf, size_t maxLen)
+{
+  if(m_type != UINT8_ARRAY)
+  {
+    return 0;
+  }
+  size_t len = MIN(maxLen, m_arrayLen);
+  memcpy(buf, m_array, len);
+  return len;
+}
+
+/** Get string length
+ *  @return string length
+ */
+size_t TLVList::getStringLength()
+{
+  switch(m_type)
+  {
+  case STRING:
+    return m_strLen;
+  default:
+    return 0;
+  }
+}
+
+
+/** Get string
+ *  Copy string to buffer (including null-terminating char)
+ *  @param str pointer to string's start
+ *  @param maxLen maximum number of chars to copy (not including null-terminating char)
+ *  @return number of copied chars
+ */
+size_t TLVList::getString(char* str, size_t maxLen)
+{
+  if(m_type != STRING)
+  {
+    return 0;
+  }
+  size_t len = MIN(maxLen, m_strLen);
+  memcpy(str, m_str, len);
+  str[len] = '\0'; //Add null-terminating char
+  return len;
+}
+
+/* Setters */
+
+/** Check whether there is space left in list
+ *  @return true if there is space left, false otherwise
+ */
+bool TLVList::isSpace()
+{
+  return m_space;
+}
+
+/** Put uint8_t value
+ *  @param value uint8_t value
+ *  @return true on success, false if there is not enough space in buffer
+ */
+bool TLVList::putUInt8(uint8_t value)
+{
+  int res = appnearme_ndef_tlv_put_uint8(m_tlvList, value);
+  if( !res )
+  {
+    m_space = false;
+    return false;
+  }
+  return true;
+}
+
+/** Put uint32_t value
+ *  @param value uint32_t value
+ *  @return true on success, false if there is not enough space in buffer
+ */
+bool TLVList::putUInt32(uint32_t value)
+{
+  int res = appnearme_ndef_tlv_put_uint32(m_tlvList, value);
+  if( !res )
+  {
+    m_space = false;
+    return false;
+  }
+  return true;
+}
+
+/** Put array
+ *  @param buf pointer to buffer's start
+ *  @param len number of bytes to copy
+ *  @return number of copied bytes
+ */
+size_t TLVList::putArray(uint8_t* buf, size_t len)
+{
+  int res = appnearme_ndef_tlv_put_array(m_tlvList, buf, len);
+  if( !res )
+  {
+    m_space = false;
+    return 0;
+  }
+  return len;
+}
+
+/** Put string
+ *  @param str pointer to null-terminated string's start
+ *  @return number of copied bytes
+ */
+size_t TLVList::putString(char* str)
+{
+  int res = appnearme_ndef_tlv_put_string(m_tlvList, str);
+  if( !res )
+  {
+    m_space = false;
+    return 0;
+  }
+  return strlen(str);
+}
+