From 29807fea73899a5b775eb2c7d8e1c05ea8bc0c3d Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期五, 02 八月 2024 17:00:31 +0800 Subject: [PATCH] 2024-08-02 朱宝民 优化获取全部取水口接口,包含经纬度及12小时之内的报警信息 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java | 78 ++++++++++++++------------------------ 1 files changed, 29 insertions(+), 49 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java index a14fc36..a5f7245 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_84_Up.java @@ -3,6 +3,7 @@ import com.dy.common.mw.protocol.*; import com.dy.common.mw.protocol.p206V1_0_0.*; import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlParse; +import com.dy.common.mw.protocol.p206V1_0_0.upVos.DataCd84Vo; import com.dy.common.util.ByteUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -43,6 +44,7 @@ String confirmComCode = para.upCode ; ParseParamsForDownV1_0_1 downCpParams = new ParseParamsForDownV1_0_1() ; downCpParams.setValue( + null, ProtocolConstantV206V1_0_0.protocolName, para.rtuAddr, Command.defaultId, @@ -83,63 +85,41 @@ protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ; DataCd84Vo cdData = new DataCd84Vo() ; - dV1.dataCd84Vo = cdData ; + dV1.subData = cdData ; short index = ProtocolConstantV206V1_0_0.dataIndex ; - //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�5瀛楄妭BCD鐮佷綆浣嶅湪鍓嶉珮浣嶅湪鍚庛�� - cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ; - index += 5 ; + cdData.opType = (byte)ByteUtil.BCD2Int_LE(bs[index]) ; + index++ ; + cdData.cardType = bs[index] ; + + index++ ; + cdData.cardAddr = ByteUtil.bytes2Hex_LE(bs, false, index, 4) ; + + index += 4 ; + //鐢ㄦ按鎴峰彿鏁版嵁鏍煎紡锛�8瀛楄妭浣庝綅鍦ㄥ墠楂樹綅鍦ㄥ悗銆� + cdData.cardNo = GlParse.parseIcCardNo(bs, index) ; + + index += 8 ; //鐢ㄦ按鎴蜂綑棰濓細鐢ㄦ埛浣欓4瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0.00~999999.99锛屽崟浣嶄负鍏冦�� - cdData.remainMoney = 0.0D ; - int tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.remainMoney += tpInt/100.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.remainMoney += tpInt; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.remainMoney += tpInt * 100.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.remainMoney += tpInt * 10000.0 ; + int tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 3) ; + cdData.remainMoney = tpInt/100.0 ; + index += 4 ; //绱娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999999锛屽崟浣嶄负m3銆� - cdData.totalAmount = 0.0D ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.totalAmount += tpInt; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.totalAmount += tpInt * 100.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.totalAmount += tpInt * 10000.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.totalAmount += tpInt * 1000000.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.totalAmount += tpInt * 100000000.0 ; + tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; + cdData.totalAmount = tpInt/100.0; + index += 5 ; //鐬椂娴侀噺锛�5瀛楄妭BCD鐮侊紝鍙栧�艰寖鍥�0~9999999.999锛屽崟浣嶄负m3/h銆� - cdData.instantAmount = 0.0D ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.instantAmount += tpInt/1000.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.instantAmount += tpInt/10.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.instantAmount += tpInt * 10.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.instantAmount += tpInt * 1000.0 ; - tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; - index++ ; - cdData.instantAmount += tpInt * 100000.0 ; + tpInt = ByteUtil.BCD2Int_LE(bs, index, index + 4) ; + cdData.instantAmount = tpInt/1000.0 ; + + index += 5 ; + cdData.alarmVo = GlParse.parseAlarm(bs, index) ; + index += 2 ; + cdData.stateVo = GlParse.parseState(bs, index) ; + index += 2 ; //鎺у埗鍣ㄦ椂閽� cdData.rtuDt = GlParse.parseTp(bs, index) ; -- Gitblit v1.8.0