diff --git a/mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java b/mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java index a9208b3..77f28f5 100644 --- a/mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java +++ b/mh-common/src/main/java/com/mh/common/utils/ModbusUtils.java @@ -34,7 +34,7 @@ public class ModbusUtils { public static String createControlCode(String mtCode, Integer type, String registerAddr, String param) { String orderStr; - mtCode = ExchangeStringUtil.addZeroForNum(mtCode, 2); + mtCode = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(mtCode), 2); registerAddr = ExchangeStringUtil.addZeroForNum(registerAddr, 4); param = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(param), 4); orderStr = mtCode + "06" + registerAddr + param; @@ -78,7 +78,7 @@ public class ModbusUtils { // 00 03:小数位数 digits // 7A 22:校验码 String orderStr; - mtCode = ExchangeStringUtil.addZeroForNum(mtCode, 2); + mtCode = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(mtCode), 2); registerAddr = ExchangeStringUtil.addZeroForNum(registerAddr, 4); param = String.valueOf(new BigDecimal(param).multiply(BigDecimal.valueOf(Math.pow(10, digits))).intValue()); param = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(param), 4); @@ -92,4 +92,8 @@ public class ModbusUtils { return orderStr+checkWord; } + public static void main(String[] args) { + System.out.println(createTenControlCode("20", 1, "0108", 3, "2.1")); + } + } diff --git a/mh-framework/src/main/java/com/mh/framework/netty/NettyServiceImpl.java b/mh-framework/src/main/java/com/mh/framework/netty/NettyServiceImpl.java index a02278a..4924686 100644 --- a/mh-framework/src/main/java/com/mh/framework/netty/NettyServiceImpl.java +++ b/mh-framework/src/main/java/com/mh/framework/netty/NettyServiceImpl.java @@ -75,7 +75,7 @@ public class NettyServiceImpl implements INettyService { ServerSession serverSession = map.get(keyVal); String controlCode = ""; // 增加了液位控制仪 - if ("8".equals(collectionParamsManage.getMtType())) { + if ("11".equals(collectionParamsManage.getMtType())) { controlCode = ModbusUtils.createTenControlCode(collectionParamsManage.getMtCode(), changeValue.getType(), collectionParamsManage.getRegisterAddr(),