From c936441a1288fa252520d1e7639d607caf7ba7b6 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期三, 08 五月 2024 10:28:59 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 106 insertions(+), 2 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java index 982ed69..c5f6360 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java @@ -3,6 +3,7 @@ import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80Vo; import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo; +import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo; import com.dy.common.util.ByteUtil; import com.dy.common.util.ByteUtilUnsigned; import org.apache.logging.log4j.LogManager; @@ -105,6 +106,33 @@ vo.alarmEleLowVolt = (byte)(b & 0x20) ; vo.stateIcEnable = (byte)(b & 0x40) ; } + /** + * 鍒嗘瀽鐘舵�佷笌鎶ヨ + * @param bs + * @param index + * @return + */ + public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3Vo vo){ + byte b = bs[index] ; + vo.statePump = (byte)(b & 0x1) ; + vo.alarmWaterRemain = (byte)(b & 0x2) ; + vo.alarm0WaterRemain = (byte)(b & 0x4) ; + vo.alarmExceedYear = (byte)(b & 0x8) ; + vo.alarmWaterMeterFault = (byte)(b & 0x10) ; + vo.alarmSteal = (byte)(b & 0x20) ; + vo.alarmWaterMeterBreak = (byte)(b & 0x40) ; + vo.alarmEleMeterFault = (byte)(b & 0x80) ; + + index++ ; + b = bs[index] ; + vo.alarm0MoneyRemain = (byte)(b & 0x1) ; + vo.alarmInnerDoor = (byte)(b & 0x2) ; + vo.alarmOuterDoor = (byte)(b & 0x4) ; + vo.alarmEleMiss = (byte)(b & 0x8) ; + vo.alarmEleExceed = (byte)(b & 0x10) ; + vo.alarmEleLowVolt = (byte)(b & 0x20) ; + vo.stateIcEnable = (byte)(b & 0x40) ; + } public static String parseTp(byte[] bs, short index){ String dt = "" ; @@ -134,12 +162,11 @@ * @throws Exception */ public static void parseCd80And5B(byte[] bs, DataCd80Vo cdData) throws Exception{ - int index = ProtocolConstantV206V202404.dataIndex ; cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ; index++ ; - cdData.projectNo = 0 + bs[index]; + cdData.projectNo = (int)bs[index]; index++ ; cdData.useWaterType = bs[index]; @@ -250,4 +277,81 @@ cdData.csq = ByteUtil.BCD2Int_BE(bs, index, index) ; } + + + /** + * 鍒嗘瀽鍔熻兘93銆丄3鍜�85鏁版嵁 + * @param bs + * @param cdData + * @throws Exception + */ + public static void parseCd93A3And85(byte[] bs, DataCd93_A3Vo cdData) throws Exception { + int index = ProtocolConstantV206V202404.dataIndex ; + cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ; + + index++ ; + cdData.projectNo = (int)bs[index]; + + index ++ ; + cdData.opResult = bs[index]; + + index ++ ; + cdData.opType = bs[index]; + + index++ ; + cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ; + + index += 8 ; + cdData.icCardNo = GlParse.parseIcCardNo(bs, index, 6, 2) ; + + index += 8 ; + cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ; + + index ++ ; + String mm = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + String HH = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + String dd = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + String MM = ByteUtil.BCD2String_LE(bs, index, index) ; + cdData.startDt = MM + "鏈�" + dd + "鏃�" + HH + "鏃�" + mm + "鍒�" ; + + index ++ ; + mm = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + HH = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + dd = ByteUtil.BCD2String_LE(bs, index, index) ; + index ++ ; + MM = ByteUtil.BCD2String_LE(bs, index, index) ; + cdData.endDt = MM + "鏈�" + dd + "鏃�" + HH + "鏃�" + mm + "鍒�" ; + + index ++ ; + cdData.waterTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ; + + index += 5 ; + cdData.eleTotalAmount = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ; + + index += 5 ; + cdData.moneyRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ; + + index += 5 ; + cdData.waterRemain = ByteUtil.BCD2Int_BE(bs, index, index + 4)/100.0D ; + + index += 5 ; + cdData.thisEle = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ; + + index += 4 ; + cdData.thisWater = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ; + + index += 4 ; + cdData.thisMoney = ByteUtil.BCD2Int_BE(bs, index, index + 3)/100.0D ; + + index += 4 ; + cdData.thisDuration = ByteUtil.BCD2Int_BE(bs, index, index + 1) ; + + index += 2 ; + GlParse.parseAlarmAndState(bs, index, cdData) ; + } } -- Gitblit v1.8.0