From 697633fd3c38eb9eabb60abc8a488b646f137946 Mon Sep 17 00:00:00 2001 From: gc87 Date: Thu, 14 Dec 2023 11:36:09 +0800 Subject: [PATCH] fix: write tags api int->float type --- plugins/restful/rw_handle.c | 2 +- src/adapter/driver/driver.c | 25 ++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/plugins/restful/rw_handle.c b/plugins/restful/rw_handle.c index cb664132..11e1947e 100644 --- a/plugins/restful/rw_handle.c +++ b/plugins/restful/rw_handle.c @@ -174,7 +174,7 @@ void handle_write_tags(nng_aio *aio) switch (req->tags[i].t) { case NEU_JSON_INT: cmd.tags[i].value.type = NEU_TYPE_INT64; - cmd.tags[i].value.value.u64 = req->tags[i].value.val_int; + cmd.tags[i].value.value.i64 = req->tags[i].value.val_int; break; case NEU_JSON_STR: cmd.tags[i].value.type = NEU_TYPE_STRING; diff --git a/src/adapter/driver/driver.c b/src/adapter/driver/driver.c index db5b7e81..df6e3abc 100644 --- a/src/adapter/driver/driver.c +++ b/src/adapter/driver/driver.c @@ -664,16 +664,13 @@ void neu_adapter_driver_write_tags(neu_adapter_driver_t *driver, UT_icd icd = { sizeof(neu_plugin_tag_value_t), NULL, NULL, NULL }; utarray_new(tags, &icd); for (int i = 0; i < cmd->n_tag; i++) { - neu_plugin_tag_value_t tv = { 0 }; - neu_datatag_t *tag = neu_group_find_tag(g->group, cmd->tags[i].tag); if (tag != NULL && neu_tag_attribute_test(tag, NEU_ATTRIBUTE_WRITE) && neu_tag_attribute_test(tag, NEU_ATTRIBUTE_STATIC) == false) { - tv.tag = neu_tag_dup(tag); - if (tag->type == NEU_TYPE_FLOAT || tag->type == NEU_TYPE_DOUBLE) { if (cmd->tags[i].value.type == NEU_TYPE_INT64) { - tv.value.d64 = (double) tv.value.i64; + cmd->tags[i].value.value.d64 = + (double) cmd->tags[i].value.value.i64; } } if (tag->decimal != 0) { @@ -682,7 +679,10 @@ void neu_adapter_driver_write_tags(neu_adapter_driver_t *driver, } fix_value(tag, cmd->tags[i].value.type, &cmd->tags[i].value); - tv.value = cmd->tags[i].value.value; + neu_plugin_tag_value_t tv = { + .tag = neu_tag_dup(tag), + .value = cmd->tags[i].value.value, + }; utarray_push_back(tags, &tv); } if (tag != NULL) { @@ -749,20 +749,16 @@ void neu_adapter_driver_write_gtags(neu_adapter_driver_t *driver, group_t *g = find_group(driver, cmd->groups[i].group); for (int k = 0; k < cmd->groups[i].n_tag; k++) { - neu_plugin_tag_value_t tv = { 0 }; - neu_datatag_t *tag = neu_group_find_tag(g->group, cmd->groups[i].tags[k].tag); - if (tag != NULL && neu_tag_attribute_test(tag, NEU_ATTRIBUTE_WRITE) && neu_tag_attribute_test(tag, NEU_ATTRIBUTE_STATIC) == false) { - tv.tag = neu_tag_dup(tag); - if (tag->type == NEU_TYPE_FLOAT || tag->type == NEU_TYPE_DOUBLE) { if (cmd->groups[i].tags[k].value.type == NEU_TYPE_INT64) { - tv.value.d64 = (double) tv.value.u64; + cmd->groups[i].tags[k].value.value.d64 = + (double) cmd->groups[i].tags[k].value.value.i64; } } if (tag->decimal != 0) { @@ -773,7 +769,10 @@ void neu_adapter_driver_write_gtags(neu_adapter_driver_t *driver, fix_value(tag, cmd->groups[i].tags[k].value.type, &cmd->groups[i].tags[k].value); - tv.value = cmd->groups[i].tags[k].value.value; + neu_plugin_tag_value_t tv = { + tv.tag = neu_tag_dup(tag), + tv.value = cmd->groups[i].tags[k].value.value, + }; utarray_push_back(tags, &tv); } if (tag != NULL) {