Commit f9fcdb2c65a57b4eeafb188731afc0691f5b731b

Authored by xp.Huang
1 parent e6d036fc

perf: modbus_rtu 16位有符号无符号计算值时,对于整数不做特殊处理


(cherry picked from commit 38916be4)
1 1 package org.thingsboard.server.common.data.yunteng.utils;
2 2
  3 +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
3 4 import org.thingsboard.server.common.data.yunteng.enums.AttributeSourceDataTypeEnum;
4 5 import org.thingsboard.server.common.data.yunteng.enums.HexByteOrderEnum;
5 6 import java.nio.ByteOrder;
... ... @@ -252,7 +253,11 @@ public class HexConvertUtils {
252 253 case INT16_BA:
253 254 case UINT16_BA:
254 255 hex = convertHexOrder(hex, dataTypeEnum);
255   - value = intFormat.format(int16OrUint16ToShort(hex) * scaleFactor);
  256 + if((int16OrUint16ToShort(hex) * scaleFactor) % 1 == FastIotConstants.MagicNumber.ZERO){
  257 + value = int16OrUint16ToShort(hex);
  258 + }else{
  259 + value = intFormat.format(int16OrUint16ToShort(hex) * scaleFactor);
  260 + }
256 261 break;
257 262 case INT32_AB_CD:
258 263 case UINT32_AB_CD:
... ...