From d9c7214fab465a206b1dcf22881fb963aa2997cd Mon Sep 17 00:00:00 2001 From: Robert Lubos Date: Mon, 22 Feb 2021 13:08:24 +0100 Subject: [PATCH] samples: net: lwm2m_client: Add an example use of the validation cb Add an example usage of the validation callback to the lwm2m_client sample. Signed-off-by: Robert Lubos --- samples/net/lwm2m_client/src/lwm2m-client.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/samples/net/lwm2m_client/src/lwm2m-client.c b/samples/net/lwm2m_client/src/lwm2m-client.c index af8a1fd899d..1cb12f122de 100644 --- a/samples/net/lwm2m_client/src/lwm2m-client.c +++ b/samples/net/lwm2m_client/src/lwm2m-client.c @@ -233,6 +233,25 @@ static int firmware_block_received_cb(uint16_t obj_inst_id, } #endif +/* An example data validation callback. */ +static int timer_on_off_validate_cb(uint16_t obj_inst_id, uint16_t res_id, + uint16_t res_inst_id, uint8_t *data, + uint16_t data_len, bool last_block, + size_t total_size) +{ + LOG_INF("Validating On/Off data"); + + if (data_len != 1) { + return -EINVAL; + } + + if (*data > 1) { + return -EINVAL; + } + + return 0; +} + static int timer_digital_state_cb(uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, uint8_t *data, uint16_t data_len, @@ -365,6 +384,8 @@ static int lwm2m_setup(void) /* IPSO: Timer object */ lwm2m_engine_create_obj_inst("3340/0"); + lwm2m_engine_register_validate_callback("3340/0/5850", + timer_on_off_validate_cb); lwm2m_engine_register_post_write_callback("3340/0/5543", timer_digital_state_cb); lwm2m_engine_set_res_data("3340/0/5750", TIMER_NAME, sizeof(TIMER_NAME),