diff --git a/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java b/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java index cd0e9c3..2ee92b7 100644 --- a/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java +++ b/user-service/src/main/java/com/mh/user/utils/AnalysisReceiveOrder485.java @@ -90,12 +90,12 @@ public class AnalysisReceiveOrder485 { System.out.println("插入时间30"+dateStr); } try { - if(registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35")){ + if(registerAddr.equals("32") || registerAddr.equals("33") || registerAddr.equals("35") || registerAddr.equals("36")){ dataResultCh.setDeviceAddr(cloudId); dataResultCh.setDeviceType(deviceCodeParam.getDeviceType()); dataResultCh.setCurDate(sdf1.parse(dateStr)); - data = decimalFormat.format(ExchangeStringUtil.hexToSingle(data));//十六进制字符串转IEEE754浮点型 + data = decimalFormat.format(Math.abs(ExchangeStringUtil.hexToSingle(data)));//十六进制字符串转IEEE754浮点型 dataResultCh.setCurValue(data); dataResultCh.setRegisterAddr(deviceCodeParam.getRegisterAddr()); dataResultCh.setRegisterName(deviceCodeParam.getRegisterName()); @@ -117,7 +117,7 @@ public class AnalysisReceiveOrder485 { dataResultCl.setGrade(deviceCodeParam.getGrade()); dataResultCl.setProjectID(deviceCodeParam.getProjectID()); String projectName=projectInfoService.selectName(deviceCodeParam.getProjectID()); - log.info("冷量计==>" + cloudId+",读数==>" + lData+",项目名称==>"+projectName); + log.info("冷量计==>" + cloudId+",累计读数==>" + lData+",项目名称==>"+projectName); if (lData<99999999){ if (lData!=2231365){ dataResultService.saveDataResultCl(dataResultCl); diff --git a/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java b/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java index b1ea2a6..e5354d3 100644 --- a/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java +++ b/user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java @@ -1053,9 +1053,8 @@ public class ExchangeStringUtil { * @date: 2021/9/10 16:57 */ public static float hexToSingle(String s ) { - int ieee754Int = Integer.parseInt(s, 16); - float realValue = Float.intBitsToFloat(ieee754Int); - return realValue; + BigInteger data = new BigInteger(s,16); + return Float.intBitsToFloat(data.intValue()); } //Base64转十六进制字符串 @@ -1296,7 +1295,7 @@ public class ExchangeStringUtil { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime="";//当前时间 Calendar cal=Calendar.getInstance(); - if (curDate.length()>0){ + if (!curDate.isEmpty()){ Date date = df.parse(curDate); cal.setTime(date); } diff --git a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java index 7e69d21..1028d20 100644 --- a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java +++ b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java @@ -1,21 +1,14 @@ package com.mh.user.utils; import com.mh.user.entity.*; -import com.mh.user.model.OrderParamModel; import com.mh.user.serialport.SerialPortThread; import com.mh.user.service.DeviceCodeParamService; import com.mh.user.service.DeviceInstallService; import com.mh.user.service.RegisterAddrService; -import com.mh.user.service.chillers.GatewayManageService; import com.mh.user.service.chillers.OrderMessageService; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.Get; import org.apache.log4j.Logger; import org.springframework.context.ApplicationContext; -import javax.imageio.spi.RegisterableService; -import java.net.UnknownHostException; -import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -137,6 +130,8 @@ public class GetReadOrder485 { str = str + "0300500002"; } else if (cloudType.equalsIgnoreCase("35")){ // 瞬时流量/小时 str = str + "0300040002"; //0300000002(秒)、0300020002(分)、0300040002(时) + } else if (cloudType.equalsIgnoreCase("36")){ // 瞬时冷量 + str = str + "0300140002"; } byte[] strOrder = ExchangeStringUtil.hexStrToBinaryStr(str); int checkNum = CRC16.CRC16_MODBUS(strOrder); @@ -359,8 +354,26 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setRegisterName("瞬时流量"); String strData2=createCloudOrder(deviceCodeParamEntity2); deviceCodeParamEntity2.setStrData(strData2); - deviceCodeParamEntity2.setGrade(2); + deviceCodeParamEntity2.setGrade(10); deviceCodeParamEntityList.add(deviceCodeParamEntity2); + //流量计冷量累积量 + DeviceCodeParamEntity deviceCodeParamEntity3 = new DeviceCodeParamEntity(); + deviceCodeParamEntity3.setRegisterAddr("36"); + deviceCodeParamEntity3.setFunCode("03"); + deviceCodeParamEntity3.setDeviceAddr(devices.getDeviceAddr()); + deviceCodeParamEntity3.setDeviceName(devices.getDeviceName()); + deviceCodeParamEntity3.setDeviceType(devices.getDeviceType()); + deviceCodeParamEntity3.setBaudRate(devices.getBaudRate()); + deviceCodeParamEntity3.setBrand(devices.getBrand()); + deviceCodeParamEntity3.setDataPort(devices.getDataPort()); + deviceCodeParamEntity3.setProjectID(devices.getProjectID()); + deviceCodeParamEntity3.setParity(devices.getParity()); + deviceCodeParamEntity3.setDigit(2); //保留小数位 + deviceCodeParamEntity3.setRegisterName("瞬时冷量"); + String strDat3 =createCloudOrder(deviceCodeParamEntity3); + deviceCodeParamEntity3.setStrData(strDat3); + deviceCodeParamEntity3.setGrade(11); + deviceCodeParamEntityList.add(deviceCodeParamEntity3); }else if (devices.getDeviceType().equals("电表")){ DeviceCodeParamEntity deviceCodeParamEntity1 = new DeviceCodeParamEntity(); diff --git a/user-service/src/test/java/com/mh/user/TestJwtUtils.java b/user-service/src/test/java/com/mh/user/TestJwtUtils.java index 8a57372..cb68186 100644 --- a/user-service/src/test/java/com/mh/user/TestJwtUtils.java +++ b/user-service/src/test/java/com/mh/user/TestJwtUtils.java @@ -1,6 +1,7 @@ package com.mh.user; import com.mh.user.model.SysUser; +import com.mh.user.utils.ExchangeStringUtil; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -137,23 +138,30 @@ public class TestJwtUtils { public static void main(String[] args) { - SysUser user = new SysUser(); - user.setId((long) 1); - user.setUserName("admin"); - String token = generateJsonWebToken(user); - - System.out.println(token); - - Claims claims = checkJWT(token); - if (claims != null) { - String id = claims.get("id").toString(); - String name = claims.get("name").toString(); - - System.out.println("id:" + id); - System.out.println("name:" + name); - - } - - } +// SysUser user = new SysUser(); +// user.setId((long) 1); +// user.setUserName("admin"); +// String token = generateJsonWebToken(user); +// +// System.out.println(token); +// +// Claims claims = checkJWT(token); +// if (claims != null) { +// String id = claims.get("id").toString(); +// String name = claims.get("name").toString(); +// +// System.out.println("id:" + id); +// System.out.println("name:" + name); +// +// } + String receiveData = "58 03 04 E8 FF 00 10 37 6A".replaceAll(" ", ""); + String data = receiveData.substring(receiveData.length() - 8, receiveData.length() - 6) + + receiveData.substring(receiveData.length() - 6, receiveData.length() - 4) + + receiveData.substring(receiveData.length() - 12, receiveData.length() - 10) + + receiveData.substring(receiveData.length() - 10, receiveData.length() - 8); + System.out.println(data); + float c4FBC834 = ExchangeStringUtil.hexToSingle("C4FBC834"); + System.out.println(c4FBC834); + } }