From bf34444f482223d291830c13cb147392298d99ee Mon Sep 17 00:00:00 2001
From: vince <757871790@qq.com>
Date: 星期五, 15 三月 2024 09:39:25 +0800
Subject: [PATCH] 粮情协议优化
---
src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java | 87 +++++++++++++++++--------------------------
1 files changed, 35 insertions(+), 52 deletions(-)
diff --git a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
index 6caca77..ea1fca7 100644
--- a/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
+++ b/src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java
@@ -3,12 +3,12 @@
import com.alibaba.fastjson.JSONObject;
import com.fzzy.api.Constant;
import com.fzzy.api.data.ApiCommonDevice;
+import com.fzzy.api.data.DepotType;
import com.fzzy.api.data.GatewayDeviceType;
import com.fzzy.api.utils.BytesUtil;
import com.fzzy.api.utils.NumberUtil;
import com.fzzy.api.utils.RedisConst;
import com.fzzy.api.utils.RedisUtil;
-import com.fzzy.async.fzzy40.entity.Fz40Grain;
import com.fzzy.data.ConfigData;
import com.fzzy.gateway.GatewayUtils;
import com.fzzy.gateway.api.GatewayDeviceReportService;
@@ -24,9 +24,8 @@
import com.fzzy.protocol.bhzn.v0.data.IoMessage;
import com.fzzy.protocol.bhzn.v0.server.BhznGrainV0ServerEngine;
import com.fzzy.protocol.bhzn.v0.server.BhznGrainV0ServerUtils;
-import com.fzzy.protocol.data.GrainCableData;
+import com.fzzy.gateway.data.GrainCableData;
import com.fzzy.protocol.data.THDto;
-import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
@@ -109,19 +108,19 @@
private void analysisGrain(IoMessage message) {
try {
//鏍规嵁鍒嗘満SN鑾峰彇璁惧閰嶇疆淇℃伅
- GatewayDevice gatewayDevice = GatewayUtils.getCacheByDeviceSn(message.getAddr());
+ GatewayDevice gatewayDevice = BhznGrainV0ServerUtils.contextOrder;
if (null == gatewayDevice) {
replayGrain(message);
log.error("涓绘満-------->>骞冲彴锛岃В鏋愮伯鎯呭け璐ワ紝鏈幏鍙栧埌绯荤粺璁惧閰嶇疆淇℃伅锛�" + message.getAddr());
return;
}
//鏍规嵁鍒嗘満鍦板潃鑾峰彇鍒嗘満淇℃伅
- ApiCommonDevice commonDevice = Constant.getCommonDeviceCache(message.getIp());
- if (commonDevice == null) {
- replayGrain(message);
- log.error("涓绘満-------->>骞冲彴锛岃В鏋愮伯鎯呭け璐ワ紝鏈幏鍙栧埌绯荤粺绮儏涓绘満閰嶇疆锛�" + message.getAddr());
- return;
- }
+// ApiCommonDevice commonDevice = Constant.getCommonDeviceCache(message.getIp());
+// if (commonDevice == null) {
+// replayGrain(message);
+// log.error("涓绘満-------->>骞冲彴锛岃В鏋愮伯鎯呭け璐ワ紝鏈幏鍙栧埌绯荤粺绮儏涓绘満閰嶇疆锛�" + message.getAddr());
+// return;
+// }
//鑾峰彇璇锋眰淇℃伅
BaseReqData reqData = ProtocolUtils.getSyncReq(gatewayDevice.getDepotIdSys());
@@ -132,7 +131,7 @@
}
// 鍒ゆ柇鏁版嵁鏈夋病鏈夋敹鍙栧畬鏁�
- GrainCableData cableData = this.getCableData(gatewayDevice);
+ GrainCableData cableData = GatewayUtils.getCableData(gatewayDevice);
//鑾峰彇褰撳墠绮儏娓╁害鎶ユ枃
String grainHex = message.getContent().substring(16);
@@ -179,39 +178,6 @@
}
}
- private GrainCableData getCableData(GatewayDevice gatewayDevice) {
- String cableRule = gatewayDevice.getCableRule();
- String cableCir = gatewayDevice.getCableCir();
-
- GrainCableData result = new GrainCableData();
-
- int cableY, cableX;
- String[] attCable = cableRule.split("-");
- int cableZ = Integer.valueOf(attCable[0]);
- if (StringUtils.isEmpty(cableCir)) {
- cableY = Integer.valueOf(attCable[1]);
- cableX = Integer.valueOf(attCable[2]);
- } else {
- String[] attCir = cableCir.split("-");
- cableZ = Integer.valueOf(attCir[0]);
- cableY = 1;
- cableX = 0;
- //閽堝澶氬湀璁$畻
- for (int i = 0; i < cableCir.length(); i++) {
- cableX += Integer.valueOf(attCir[i]);
- }
-
- result.setCir(true);
- }
-
- result.setCableY(cableY);
- result.setCableZ(cableZ);
- result.setCableX(cableX);
- result.setSumNum(cableZ * cableY * cableX);
-
- return result;
- }
-
/**
* 杩斿洖绮儏鏀跺埌鎶ユ枃淇℃伅锛岄渶瑕佹敞鎰忥細濡傛灉瀛樺湪鍒嗗寘鎯呭喌涓嬶紝闇�瑕佺瓑鎵�鏈夊寘鏀跺埌鍚庤繑鍥�
*
@@ -222,7 +188,7 @@
String hexStr = CommandBuild.getMsgGrainReply(message.getAddr());
log.info("骞冲彴--------->>>涓绘満锛岃繑鍥炵伯鎯呮姤鏂囨敹鍒颁俊鎭紝鎶ユ枃={}", hexStr);
- BhznGrainV0ServerEngine.push(message.getIp(), message.getPort(), BytesUtil.hexStrToBytes(hexStr));
+ BhznGrainV0ServerEngine.pushByMin(hexStr);
}
/**
@@ -274,22 +240,39 @@
contextMapGrain.put(key, null);
- if (cableData.isCir()) {
+
+ if(DepotType.TYPE_03.getCode().equals(device.getDepotType())){
//绛掍粨
+ analysisAndPush3(temps, reqData, thDto, cableData);
+ }else if(DepotType.TYPE_02.getCode().equals(device.getDepotType())){
analysisAndPush2(temps, reqData, thDto, cableData);
- } else {
+ }else if(DepotType.TYPE_04.getCode().equals(device.getDepotType())){
+ analysisAndPush2(temps, reqData, thDto, cableData);
+ }else {
//骞虫埧浠�
analysisAndPush1(temps, reqData, thDto, cableData);
}
}
/**
- * 绛掍粨瑙f瀽锛岃В鏋愮浜屾锛岃В鏋愬埌鍧愭爣鏁版嵁
+ * 绛掍粨锛岃В鏋愮浜屾锛岃В鏋愬埌鍧愭爣鏁版嵁
+ * @param temps
+ * @param reqData
+ * @param thDto
+ * @param cableData
+ */
+ private void analysisAndPush2(List<Double> temps, BaseReqData reqData, THDto thDto, GrainCableData cableData) {
+ //TODO
+ log.info("-------------------------鏆傛湭瀹炵幇----------------");
+ }
+
+ /**
+ * 娌圭綈浠擄紝瑙f瀽绗簩姝ワ紝瑙f瀽鍒板潗鏍囨暟鎹�
*
* @param temps
* @throws Exception
*/
- private void analysisAndPush2(List<Double> temps, BaseReqData reqData, THDto thDto, GrainCableData cableData) {
+ private void analysisAndPush3(List<Double> temps, BaseReqData reqData, THDto thDto, GrainCableData cableData) {
GatewayDevice device = reqData.getDevice();
@@ -370,14 +353,14 @@
JSONObject properties = new JSONObject();
- properties.put("data", JSONObject.toJSONString(outPut));
+ properties.put("data", outPut);
properties.put("timestamp", grain.getTimestamp());
String height = this.getCacheHeight(device);
if (StringUtils.isEmpty(height)) height = "0.0";
properties.put("liquidHeight", height);
- grain.setProperties(properties.toJSONString());
+ grain.setProperties(properties);
//灏佽濂界殑鏁版嵁
log.info("---娴呭渾浠撳皝瑁呭畬鎴�----寮�濮嬫墽琛屾帹閫�");
@@ -579,7 +562,7 @@
} finally {
String hexStr = CommandBuild.getMsgTHReply(message.getAddr());
log.info("骞冲彴--------->>>涓绘満锛岃繑鍥炰粨娓╀粨婀挎敹鍒颁俊鎭紝鎶ユ枃={}", hexStr);
- BhznGrainV0ServerEngine.push(message.getIp(), message.getPort(), BytesUtil.hexStrToBytes(hexStr));
+ BhznGrainV0ServerEngine.pushByMin(hexStr);
}
}
--
Gitblit v1.9.3