Browse Source

1、状态检测报文异常处理

dev
mh 6 months ago
parent
commit
dd2a9e984d
  1. 3
      user-service/src/main/java/com/mh/user/strategy/StatusCheckStrategy.java
  2. 2
      user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java

3
user-service/src/main/java/com/mh/user/strategy/StatusCheckStrategy.java

@ -64,12 +64,13 @@ public class StatusCheckStrategy implements DeviceStrategy {
@Override
public String analysisReceiveData(String dateStr, String deviceType, String registerAddr, String brand, String buildingId, String buildingName, String dataStr) {
// 68 12 00 00 00 00 00 68 81 03 58 F3 35 E6 16
if (dataStr.length() == 30) {
//检验报文
String checkStr = dataStr.substring(0, dataStr.length() - 4); //减去校验码
String checkNum = ExchangeStringUtil.makeChecksum(checkStr); //生成校验码
//返回的校验码与重新生成的校验码进行校验
if (checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) {
if (!checkNum.equalsIgnoreCase(dataStr.substring(dataStr.length() - 4, dataStr.length() - 2))) {
return Constant.FAIL;
}
//表号,12位

2
user-service/src/main/java/com/mh/user/utils/ExchangeStringUtil.java

@ -296,7 +296,7 @@ public class ExchangeStringUtil {
if (len < 2) {
hex = "0" + hex;
}
return hex;
return hex.toUpperCase();
}
/**
* 十进制数据转换为十六进制字符串数

Loading…
Cancel
Save