From abafd7e8104417dc7ded98ce1b202e1df542ce45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jarno=20L=C3=A4ms=C3=A4?= Date: Thu, 5 Jan 2023 11:35:39 +0200 Subject: [PATCH] net: lib: lwm2m: Replace deprecated function calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace calls to deprecated functions with new ones. Signed-off-by: Jarno Lämsä --- subsys/net/lib/lwm2m/ipso_buzzer.c | 14 ++-- subsys/net/lib/lwm2m/ipso_push_button.c | 12 ++- subsys/net/lib/lwm2m/ipso_timer.c | 14 ++-- subsys/net/lib/lwm2m/lwm2m_engine.c | 20 ++--- subsys/net/lib/lwm2m/lwm2m_obj_firmware.c | 25 +++--- subsys/net/lib/lwm2m/lwm2m_obj_swmgmt.c | 24 +++--- subsys/net/lib/lwm2m/lwm2m_rd_client.c | 12 +-- subsys/net/lib/lwm2m/lwm2m_rw_link_format.c | 19 +---- subsys/net/lib/lwm2m/lwm2m_shell.c | 82 +++++++++---------- .../lib/lwm2m/content_link_format/src/main.c | 4 +- 10 files changed, 96 insertions(+), 130 deletions(-) diff --git a/subsys/net/lib/lwm2m/ipso_buzzer.c b/subsys/net/lib/lwm2m/ipso_buzzer.c index c30e8a9a19f..0754960350e 100644 --- a/subsys/net/lib/lwm2m/ipso_buzzer.c +++ b/subsys/net/lib/lwm2m/ipso_buzzer.c @@ -100,7 +100,8 @@ static int get_buzzer_index(uint16_t obj_inst_id) static int start_buzzer(struct ipso_buzzer_data *buzzer) { uint32_t temp = 0U; - char path[MAX_RESOURCE_LEN]; + struct lwm2m_obj_path path = LWM2M_OBJ(IPSO_OBJECT_BUZZER_ID, buzzer->obj_inst_id, + DIGITAL_INPUT_STATE_RID); /* make sure buzzer is currently not active */ if (buzzer->active) { @@ -116,9 +117,7 @@ static int start_buzzer(struct ipso_buzzer_data *buzzer) /* TODO: check delay_duration > 0 */ buzzer->trigger_offset = k_uptime_get(); - snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID, - buzzer->obj_inst_id, DIGITAL_INPUT_STATE_RID); - lwm2m_engine_set_bool(path, true); + lwm2m_set_bool(&path, true); temp = (uint32_t)(buzzer->delay_duration * MSEC_PER_SEC); k_work_reschedule(&buzzer->buzzer_work, K_MSEC(temp)); @@ -128,16 +127,15 @@ static int start_buzzer(struct ipso_buzzer_data *buzzer) static int stop_buzzer(struct ipso_buzzer_data *buzzer, bool cancel) { - char path[MAX_RESOURCE_LEN]; + struct lwm2m_obj_path path = LWM2M_OBJ(IPSO_OBJECT_BUZZER_ID, buzzer->obj_inst_id, + DIGITAL_INPUT_STATE_RID); /* make sure buzzer is currently active */ if (!buzzer->active) { return -EINVAL; } - snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_BUZZER_ID, - buzzer->obj_inst_id, DIGITAL_INPUT_STATE_RID); - lwm2m_engine_set_bool(path, false); + lwm2m_set_bool(&path, false); if (cancel) { k_work_cancel_delayable(&buzzer->buzzer_work); diff --git a/subsys/net/lib/lwm2m/ipso_push_button.c b/subsys/net/lib/lwm2m/ipso_push_button.c index 242aee0f937..73704e33985 100644 --- a/subsys/net/lib/lwm2m/ipso_push_button.c +++ b/subsys/net/lib/lwm2m/ipso_push_button.c @@ -88,7 +88,6 @@ static int state_post_write_cb(uint16_t obj_inst_id, bool last_block, size_t total_size) { int i; - char path[MAX_RESOURCE_LEN]; i = get_button_index(obj_inst_id); if (i < 0) { @@ -98,17 +97,16 @@ static int state_post_write_cb(uint16_t obj_inst_id, if (button_data[i].state && !button_data[i].last_state) { /* off to on transition, increment the counter */ int64_t counter = button_data[i].counter + 1; + struct lwm2m_obj_path path = LWM2M_OBJ(IPSO_OBJECT_PUSH_BUTTON_ID, obj_inst_id, + DIGITAL_INPUT_COUNTER_RID); if (counter < 0) { counter = 0; } - snprintk(path, sizeof(path), "%u/%u/%u", - IPSO_OBJECT_PUSH_BUTTON_ID, obj_inst_id, - DIGITAL_INPUT_COUNTER_RID); - - if (lwm2m_engine_set_s64(path, counter) < 0) { - LOG_ERR("Failed to increment counter resource %s", path); + if (lwm2m_set_s64(&path, counter) < 0) { + LOG_ERR("Failed to increment counter resource %d/%d/%d", path.obj_id, + path.obj_inst_id, path.res_id); } } diff --git a/subsys/net/lib/lwm2m/ipso_timer.c b/subsys/net/lib/lwm2m/ipso_timer.c index e8297c9d3e0..68bf74d403c 100644 --- a/subsys/net/lib/lwm2m/ipso_timer.c +++ b/subsys/net/lib/lwm2m/ipso_timer.c @@ -104,7 +104,8 @@ static int get_timer_index(uint16_t obj_inst_id) static int start_timer(struct ipso_timer_data *timer) { uint32_t temp = 0U; - char path[MAX_RESOURCE_LEN]; + struct lwm2m_obj_path path = LWM2M_OBJ(IPSO_OBJECT_TIMER_ID, timer->obj_inst_id, + DIGITAL_STATE_RID); /* make sure timer is enabled and not already active */ if (timer->timer_mode == TIMER_MODE_OFF || timer->active || @@ -123,9 +124,7 @@ static int start_timer(struct ipso_timer_data *timer) timer->trigger_offset = k_uptime_get(); timer->trigger_counter += 1U; - snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID, - timer->obj_inst_id, DIGITAL_STATE_RID); - lwm2m_engine_set_bool(path, true); + lwm2m_set_bool(&path, true); temp = timer->delay_duration * MSEC_PER_SEC; k_work_reschedule(&timer->timer_work, K_MSEC(temp)); @@ -135,7 +134,8 @@ static int start_timer(struct ipso_timer_data *timer) static int stop_timer(struct ipso_timer_data *timer, bool cancel) { - char path[MAX_RESOURCE_LEN]; + struct lwm2m_obj_path path = LWM2M_OBJ(IPSO_OBJECT_TIMER_ID, timer->obj_inst_id, + DIGITAL_STATE_RID); /* make sure timer is active */ if (!timer->active) { @@ -143,9 +143,7 @@ static int stop_timer(struct ipso_timer_data *timer, bool cancel) } timer->cumulative_time_ms += k_uptime_get() - timer->trigger_offset; - snprintk(path, MAX_RESOURCE_LEN, "%d/%u/%d", IPSO_OBJECT_TIMER_ID, - timer->obj_inst_id, DIGITAL_STATE_RID); - lwm2m_engine_set_bool(path, false); + lwm2m_set_bool(&path, false); if (cancel) { k_work_cancel_delayable(&timer->timer_work); diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index c119b09cdd5..48b007324a9 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -317,14 +317,12 @@ int lwm2m_engine_validate_write_access(struct lwm2m_message *msg, #if defined(CONFIG_LWM2M_RD_CLIENT_SUPPORT_BOOTSTRAP) static bool bootstrap_delete_allowed(int obj_id, int obj_inst_id) { - char pathstr[MAX_RESOURCE_LEN]; bool bootstrap_server; int ret; if (obj_id == LWM2M_OBJECT_SECURITY_ID) { - snprintk(pathstr, sizeof(pathstr), "%d/%d/1", LWM2M_OBJECT_SECURITY_ID, - obj_inst_id); - ret = lwm2m_engine_get_bool(pathstr, &bootstrap_server); + ret = lwm2m_get_bool(&LWM2M_OBJ(LWM2M_OBJECT_SECURITY_ID, obj_inst_id, 1), + &bootstrap_server); if (ret < 0) { return false; } @@ -787,16 +785,15 @@ static int load_tls_credential(struct lwm2m_ctx *client_ctx, uint16_t res_id, void *cred = NULL; uint16_t cred_len; uint8_t cred_flags; - char pathstr[MAX_RESOURCE_LEN]; /* ignore error value */ tls_credential_delete(client_ctx->tls_tag, type); - snprintk(pathstr, sizeof(pathstr), "0/%d/%u", client_ctx->sec_obj_inst, res_id); - - ret = lwm2m_engine_get_res_buf(pathstr, &cred, NULL, &cred_len, &cred_flags); + ret = lwm2m_get_res_buf(&LWM2M_OBJ(0, client_ctx->sec_obj_inst, res_id), &cred, NULL, + &cred_len, &cred_flags); if (ret < 0) { - LOG_ERR("Unable to get resource data for '%s'", pathstr); + LOG_ERR("Unable to get resource data for %d/%d/%d", 0, client_ctx->sec_obj_inst, + res_id); return ret; } @@ -957,15 +954,14 @@ int lwm2m_engine_stop(struct lwm2m_ctx *client_ctx) int lwm2m_engine_start(struct lwm2m_ctx *client_ctx) { - char pathstr[MAX_RESOURCE_LEN]; char *url; uint16_t url_len; uint8_t url_data_flags; int ret = 0U; /* get the server URL */ - snprintk(pathstr, sizeof(pathstr), "0/%d/0", client_ctx->sec_obj_inst); - ret = lwm2m_engine_get_res_buf(pathstr, (void **)&url, NULL, &url_len, &url_data_flags); + ret = lwm2m_get_res_buf(&LWM2M_OBJ(0, client_ctx->sec_obj_inst, 0), (void **)&url, NULL, + &url_len, &url_data_flags); if (ret < 0) { return ret; } diff --git a/subsys/net/lib/lwm2m/lwm2m_obj_firmware.c b/subsys/net/lib/lwm2m/lwm2m_obj_firmware.c index ac0fe290ce3..fdad6102a2a 100644 --- a/subsys/net/lib/lwm2m/lwm2m_obj_firmware.c +++ b/subsys/net/lib/lwm2m/lwm2m_obj_firmware.c @@ -97,25 +97,23 @@ uint8_t lwm2m_firmware_get_update_state(void) void lwm2m_firmware_set_update_state_inst(uint16_t obj_inst_id, uint8_t state) { bool error = false; - char path[LWM2M_MAX_PATH_STR_SIZE]; - - snprintk(path, sizeof(path), "%" PRIu16 "/%" PRIu16 "/%" PRIu16, - LWM2M_OBJECT_FIRMWARE_ID, obj_inst_id, FIRMWARE_UPDATE_RESULT_ID); + struct lwm2m_obj_path path = LWM2M_OBJ(LWM2M_OBJECT_FIRMWARE_ID, obj_inst_id, + FIRMWARE_UPDATE_RESULT_ID); /* Check LWM2M SPEC appendix E.6.1 */ switch (state) { case STATE_DOWNLOADING: if (update_state[obj_inst_id] == STATE_IDLE) { - lwm2m_engine_set_u8(path, RESULT_DEFAULT); + lwm2m_set_u8(&path, RESULT_DEFAULT); } else { error = true; } break; case STATE_DOWNLOADED: if (update_state[obj_inst_id] == STATE_DOWNLOADING) { - lwm2m_engine_set_u8(path, RESULT_DEFAULT); + lwm2m_set_u8(&path, RESULT_DEFAULT); } else if (update_state[obj_inst_id] == STATE_UPDATING) { - lwm2m_engine_set_u8(path, RESULT_UPDATE_FAILED); + lwm2m_set_u8(&path, RESULT_UPDATE_FAILED); } else { error = true; } @@ -137,10 +135,9 @@ void lwm2m_firmware_set_update_state_inst(uint16_t obj_inst_id, uint8_t state) update_state[obj_inst_id], state); } - snprintk(path, sizeof(path), "%" PRIu16 "/%" PRIu16 "/%" PRIu16, - LWM2M_OBJECT_FIRMWARE_ID, obj_inst_id, FIRMWARE_STATE_ID); + path.res_id = FIRMWARE_STATE_ID; - lwm2m_engine_set_u8(path, state); + lwm2m_set_u8(&path, state); LOG_DBG("Update state = %d", state); } @@ -164,7 +161,8 @@ void lwm2m_firmware_set_update_result_inst(uint16_t obj_inst_id, uint8_t result) { uint8_t state; bool error = false; - char path[LWM2M_MAX_PATH_STR_SIZE]; + struct lwm2m_obj_path path = LWM2M_OBJ(LWM2M_OBJECT_FIRMWARE_ID, obj_inst_id, + FIRMWARE_UPDATE_RESULT_ID); /* Check LWM2M SPEC appendix E.6.1 */ switch (result) { @@ -220,10 +218,7 @@ void lwm2m_firmware_set_update_result_inst(uint16_t obj_inst_id, uint8_t result) result, state); } - snprintk(path, sizeof(path), "%" PRIu16 "/%" PRIu16 "/%" PRIu16, - LWM2M_OBJECT_FIRMWARE_ID, obj_inst_id, FIRMWARE_UPDATE_RESULT_ID); - - lwm2m_engine_set_u8(path, result); + lwm2m_set_u8(&path, result); LOG_DBG("Update result = %d", result); } diff --git a/subsys/net/lib/lwm2m/lwm2m_obj_swmgmt.c b/subsys/net/lib/lwm2m/lwm2m_obj_swmgmt.c index a7f95af74ba..ddbba643a71 100644 --- a/subsys/net/lib/lwm2m/lwm2m_obj_swmgmt.c +++ b/subsys/net/lib/lwm2m/lwm2m_obj_swmgmt.c @@ -205,11 +205,11 @@ static void *callback_read_not_defined(uint16_t obj_inst_id, uint16_t res_id, ui static void set_sw_update_state(struct lwm2m_swmgmt_data *instance, uint8_t state) { int ret; - char obj_path[LWM2M_MAX_PATH_STR_SIZE]; + struct lwm2m_obj_path obj_path = LWM2M_OBJ(LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, + instance->obj_inst_id, + SWMGMT_UPDATE_STATE_ID); - (void)snprintk(obj_path, sizeof(obj_path), "%d/%d/%d", LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, - instance->obj_inst_id, SWMGMT_UPDATE_STATE_ID); - ret = lwm2m_engine_set_u8(obj_path, state); + ret = lwm2m_set_u8(obj_path, state); if (ret != 0) { LOG_ERR("Could not set state"); } @@ -218,11 +218,11 @@ static void set_sw_update_state(struct lwm2m_swmgmt_data *instance, uint8_t stat static void set_sw_update_result(struct lwm2m_swmgmt_data *instance, uint8_t result) { int ret; - char obj_path[LWM2M_MAX_PATH_STR_SIZE]; + struct lwm2m_obj_path obj_path = LWM2M_OBJ(LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, + instance->obj_inst_id, + SWMGMT_UPDATE_RESULT_ID); - (void)snprintk(obj_path, sizeof(obj_path), "%d/%d/%d", LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, - instance->obj_inst_id, SWMGMT_UPDATE_RESULT_ID); - ret = lwm2m_engine_set_u8(obj_path, result); + ret = lwm2m_set_u8(&obj_path, result); if (ret != 0) { LOG_ERR("Could not set result"); } @@ -231,11 +231,11 @@ static void set_sw_update_result(struct lwm2m_swmgmt_data *instance, uint8_t res static void set_sw_update_act_state(struct lwm2m_swmgmt_data *instance, bool state) { int ret; - char obj_path[LWM2M_MAX_PATH_STR_SIZE]; + struct lwm2m_obj_path obj_path = LWM2M_OBJ(LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, + instance->obj_inst_id, + SWMGMT_ACTIVATION_UPD_STATE_ID); - (void)snprintk(obj_path, sizeof(obj_path), "%d/%d/%d", LWM2M_OBJECT_SOFTWARE_MANAGEMENT_ID, - instance->obj_inst_id, SWMGMT_ACTIVATION_UPD_STATE_ID); - ret = lwm2m_engine_set_bool(obj_path, state); + ret = lwm2m_set_bool(&obj_path, state); if (ret != 0) { LOG_ERR("Could not set activation state"); } diff --git a/subsys/net/lib/lwm2m/lwm2m_rd_client.c b/subsys/net/lib/lwm2m/lwm2m_rd_client.c index 08d409449d1..491c1f3f38e 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rd_client.c +++ b/subsys/net/lib/lwm2m/lwm2m_rd_client.c @@ -571,12 +571,10 @@ static void do_deregister_timeout_cb(struct lwm2m_message *msg) static bool sm_bootstrap_verify(bool bootstrap_server, int sec_obj_inst) { - char pathstr[MAX_RESOURCE_LEN]; bool bootstrap; int ret; - snprintk(pathstr, sizeof(pathstr), "0/%d/1", sec_obj_inst); - ret = lwm2m_engine_get_bool(pathstr, &bootstrap); + ret = lwm2m_get_bool(&LWM2M_OBJ(0, sec_obj_inst, 1), &bootstrap); if (ret < 0) { LOG_WRN("Failed to check bootstrap, err %d", ret); return false; @@ -591,11 +589,9 @@ static bool sm_bootstrap_verify(bool bootstrap_server, int sec_obj_inst) static bool sm_update_lifetime(int srv_obj_inst, uint32_t *lifetime) { - char pathstr[MAX_RESOURCE_LEN]; uint32_t new_lifetime; - snprintk(pathstr, sizeof(pathstr), "1/%d/1", srv_obj_inst); - if (lwm2m_engine_get_u32(pathstr, &new_lifetime) < 0) { + if (lwm2m_get_u32(&LWM2M_OBJ(1, srv_obj_inst, 1), &new_lifetime) < 0) { new_lifetime = CONFIG_LWM2M_ENGINE_DEFAULT_LIFETIME; LOG_INF("Using default lifetime: %u", new_lifetime); } @@ -611,12 +607,10 @@ static bool sm_update_lifetime(int srv_obj_inst, uint32_t *lifetime) static int sm_select_server_inst(int sec_obj_inst, int *srv_obj_inst, uint32_t *lifetime) { - char pathstr[MAX_RESOURCE_LEN]; uint16_t server_id; int ret, obj_inst_id; - snprintk(pathstr, sizeof(pathstr), "0/%d/10", sec_obj_inst); - ret = lwm2m_engine_get_u16(pathstr, &server_id); + ret = lwm2m_get_u16(&LWM2M_OBJ(0, sec_obj_inst, 10), &server_id); if (ret < 0) { LOG_WRN("Failed to obtain Short Server ID, err %d", ret); return -EINVAL; diff --git a/subsys/net/lib/lwm2m/lwm2m_rw_link_format.c b/subsys/net/lib/lwm2m/lwm2m_rw_link_format.c index 3dd9d09e731..0cf8b440434 100644 --- a/subsys/net/lib/lwm2m/lwm2m_rw_link_format.c +++ b/subsys/net/lib/lwm2m/lwm2m_rw_link_format.c @@ -265,13 +265,7 @@ static int put_corelink_ssid(struct lwm2m_output_context *out, case LWM2M_OBJECT_SECURITY_ID: { bool bootstrap_inst; - ret = snprintk(buf, buflen, "0/%d/1", - path->obj_inst_id); - if (ret < 0 || ret >= buflen) { - return -ENOMEM; - } - - ret = lwm2m_engine_get_bool(buf, &bootstrap_inst); + ret = lwm2m_get_bool(&LWM2M_OBJ(0, path->obj_inst_id, 1), &bootstrap_inst); if (ret < 0) { return ret; } @@ -283,13 +277,11 @@ static int put_corelink_ssid(struct lwm2m_output_context *out, return 0; } - ret = snprintk(buf, buflen, "0/%d/10", - path->obj_inst_id); if (ret < 0 || ret >= buflen) { return -ENOMEM; } - ret = lwm2m_engine_get_u16(buf, &server_id); + ret = lwm2m_get_u16(&LWM2M_OBJ(0, path->obj_inst_id, 10), &server_id); if (ret < 0) { return ret; } @@ -298,12 +290,7 @@ static int put_corelink_ssid(struct lwm2m_output_context *out, } case LWM2M_OBJECT_SERVER_ID: - ret = snprintk(buf, buflen, "1/%d/0", path->obj_inst_id); - if (ret < 0 || ret >= buflen) { - return -ENOMEM; - } - - ret = lwm2m_engine_get_u16(buf, &server_id); + ret = lwm2m_get_u16(&LWM2M_OBJ(1, path->obj_inst_id, 0), &server_id); if (ret < 0) { return ret; } diff --git a/subsys/net/lib/lwm2m/lwm2m_shell.c b/subsys/net/lib/lwm2m/lwm2m_shell.c index 76dd5d8191a..5677eb3043c 100644 --- a/subsys/net/lib/lwm2m/lwm2m_shell.c +++ b/subsys/net/lib/lwm2m/lwm2m_shell.c @@ -166,6 +166,12 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) const char *dtype = "-s"; /* default */ const char *pathstr = argv[1]; int ret = 0; + struct lwm2m_obj_path path; + + ret = lwm2m_string_to_path(pathstr, &path, '/'); + if (ret < 0) { + return ret; + } if (argc > 2) { /* read + path + options(data type) */ dtype = argv[2]; @@ -174,8 +180,8 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) const char *buff; uint16_t buff_len = 0; - ret = lwm2m_engine_get_res_buf(pathstr, (void **)&buff, - &buff_len, NULL, NULL); + ret = lwm2m_get_res_buf(&path, (void **)&buff, + &buff_len, NULL, NULL); if (ret != 0) { goto out; } @@ -183,7 +189,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-s8") == 0) { int8_t temp = 0; - ret = lwm2m_engine_get_s8(pathstr, &temp); + ret = lwm2m_get_s8(&path, &temp); if (ret != 0) { goto out; } @@ -191,7 +197,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-s16") == 0) { int16_t temp = 0; - ret = lwm2m_engine_get_s16(pathstr, &temp); + ret = lwm2m_get_s16(&path, &temp); if (ret != 0) { goto out; } @@ -199,7 +205,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-s32") == 0) { int32_t temp = 0; - ret = lwm2m_engine_get_s32(pathstr, &temp); + ret = lwm2m_get_s32(&path, &temp); if (ret != 0) { goto out; } @@ -207,7 +213,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-s64") == 0) { int64_t temp = 0; - ret = lwm2m_engine_get_s64(pathstr, &temp); + ret = lwm2m_get_s64(&path, &temp); if (ret != 0) { goto out; } @@ -215,7 +221,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-u8") == 0) { uint8_t temp = 0; - ret = lwm2m_engine_get_u8(pathstr, &temp); + ret = lwm2m_get_u8(&path, &temp); if (ret != 0) { goto out; } @@ -223,7 +229,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-u16") == 0) { uint16_t temp = 0; - ret = lwm2m_engine_get_u16(pathstr, &temp); + ret = lwm2m_get_u16(&path, &temp); if (ret != 0) { goto out; } @@ -231,7 +237,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-u32") == 0) { uint32_t temp = 0; - ret = lwm2m_engine_get_u32(pathstr, &temp); + ret = lwm2m_get_u32(&path, &temp); if (ret != 0) { goto out; } @@ -239,7 +245,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-u64") == 0) { uint64_t temp = 0; - ret = lwm2m_engine_get_u64(pathstr, &temp); + ret = lwm2m_get_u64(&path, &temp); if (ret != 0) { goto out; } @@ -247,7 +253,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-f") == 0) { double temp = 0; - ret = lwm2m_engine_get_float(pathstr, &temp); + ret = lwm2m_get_f64(&path, &temp); if (ret != 0) { goto out; } @@ -255,7 +261,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-b") == 0) { bool temp; - ret = lwm2m_engine_get_bool(pathstr, &temp); + ret = lwm2m_get_bool(&path, &temp); if (ret != 0) { goto out; } @@ -263,7 +269,7 @@ static int cmd_read(const struct shell *sh, size_t argc, char **argv) } else if (strcmp(dtype, "-t") == 0) { time_t temp; - ret = lwm2m_engine_get_time(pathstr, &temp); + ret = lwm2m_get_time(&path, &temp); if (ret != 0) { goto out; } @@ -298,6 +304,12 @@ static int cmd_write(const struct shell *sh, size_t argc, char **argv) const char *pathstr = argv[1]; const char *dtype; char *value; + struct lwm2m_obj_path path; + + ret = lwm2m_string_to_path(pathstr, &path, '/'); + if (ret < 0) { + return ret; + } if (argc == 4) { /* write path options value */ dtype = argv[2]; @@ -308,45 +320,35 @@ static int cmd_write(const struct shell *sh, size_t argc, char **argv) } if (strcmp(dtype, "-s") == 0) { - ret = lwm2m_engine_set_string(pathstr, value); + ret = lwm2m_set_string(&path, value); } else if (strcmp(dtype, "-f") == 0) { double new = 0; lwm2m_atof(value, &new); /* Convert string -> float */ - ret = lwm2m_engine_set_float(pathstr, &new); + ret = lwm2m_set_f64(&path, new); } else { /* All the types using stdlib funcs*/ char *e; if (strcmp(dtype, "-s8") == 0) { - ret = lwm2m_engine_set_s8(pathstr, - strtol(value, &e, 10)); + ret = lwm2m_set_s8(&path, strtol(value, &e, 10)); } else if (strcmp(dtype, "-s16") == 0) { - ret = lwm2m_engine_set_s16(pathstr, - strtol(value, &e, 10)); + ret = lwm2m_set_s16(&path, strtol(value, &e, 10)); } else if (strcmp(dtype, "-s32") == 0) { - ret = lwm2m_engine_set_s32(pathstr, - strtol(value, &e, 10)); + ret = lwm2m_set_s32(&path, strtol(value, &e, 10)); } else if (strcmp(dtype, "-s64") == 0) { - ret = lwm2m_engine_set_s64(pathstr, - strtoll(value, &e, 10)); + ret = lwm2m_set_s64(&path, strtoll(value, &e, 10)); } else if (strcmp(dtype, "-u8") == 0) { - ret = lwm2m_engine_set_u8(pathstr, - strtoul(value, &e, 10)); + ret = lwm2m_set_u8(&path, strtoul(value, &e, 10)); } else if (strcmp(dtype, "-u16") == 0) { - ret = lwm2m_engine_set_u16(pathstr, - strtoul(value, &e, 10)); + ret = lwm2m_set_u16(&path, strtoul(value, &e, 10)); } else if (strcmp(dtype, "-u32") == 0) { - ret = lwm2m_engine_set_u32(pathstr, - strtoul(value, &e, 10)); + ret = lwm2m_set_u32(&path, strtoul(value, &e, 10)); } else if (strcmp(dtype, "-u64") == 0) { - ret = lwm2m_engine_set_u64(pathstr, - strtoull(value, &e, 10)); + ret = lwm2m_set_u64(&path, strtoull(value, &e, 10)); } else if (strcmp(dtype, "-b") == 0) { - ret = lwm2m_engine_set_bool(pathstr, - strtoul(value, &e, 10)); + ret = lwm2m_set_bool(&path, strtoul(value, &e, 10)); } else if (strcmp(dtype, "-t") == 0) { - ret = lwm2m_engine_set_time(pathstr, - strtoll(value, &e, 10)); + ret = lwm2m_set_time(&path, strtoll(value, &e, 10)); } else { shell_error(sh, "can't recognize data type %s\n", dtype); @@ -501,7 +503,6 @@ static int cmd_cache(const struct shell *sh, size_t argc, char **argv) #if (CONFIG_HEAP_MEM_POOL_SIZE > 0) int rc; int elems; - char *path; struct lwm2m_time_series_elem *cache; struct lwm2m_obj_path obj_path; @@ -526,8 +527,6 @@ static int cmd_cache(const struct shell *sh, size_t argc, char **argv) return -ENOEXEC; } - path = argv[1]; - elems = atoi(argv[2]); if (elems < 1) { shell_error(sh, "Size must be 1 or more (given %d)\n", elems); @@ -540,10 +539,11 @@ static int cmd_cache(const struct shell *sh, size_t argc, char **argv) return -ENOEXEC; } - rc = lwm2m_engine_enable_cache(path, cache, elems); + rc = lwm2m_enable_cache(&obj_path, cache, elems); if (rc) { - shell_error(sh, "lwm2m_engine_enable_cache(%s, %p, %d) returned %d\n", path, cache, - elems, rc); + shell_error(sh, "lwm2m_enable_cache(%u/%u/%u/%u, %p, %d) returned %d\n", + obj_path.obj_id, obj_path.obj_inst_id, obj_path.res_id, + obj_path.res_inst_id, cache, elems, rc); k_free(cache); return -ENOEXEC; } diff --git a/tests/net/lib/lwm2m/content_link_format/src/main.c b/tests/net/lib/lwm2m/content_link_format/src/main.c index d10a0948a5f..76429b78f98 100644 --- a/tests/net/lib/lwm2m/content_link_format/src/main.c +++ b/tests/net/lib/lwm2m/content_link_format/src/main.c @@ -377,8 +377,8 @@ static void *obj_attr_init(void) { test_obj_init(); test_attr_init(); - lwm2m_engine_set_u16("0/0/10", TEST_SSID); - lwm2m_engine_set_u16("1/0/0", TEST_SSID); + lwm2m_set_u16(&LWM2M_OBJ(0, 0, 10), TEST_SSID); + lwm2m_set_u16(&LWM2M_OBJ(1, 0, 0), TEST_SSID); return NULL; }