Commit f9fcdb2c65a57b4eeafb188731afc0691f5b731b
1 parent
e6d036fc
perf: modbus_rtu 16位有符号无符号计算值时,对于整数不做特殊处理
(cherry picked from commit 38916be4)
Showing
1 changed file
with
6 additions
and
1 deletions
1 | package org.thingsboard.server.common.data.yunteng.utils; | 1 | package org.thingsboard.server.common.data.yunteng.utils; |
2 | 2 | ||
3 | +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
3 | import org.thingsboard.server.common.data.yunteng.enums.AttributeSourceDataTypeEnum; | 4 | import org.thingsboard.server.common.data.yunteng.enums.AttributeSourceDataTypeEnum; |
4 | import org.thingsboard.server.common.data.yunteng.enums.HexByteOrderEnum; | 5 | import org.thingsboard.server.common.data.yunteng.enums.HexByteOrderEnum; |
5 | import java.nio.ByteOrder; | 6 | import java.nio.ByteOrder; |
@@ -252,7 +253,11 @@ public class HexConvertUtils { | @@ -252,7 +253,11 @@ public class HexConvertUtils { | ||
252 | case INT16_BA: | 253 | case INT16_BA: |
253 | case UINT16_BA: | 254 | case UINT16_BA: |
254 | hex = convertHexOrder(hex, dataTypeEnum); | 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 | break; | 261 | break; |
257 | case INT32_AB_CD: | 262 | case INT32_AB_CD: |
258 | case UINT32_AB_CD: | 263 | case UINT32_AB_CD: |