mirror of
https://github.com/emqx/neuron.git
synced 2026-10-23 02:00:57 +08:00
Merge pull request #2098 from eeff/eeff/fix
Pick to v2.9 fix(core): read_report_group add tag bias
This commit is contained in:
+15
-11
@@ -2192,48 +2192,52 @@ static void read_report_group(int64_t timestamp, int64_t timeout,
|
||||
} else {
|
||||
tag_value.value = value.value;
|
||||
}
|
||||
if (tag->decimal != 0) {
|
||||
|
||||
if (tag->decimal != 0 || tag->bias != 0) {
|
||||
double decimal = tag->decimal != 0 ? tag->decimal : 1;
|
||||
double bias = tag->bias;
|
||||
|
||||
tag_value.value.type = NEU_TYPE_DOUBLE;
|
||||
switch (tag->type) {
|
||||
case NEU_TYPE_INT8:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.i8 * tag->decimal;
|
||||
(double) tag_value.value.value.i8 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_UINT8:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.u8 * tag->decimal;
|
||||
(double) tag_value.value.value.u8 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_INT16:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.i16 * tag->decimal;
|
||||
(double) tag_value.value.value.i16 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_UINT16:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.u16 * tag->decimal;
|
||||
(double) tag_value.value.value.u16 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_INT32:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.i32 * tag->decimal;
|
||||
(double) tag_value.value.value.i32 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_UINT32:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.u32 * tag->decimal;
|
||||
(double) tag_value.value.value.u32 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_INT64:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.i64 * tag->decimal;
|
||||
(double) tag_value.value.value.i64 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_UINT64:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.u64 * tag->decimal;
|
||||
(double) tag_value.value.value.u64 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_FLOAT:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.f32 * tag->decimal;
|
||||
(double) tag_value.value.value.f32 * decimal + bias;
|
||||
break;
|
||||
case NEU_TYPE_DOUBLE:
|
||||
tag_value.value.value.d64 =
|
||||
(double) tag_value.value.value.d64 * tag->decimal;
|
||||
(double) tag_value.value.value.d64 * decimal + bias;
|
||||
break;
|
||||
default:
|
||||
tag_value.value.type = tag->type;
|
||||
|
||||
Reference in New Issue
Block a user