Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: wakaama/liblwm2m.h
- 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.