mirror of
https://github.com/emqx/neuron.git
synced 2026-10-17 04:40:42 +08:00
fix: write tags api int->double type
This commit is contained in:
@@ -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
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user