From 091c89cd56ad6dac4a2cb6767b00693058e0fbed Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期日, 08 十月 2023 16:54:11 +0800 Subject: [PATCH] 优化贝博粮情协议-星仓补点问题 --- igds-protocol-beibo/src/main/java/com/ld/igds/protocol/beibo/grainv1/analysis/AnalysisService.java | 117 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 79 insertions(+), 38 deletions(-) diff --git a/igds-protocol-beibo/src/main/java/com/ld/igds/protocol/beibo/grainv1/analysis/AnalysisService.java b/igds-protocol-beibo/src/main/java/com/ld/igds/protocol/beibo/grainv1/analysis/AnalysisService.java index a516d11..0338e4f 100644 --- a/igds-protocol-beibo/src/main/java/com/ld/igds/protocol/beibo/grainv1/analysis/AnalysisService.java +++ b/igds-protocol-beibo/src/main/java/com/ld/igds/protocol/beibo/grainv1/analysis/AnalysisService.java @@ -65,8 +65,39 @@ public static double MAX_TEMP = -50.0; public static double MIN_TEMP = 50.0; + /* + * 00000000FFEB90FEAA41D821DD21DB21DE21DE21DA21DD21DE21DC21DC21DC21DC21DB21D821D721CE21D121DD21DC21DF21DE21DE21DD21DA21DD21D921DD21DC21DA21D921D921D721D521D321DD21DE21DF21DC21DF21DC21DA21DD21DD21DD21DC21DC21DC21DB21D821D721D121DC21DF21DF21DD21DD21DA21DE21DD21DC21DE21DB21D821DA21DB21D821D721D321DE21E021DD21DF21DF21DE21DB21DC21DF21DF21DD21DF21DB21DC21DB21FFFFFFFFDA21DC21D721DB21DB21DA21DB21D421DB21D921DC21D821D921D621D321FFFFFFFFDF21E021DE21DE21DB21DD21DC21E021DF21DD21DD21DC21DC21DC21DA21FFFFFFFFD921DD21DD21DE21DB21DD21DA21DB21DF21DD21DC21DB21DB21DB21D921FFFFFFFFDD21DC21DE21DD21DE21DC21DB21DC21DE21DE21DC21DC21DB21D921D921FFFFFFFFE021DD21DB21E021DF21DB21DB21D821DE21DE21DD21DD21DB21DB21DB21FFFFFFFFE021E021E021E221DC21DE21DF21DD21DD21DF21DF21DB21DC21DD21DC21FFFFFFFFE221E321E321E521E421DF21E321E321E321E521E321E121D921DE21FFFFFFFFFFFFE321E421E321E621E521E321E621E021E521E321E221E321DF21DE21FFFFFFFFFFFFE421E621E521E521E621E321E521E121E621E121E321E421E121DE21FFFFFFFFFFFFE621E421E521E521E521E321E521E421E121E321E521E321DF21E021FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40013D10101039014110101010101010101000000000000000E5113500031A4C + * + * 00000000FFEB90FEAA + * 41 + * D821DD21DB21DE21DE21DA21DD21DE21DC21DC21DC21DC21DB21D821D721CE21D121 + * DD21DC21DF21DE21DE21DD21DA21DD21D921DD21DC21DA21D921D921D721D521D321 + * DD21DE21DF21DC21DF21DC21DA21DD21DD21DD21DC21DC21DC21DB21D821D721D121 + * DC21DF21DF21DD21DD21DA21DE21DD21DC21DE21DB21D821DA21DB21D821D721D321 + * DE21E021DD21DF21DF21DE21DB21DC21DF21DF21DD21DF21DB21DC21DB21FFFFFFFF + * DA21DC21D721DB21DB21DA21DB21D421DB21D921DC21D821D921D621D321FFFFFFFF + * DF21E021DE21DE21DB21DD21DC21E021DF21DD21DD21DC21DC21DC21DA21FFFFFFFF + * D921DD21DD21DE21DB21DD21DA21DB21DF21DD21DC21DB21DB21DB21D921FFFFFFFF + * DD21DC21DE21DD21DE21DC21DB21DC21DE21DE21DC21DC21DB21D921D921FFFFFFFF + * E021DD21DB21E021DF21DB21DB21D821DE21DE21DD21DD21DB21DB21DB21FFFFFFFF + * E021E021E021E221DC21DE21DF21DD21DD21DF21DF21DB21DC21DD21DC21FFFFFFFF + * + * E221E321E321E521E421DF21E321E321E321E521E321E121D921DE21FFFFFFFFFFFF + * E321E421E321E621E521E321E621E021E521E321E221E321DF21DE21FFFFFFFFFFFF + * E421E621E521E521E621E321E521E121E621E121E321E421E121DE21FFFFFFFFFFFF + * E621E421E521E521E521E321E521E421E121E321E521E321DF21E021FFFFFFFFFFFF + * FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + * 40013D 101010 390141 101010101010101010 + * 00000000000000E51135 + * 00031A4C + * + * + * + * + * + * */ /** - * 00000000FFEB90FEAA41E821EC21EA21EC21ED21EC21E921E221E921E921E921EC21E921ED21F021E521E521E221E421E321E321E121DE21D721E021DD21DC21DF21FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + * * * @param hexStr */ @@ -228,14 +259,17 @@ log.info("------绛掍粨绮儏鎶ユ枃={}------", strPoints); - int sumNum = 0, cableZ = 1;// sumNum 鍏卞灏戞牴鐢电紗锛沜ableZ 灞傜殑鏈�澶у�硷紝閿ュ舰浠撹ˉ榻愭渶澶у眰 + int sumNum = 0, cableZ = 1; // sumNum 鍏卞灏戞牴鐢电紗锛沜ableZ 灞傜殑鏈�澶у�硷紝閿ュ舰浠撹ˉ榻愭渶澶у眰 + for (int i = 0; i < cableCirAtt.length; i++) { if (Integer.valueOf(cableCirAtt[i]) > cableZ) { cableZ = Integer.valueOf(cableCirAtt[i]); } sumNum += Integer.valueOf(cableRuleAtt[i]); } - + int cableZTemp = 1;// 褰撳墠浠撶殑鏈�澶у眰 + cableZTemp = cableZ; + //鍒ゆ柇鏈�澶у眰璺熷垎鏈虹殑灞傛暟鏄惁涓�鑷� if(cableZ < ser.getCableZ()){ cableZ = ser.getCableZ(); } @@ -252,39 +286,46 @@ double tempValue; String temp; int symbol = 0; //绗﹀彿浣� + int num = 0; //鏍囪瑙f瀽鐨勫眰鏁� for (int i = 0; i < strPoints.length() / 4; i++) { - temp = strPoints.substring(i * 4, i * 4 + 4); - if (temp == null) { - temp = "0000"; + if(num == cableZ){ + num = 0; } - //楂樹綆浣嶈浆鎹㈠悗杞负16浣嶄簩杩涘埗瀛楃涓� - temp = BytesUtil.tran_LH(temp); - if(ERROR_HEX.equals(temp)){ - tempValue = Constant.ERROR_TEMP; - }else { - //10杩涘埗杞�16浣嶇殑2杩涘埗 - temp = BytesUtil.hexString2binaryString(temp, 16); - //绗﹀彿浣� - symbol = Integer.valueOf(temp.substring(0, 1)); - //鑾峰彇娓╁害鍊� - tempValue = BytesUtil.biannary2Decimal(temp.substring(6)) * 0.0625; - //鑻ヤ负璐燂紝鍒欒ˉ鐮侊細鍙栧弽鍔�1 - if (symbol == 1) { - tempValue = ((~BytesUtil.biannary2Decimal(temp.substring(6))) + 1) * 0.0625; + if(num < cableZTemp){ + temp = strPoints.substring(i * 4, i * 4 + 4); + if (temp == null) { + temp = "0000"; } - tempValue = NumberUtil.keepPrecision(tempValue, 1); - } + //楂樹綆浣嶈浆鎹㈠悗杞负16浣嶄簩杩涘埗瀛楃涓� + temp = BytesUtil.tran_LH(temp); + if(ERROR_HEX.equals(temp)){ + tempValue = Constant.ERROR_TEMP; + }else { + //10杩涘埗杞�16浣嶇殑2杩涘埗 + temp = BytesUtil.hexString2binaryString(temp, 16); + //绗﹀彿浣� + symbol = Integer.valueOf(temp.substring(0, 1)); + //鑾峰彇娓╁害鍊� + tempValue = BytesUtil.biannary2Decimal(temp.substring(6)) * 0.0625; + //鑻ヤ负璐燂紝鍒欒ˉ鐮侊細鍙栧弽鍔�1 + if (symbol == 1) { + tempValue = ((~BytesUtil.biannary2Decimal(temp.substring(6))) + 1) * 0.0625; + } + tempValue = NumberUtil.keepPrecision(tempValue, 1); + } - //闈炴甯稿�� - if (tempValue > ERROR_CHECK_TAG2) { - tempValue = Constant.ERROR_TEMP; - } + //闈炴甯稿�� + if (tempValue > ERROR_CHECK_TAG2) { + tempValue = Constant.ERROR_TEMP; + } - // 鏁呴殰鍊煎鐞� - if (tempValue >= FAULT_CHECK_TAG) { - tempValue = Constant.FAULT_TEMP; + // 鏁呴殰鍊煎鐞� + if (tempValue >= FAULT_CHECK_TAG) { + tempValue = Constant.FAULT_TEMP; + } + temps.add(tempValue); } - temps.add(tempValue); + num ++; } log.debug("-------CheckGrainRequest--={}", exeRequest.toString()); @@ -435,9 +476,9 @@ grain.setHumidityOut(humidity * 1.0); substring = thStr.substring(2); tem = BytesUtil.hexToInt(substring); - grain.setTempOut(tem * 1.0); + grain.setTempOut(tem * 0.1); if(substring.startsWith("1")){ - grain.setTempOut(tem * -1.0); + grain.setTempOut(tem * -0.1); } //瑙f瀽浠撳唴娓╀粨鍐呮箍 @@ -452,9 +493,9 @@ grain.setHumidityIn(humidity * 1.0); substring = thStr.substring(2); tem = BytesUtil.hexToInt(substring); - grain.setTempIn(tem * 1.0); + grain.setTempIn(tem * 0.1); if(substring.startsWith("1")){ - grain.setTempIn(tem * -1.0); + grain.setTempIn(tem * -0.1); } grain.setReceiveDate(new Date()); @@ -547,9 +588,9 @@ grain.setHumidityOut(humidity * 1.0); substring = thStr.substring(2); tem = BytesUtil.hexToInt(substring); - grain.setTempOut(tem * 1.0); + grain.setTempOut(tem * 0.1); if(substring.startsWith("1")){ - grain.setTempOut(tem * -1.0); + grain.setTempOut(tem * -0.1); } //瑙f瀽浠撳唴娓╀粨鍐呮箍 @@ -564,9 +605,9 @@ grain.setHumidityIn(humidity * 1.0); substring = thStr.substring(2); tem = BytesUtil.hexToInt(substring); - grain.setTempIn(tem * 1.0); + grain.setTempIn(tem * 0.1); if(substring.startsWith("1")){ - grain.setTempIn(tem * -1.0); + grain.setTempIn(tem * -0.1); } grain.setReceiveDate(new Date()); -- Gitblit v1.9.3