From 320350eb18e32a9a008c4e6409441730732e2e97 Mon Sep 17 00:00:00 2001 From: vince <757871790@qq.com> Date: 星期一, 17 二月 2025 16:24:55 +0800 Subject: [PATCH] 优化测温协议 --- src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java | 2 src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java | 69 +++++++++++------ src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java | 2 src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java | 62 ++++++++++----- src/main/java/com/fzzy/protocol/bhzn/v0/analysis/AnalysisService.java | 64 ++++++++++----- src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java | 8 - src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java | 2 7 files changed, 133 insertions(+), 76 deletions(-) diff --git a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java index ed73699..dde419d 100644 --- a/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java +++ b/src/main/java/com/fzzy/gateway/GatewayTimerScheduled.java @@ -122,16 +122,14 @@ BaseReqData reqData = new BaseReqData(); BaseResp resp; - + for (int i = 0 ;i<3;i++){ for (GatewayDevice device : list) { - for (int i = 0 ;i<3;i++){ - try{ //濡傛灉涓嶆槸绮儏鍒嗘満璺宠繃 if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) { continue; } - if( i>0 && !device.getDeviceSn().startsWith("91510704731594658J002")){ + if( i>0 && !(device.getDeviceId().startsWith("91510704731594658J001") ||device.getDeviceId().startsWith("91510704731594658J002") || device.getDeviceId().startsWith("91510700205404914T001"))){ continue; } reqData.setDeviceId(device.getDeviceId()); @@ -142,7 +140,7 @@ GatewaySyncGranService syncGrainService = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()); resp = syncGrainService.syncGrain(reqData); log.info("鍛戒护鍙戦�佺粨鏋滐細"+resp.toString()); - Thread.sleep(60000); + Thread.sleep(120000); }catch (Exception e){ log.error(e.getMessage(),e); } diff --git a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java index ed86f3f..0a8e17b 100644 --- a/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java +++ b/src/main/java/com/fzzy/gateway/hx2023/service/DeviceReportServiceImpl.java @@ -611,7 +611,7 @@ //濡傛灉鏄紓甯稿��,鎵ц璋冩暣鏁版嵁 TODO if (Double.valueOf(curTemp) < -99.9) { - curTemp = output.getAvgTemperature(); + //curTemp = output.getAvgTemperature(); } else { //鍒ゆ柇鏈�澶� diff --git a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java index 2ec5d81..f03bd01 100644 --- a/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java +++ b/src/main/java/com/fzzy/protocol/bhzn/analysis/AnalysisService.java @@ -277,8 +277,8 @@ int cableZ = cableData.getCableZ(); int cableY = cableData.getCableY(); - int sumNum = temps.size(); - log.info("temps:" + temps.toString()); + int sumNum = 0; + log.info("temps:" + temps.toString()); //鏁版嵁灏佽 GrainData grain = new GrainData(); grain.setMessageId(ScConstant.getMessageId()); @@ -304,7 +304,7 @@ double curTemp; int x = 0, y = 0, z = 0; - for (int i = 0; i < sumNum; i++) { + for (int i = 0; i < temps.size(); i++) { curTemp = temps.get(i); position = i; @@ -317,17 +317,27 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); - //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// //姹傛渶澶ф渶灏忓�� +// if (curTemp < -900) { +// // sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } @@ -448,8 +458,7 @@ GrainOutPut outPut = new GrainOutPut(); - double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableX - * cableY * cableZ; + double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = 0; List<GrainTemp> temperature = new ArrayList<>(); //鏍瑰彿 @@ -470,16 +479,26 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// if (curTemp < -900) { +// sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } @@ -498,7 +517,7 @@ outPut.setTemperature(temperature); outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + ""); outPut.setMinTemperature(min + ""); - outPut.setMaxTemperature(min + ""); + outPut.setMaxTemperature(max + ""); List<GrainTH> ths = new ArrayList<>(); ths.add(new GrainTH(thDto.getTempIn() != null ? thDto.getTempIn() + "" : "", thDto.getHumidityIn() != null ? thDto.getHumidityIn() + "" : "", "1")); diff --git a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java index a6c3c6d..a99d5bf 100644 --- a/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java +++ b/src/main/java/com/fzzy/protocol/bhzn/service/Bhzn2GatewayGrainService.java @@ -65,7 +65,7 @@ // 鍙戦�佸懡浠� InvokeResult message = BhznGrainV2ServerEngine.push(device.getIp(), device.getPort(), BytesUtil.hexStrToBytes(hexStr)); - log.error("骞冲彴------>>>>鎺у埗鏌滐細鍙戦�佺伯鎯呮娴嬪懡浠�-{}", message); + log.info("骞冲彴------>>>>鎺у埗鏌滐細鍙戦�佺伯鎯呮娴嬪懡浠�-{}-{}", message,hexStr); // 灏佽杩斿洖淇℃伅 if (!InvokeResult.SUCCESS.getCode().equals(message.getCode())) { 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 5be2c2d..fad300a 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 @@ -280,7 +280,7 @@ int cableY = cableData.getCableY(); int cableX = cableData.getCableX(); - int sumNum = temps.size(); + int sumNum = 0; //鏁版嵁灏佽 GrainData grain = new GrainData(); @@ -307,7 +307,7 @@ double curTemp; int x = 0, y = 0, z = 0; - for (int i = 0; i < sumNum; i++) { + for (int i = 0; i < temps.size(); i++) { curTemp = temps.get(i); position = i; @@ -321,16 +321,26 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// if (curTemp < -900) { +// sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } @@ -349,7 +359,7 @@ outPut.setTemperature(temperature); outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + ""); outPut.setMinTemperature(min + ""); - outPut.setMaxTemperature(min + ""); + outPut.setMaxTemperature(max + ""); JSONObject properties = new JSONObject(); @@ -415,7 +425,7 @@ GrainOutPut outPut = new GrainOutPut(); - double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableData.getSumNum(); + double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum =0; List<GrainTemp> temperature = new ArrayList<>(); //鏍瑰彿 @@ -437,16 +447,26 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// if (curTemp < -900) { +// sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } diff --git a/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java index cb3f55a..cf2db68 100644 --- a/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java +++ b/src/main/java/com/fzzy/protocol/bhzn/v01/analysis/AnalysisService.java @@ -278,7 +278,7 @@ int cableY = cableData.getCableY(); int cableX = cableData.getCableX(); - int sumNum = temps.size(); + int sumNum = 0; //鏁版嵁灏佽 GrainData grain = new GrainData(); @@ -319,16 +319,26 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// if (curTemp < -900) { +// sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } @@ -347,7 +357,7 @@ outPut.setTemperature(temperature); outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + ""); outPut.setMinTemperature(min + ""); - outPut.setMaxTemperature(min + ""); + outPut.setMaxTemperature(max + ""); JSONObject properties = new JSONObject(); @@ -413,7 +423,7 @@ GrainOutPut outPut = new GrainOutPut(); - double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = cableData.getSumNum(); + double max = ReMessageBuilder.MAX_TEMP, min = ReMessageBuilder.MIN_TEMP, sumT = 0.0, sumNum = 0; List<GrainTemp> temperature = new ArrayList<>(); //鏍瑰彿 @@ -435,16 +445,26 @@ temperature.add(new GrainTemp(cableNum + "", z + "", curTemp + "", position + "")); //姹傛渶澶ф渶灏忓�� - if (curTemp < -900) { - sumNum--; - } else { +// if (curTemp < -900) { +// sumNum--; +// } else { +// sumT += curTemp; +// if (curTemp > max) { +// max = curTemp; +// } +// if (curTemp < min) { +// min = curTemp; +// } +// } + if (curTemp > max && curTemp < 40) { + max = curTemp; + } + if (curTemp < min && curTemp > 3) { + min = curTemp; + } + if(curTemp > 3 && curTemp < 40){ sumT += curTemp; - if (curTemp > max) { - max = curTemp; - } - if (curTemp < min) { - min = curTemp; - } + sumNum++; } } diff --git a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java index 111195e..6d60d71 100644 --- a/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java +++ b/src/main/java/com/fzzy/protocol/youxian1/analysis/AnalysisService.java @@ -255,7 +255,7 @@ outPut.setTemperature(temperature); outPut.setAvgTemperature(NumberUtil.keepPrecision((sumT / sumNum), 1) + ""); outPut.setMinTemperature(min + ""); - outPut.setMaxTemperature(min + ""); + outPut.setMaxTemperature(max + ""); List<GrainTH> ths = new ArrayList<>(); -- Gitblit v1.9.3