From ee8282b8ebc311fba846814b24e887ec2ad87c5a Mon Sep 17 00:00:00 2001 From: gc87 Date: Wed, 6 Dec 2023 18:35:28 +0800 Subject: [PATCH] fix: write tags api int->double type --- plugins/restful/rw_handle.c | 2 +- src/adapter/driver/driver.c | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/restful/rw_handle.c b/plugins/restful/rw_handle.c index e7cac41a..22bc6beb 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 7c976f4a..443458af 100644 --- a/src/adapter/driver/driver.c +++ b/src/adapter/driver/driver.c @@ -634,16 +634,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) { @@ -652,7 +649,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) { @@ -719,20 +719,17 @@ 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.i64; + cmd->groups[i].tags[k].value.value.d64 = + (double) cmd->groups[i].tags[k].value.value.i64; } } if (tag->decimal != 0) { @@ -743,7 +740,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 = { + .tag = neu_tag_dup(tag), + .value = cmd->groups[i].tags[k].value.value, + }; utarray_push_back(tags, &tv); } if (tag != NULL) {