fix: write tags api int->double type

This commit is contained in:
gc87
2023-12-06 18:35:28 +08:00
parent f1b8d4b37d
commit ee8282b8eb
2 changed files with 13 additions and 13 deletions
+1 -1
View File
@@ -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;
+12 -12
View File
@@ -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) {