53 #define PRINTF(...) printf(__VA_ARGS__)
60 write_boolean(
const lwm2m_context_t *ctx, uint8_t *outbuf,
size_t outlen,
63 int len = snprintf((
char *)outbuf, outlen,
"{\"e\":[{\"n\":\"%u\",\"bv\":%s}]}\n", ctx->resource_id, value ?
"true" :
"false");
64 if((len < 0) || (len >= outlen)) {
71 write_int(
const lwm2m_context_t *ctx, uint8_t *outbuf,
size_t outlen,
74 int len = snprintf((
char *)outbuf, outlen,
"{\"e\":[{\"n\":\"%u\",\"v\":%" PRId32
"}]}\n", ctx->resource_id, value);
75 if((len < 0) || (len >= outlen)) {
82 write_float32fix(
const lwm2m_context_t *ctx, uint8_t *outbuf,
size_t outlen,
83 int32_t value,
int bits)
87 res = snprintf((
char *)outbuf, outlen,
"{\"e\":[{\"n\":\"%u\",\"v\":", ctx->resource_id);
88 if(res <= 0 || res >= outlen) {
93 res = lwm2m_plain_text_write_float32fix(&outbuf[len], outlen, value, bits);
94 if((res <= 0) || (res >= outlen)) {
99 res = snprintf((
char *)&outbuf[len], outlen,
"}]}\n");
100 if((res <= 0) || (res >= outlen)) {
108 write_string(
const lwm2m_context_t *ctx, uint8_t *outbuf,
size_t outlen,
109 const char *value,
size_t stringlen)
114 PRINTF(
"{\"e\":[{\"n\":\"%u\",\"sv\":\"", ctx->resource_id);
115 res = snprintf((
char *)outbuf, outlen,
"{\"e\":[{\"n\":\"%u\",\"sv\":\"", ctx->resource_id);
116 if(res < 0 || res >= outlen) {
120 for (i = 0; i < stringlen && len < outlen; ++i) {
123 if(value[i] <
'\x20') {
124 PRINTF(
"\\x%x", value[i]);
125 res = snprintf((
char *)&outbuf[len], outlen - len,
"\\x%x", value[i]);
126 if((res < 0) || (res >= (outlen - len))) {
131 }
else if(value[i] ==
'"' || value[i] ==
'\\') {
139 PRINTF(
"%c", value[i]);
140 outbuf[len] = value[i];
147 res = snprintf((
char *)&outbuf[len], outlen - len,
"\"}]}\n");
148 if((res < 0) || (res >= (outlen - len))) {
155 const lwm2m_writer_t lwm2m_json_writer = {
Header file for the Contiki OMA LWM2M object API
Header file for the Contiki OMA LWM2M plain text reader / writer
Header file for the Contiki OMA LWM2M JSON writer