From 1744845563c3fc08f6a72fe861fabcdf2d02fade Mon Sep 17 00:00:00 2001 From: fengzero Date: Tue, 13 Sep 2022 08:20:45 +0000 Subject: [PATCH] fix(driver): negative multiplication --- src/adapter/driver/driver.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/adapter/driver/driver.c b/src/adapter/driver/driver.c index 76f85549..92ae2db9 100644 --- a/src/adapter/driver/driver.c +++ b/src/adapter/driver/driver.c @@ -866,21 +866,33 @@ static int read_report_group(int64_t timestamp, int64_t timeout, datas[index].value.type = NEU_TYPE_DOUBLE; switch (tag->type) { case NEU_TYPE_INT8: + datas[index].value.value.d64 = + (double) datas[index].value.value.i8 * tag->decimal; + break; case NEU_TYPE_UINT8: datas[index].value.value.d64 = (double) datas[index].value.value.u8 * tag->decimal; break; case NEU_TYPE_INT16: + datas[index].value.value.d64 = + (double) datas[index].value.value.i16 * tag->decimal; + break; case NEU_TYPE_UINT16: datas[index].value.value.d64 = (double) datas[index].value.value.u16 * tag->decimal; break; case NEU_TYPE_INT32: + datas[index].value.value.d64 = + (double) datas[index].value.value.i32 * tag->decimal; + break; case NEU_TYPE_UINT32: datas[index].value.value.d64 = (double) datas[index].value.value.u32 * tag->decimal; break; case NEU_TYPE_INT64: + datas[index].value.value.d64 = + (double) datas[index].value.value.i64 * tag->decimal; + break; case NEU_TYPE_UINT64: datas[index].value.value.d64 = (double) datas[index].value.value.u64 * tag->decimal; @@ -992,21 +1004,33 @@ static void read_group(int64_t timestamp, int64_t timeout, datas[index].value.type = NEU_TYPE_DOUBLE; switch (tag->type) { case NEU_TYPE_INT8: + datas[index].value.value.d64 = + (double) datas[index].value.value.i8 * tag->decimal; + break; case NEU_TYPE_UINT8: datas[index].value.value.d64 = (double) datas[index].value.value.u8 * tag->decimal; break; case NEU_TYPE_INT16: + datas[index].value.value.d64 = + (double) datas[index].value.value.i16 * tag->decimal; + break; case NEU_TYPE_UINT16: datas[index].value.value.d64 = (double) datas[index].value.value.u16 * tag->decimal; break; case NEU_TYPE_INT32: + datas[index].value.value.d64 = + (double) datas[index].value.value.i32 * tag->decimal; + break; case NEU_TYPE_UINT32: datas[index].value.value.d64 = (double) datas[index].value.value.u32 * tag->decimal; break; case NEU_TYPE_INT64: + datas[index].value.value.d64 = + (double) datas[index].value.value.i64 * tag->decimal; + break; case NEU_TYPE_UINT64: datas[index].value.value.d64 = (double) datas[index].value.value.u64 * tag->decimal;