terence zhang / Mbed OS mbed-os-example-wakaama

Dependencies:   C12832 LM75B

Revision:
16:31c387e94b6d
Parent:
14:ec9e195830ff
--- a/wakaama/liblwm2m.h	Sun May 07 03:00:16 2017 +0000
+++ b/wakaama/liblwm2m.h	Thu May 11 12:40:25 2017 +0000
@@ -79,6 +79,8 @@
 #define LWM2M_WITH_LOGS
 #define SHARED_DEFINITIONS
 #define WAKAAMA_DEFINITIONS
+
+//#define ENABLE_RGB_LED, WIP
 #endif
 
 #ifndef LWM2M_EMBEDDED_MODE
@@ -297,6 +299,8 @@
 #define LWM2M_LIST_FIND(H,I) lwm2m_list_find((lwm2m_list_t *)H, I)
 #define LWM2M_LIST_FREE(H) lwm2m_list_free((lwm2m_list_t *)H)
 
+
+
 /*
  * URI
  *
@@ -349,7 +353,6 @@
     LWM2M_TYPE_OBJECT,
     LWM2M_TYPE_OBJECT_INSTANCE,
     LWM2M_TYPE_MULTIPLE_RESOURCE,
-
     LWM2M_TYPE_STRING,
     LWM2M_TYPE_OPAQUE,
     LWM2M_TYPE_INTEGER,
@@ -765,6 +768,68 @@
 
 #ifdef MBED_OS_EXAMPLE_WAKAAMA
 int lwm2m_add_server(lwm2m_context_t * contextP, uint16_t shortID, uint32_t lifetime, char * sms, lwm2m_binding_t binding, void * sessionH, lwm2m_security_t * securityP);
+
+#if 0
+
+/*
+ * TLV
+ */
+
+#define LWM2M_TLV_HEADER_MAX_LENGTH 6
+
+/*
+ * Bitmask for the lwm2m_tlv_t::flag
+ * LWM2M_TLV_FLAG_STATIC_DATA specifies that lwm2m_tlv_t::value
+ * points to static memory and must no be freeed by the caller.
+ * LWM2M_TLV_FLAG_TEXT_FORMAT specifies that lwm2m_tlv_t::value
+ * is expressed or requested in plain text format.
+ */
+#define LWM2M_TLV_FLAG_STATIC_DATA   0x01
+#define LWM2M_TLV_FLAG_TEXT_FORMAT   0x02
+
+#ifdef LWM2M_BOOTSTRAP
+#define LWM2M_TLV_FLAG_BOOTSTRAPPING 0x04
+#endif
+
+/*
+ * Bits 7 and 6 of assigned values for LWM2M_TYPE_RESOURCE,
+ * LWM2M_TYPE_MULTIPLE_RESOURCE, LWM2M_TYPE_RESOURCE_INSTANCE
+ * and LWM2M_TYPE_OBJECT_INSTANCE must match the ones defined
+ * in the TLV format from LWM2M TS §6.3.3
+ *
+ */
+ /*
+typedef enum
+{
+    LWM2M_TYPE_RESOURCE = 0xC0,
+    LWM2M_TYPE_MULTIPLE_RESOURCE = 0x80,
+    LWM2M_TYPE_RESOURCE_INSTANCE = 0x40,
+    LWM2M_TYPE_OBJECT_INSTANCE = 0x00
+} lwm2m_tlv_type_t;
+*/
+typedef struct
+{
+    uint8_t     flags;
+    lwm2m_tlv_type_t  type;
+    lwm2m_data_type_t dataType;
+    uint16_t    id;
+    size_t      length;
+    uint8_t *   value;
+} lwm2m_tlv_t;
+
+lwm2m_tlv_t * lwm2m_tlv_new(int size);
+int lwm2m_tlv_parse(uint8_t * buffer, size_t bufferLen, lwm2m_tlv_t ** dataP);
+int lwm2m_tlv_serialize(int size, lwm2m_tlv_t * tlvP, uint8_t ** bufferP);
+void lwm2m_tlv_free(int size, lwm2m_tlv_t * tlvP);
+
+void lwm2m_tlv_encode_int(int64_t data, lwm2m_tlv_t * tlvP);
+int lwm2m_tlv_decode_int(lwm2m_tlv_t * tlvP, int64_t * dataP);
+void lwm2m_tlv_encode_float(double data, lwm2m_tlv_t * tlvP);
+int lwm2m_tlv_decode_float(lwm2m_tlv_t * tlvP, double * dataP);
+void lwm2m_tlv_encode_bool(bool data, lwm2m_tlv_t * tlvP);
+int lwm2m_tlv_decode_bool(lwm2m_tlv_t * tlvP, bool * dataP);
+void lwm2m_tlv_include(lwm2m_tlv_t * subTlvP, size_t count, lwm2m_tlv_t * tlvP);
+#endif
 #endif
 
 // initialize a liblwm2m context.