net: lwm2m: Adds semantics for handling time

This far time values have been synonymous to integer values. Content
formats like CBOR do use different representation.

Signed-off-by: Veijo Pesonen <veijo.pesonen@nordicsemi.no>
This commit is contained in:
Veijo Pesonen 2022-01-13 16:24:47 +02:00 committed by Anas Nashif
commit 37b9bb87f0
5 changed files with 34 additions and 2 deletions

View file

@ -2375,7 +2375,6 @@ static int lwm2m_read_handler(struct lwm2m_engine_obj_inst *obj_inst,
break;
case LWM2M_RES_TYPE_U32:
case LWM2M_RES_TYPE_TIME:
ret = engine_put_s64(&msg->out, &msg->path,
(int64_t)*(uint32_t *)data_ptr);
break;
@ -2410,6 +2409,11 @@ static int lwm2m_read_handler(struct lwm2m_engine_obj_inst *obj_inst,
*(int8_t *)data_ptr);
break;
case LWM2M_RES_TYPE_TIME:
ret = engine_put_time(&msg->out, &msg->path,
(int64_t)*(uint32_t *)data_ptr);
break;
case LWM2M_RES_TYPE_BOOL:
ret = engine_put_bool(&msg->out, &msg->path,
*(bool *)data_ptr);
@ -2661,8 +2665,16 @@ int lwm2m_write_handler(struct lwm2m_engine_obj_inst *obj_inst,
len = strlen((char *)write_buf);
break;
case LWM2M_RES_TYPE_U32:
case LWM2M_RES_TYPE_TIME:
ret = engine_get_time(&msg->in, &temp64);
if (ret < 0) {
break;
}
*(uint32_t *)write_buf = temp64;
len = 4;
break;
case LWM2M_RES_TYPE_U32:
ret = engine_get_s64(&msg->in, &temp64);
if (ret < 0) {
break;