| | |
| | | package com.dy.common.mw.protocol.p206V202404.parse.global; |
| | | |
| | | import com.dy.common.mw.protocol.p206V202404.ProtocolConstantV206V202404; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd80_5BVo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd81Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.DataCd93_A3Vo; |
| | | import com.dy.common.mw.protocol.p206V202404.upVos.*; |
| | | import com.dy.common.util.ByteUtil; |
| | | import com.dy.common.util.ByteUtilUnsigned; |
| | | import org.apache.logging.log4j.LogManager; |
| | |
| | | String mm = ByteUtil.BCD2String_BE(bs, index, index) ; |
| | | index++ ; |
| | | String yy = ByteUtil.BCD2String_BE(bs, index, index) ; |
| | | return yy + "-" + mm + "-" + dd + " " + HH + ":" + MM + ":" + ss ; |
| | | return "20" + yy + "-" + mm + "-" + dd + " " + HH + ":" + MM + ":" + ss ; |
| | | } |
| | | /** |
| | | * 分析IC卡编号 |
| | |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCd80_5BVo 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) ; |
| | | vo.alarmWaterRemain = (byte)(b >> 1 & 1) ; |
| | | vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ; |
| | | vo.alarmExceedYear = (byte)(b >> 3 & 1) ; |
| | | vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ; |
| | | vo.alarmSteal = (byte)(b >> 5 & 1) ; |
| | | vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ; |
| | | vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ; |
| | | |
| | | 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) ; |
| | | vo.alarmInnerDoor = (byte)(b >> 1 & 1) ; |
| | | vo.alarmOuterDoor = (byte)(b >> 2 & 1) ; |
| | | vo.alarmEleMiss = (byte)(b >> 3 & 1) ; |
| | | vo.alarmEleExceed = (byte)(b >> 4 & 1) ; |
| | | vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ; |
| | | vo.stateIcEnable = (byte)(b >> 6 & 1) ; |
| | | } |
| | | /** |
| | | * 分析状态与报警 |
| | |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCd81Vo 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) ; |
| | | vo.alarmWaterRemain = (byte)(b >> 1 & 1) ; |
| | | vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ; |
| | | vo.alarmExceedYear = (byte)(b >> 3 & 1) ; |
| | | vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ; |
| | | vo.alarmSteal = (byte)(b >> 5 & 1) ; |
| | | vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ; |
| | | vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ; |
| | | |
| | | 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) ; |
| | | vo.alarmInnerDoor = (byte)(b >> 1 & 1) ; |
| | | vo.alarmOuterDoor = (byte)(b >> 2 & 1) ; |
| | | vo.alarmEleMiss = (byte)(b >> 3 & 1) ; |
| | | vo.alarmEleExceed = (byte)(b >> 4 & 1) ; |
| | | vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ; |
| | | vo.stateIcEnable = (byte)(b >> 6 & 1) ; |
| | | } |
| | | /** |
| | | * 分析状态与报警 |
| | |
| | | * @param index |
| | | * @return |
| | | */ |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3Vo vo){ |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCd84Vo 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) ; |
| | | vo.alarmWaterRemain = (byte)(b >> 1 & 1) ; |
| | | vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ; |
| | | vo.alarmExceedYear = (byte)(b >> 3 & 1) ; |
| | | vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ; |
| | | vo.alarmSteal = (byte)(b >> 5 & 1) ; |
| | | vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ; |
| | | vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ; |
| | | |
| | | 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) ; |
| | | vo.alarmInnerDoor = (byte)(b >> 1 & 1) ; |
| | | vo.alarmOuterDoor = (byte)(b >> 2 & 1) ; |
| | | vo.alarmEleMiss = (byte)(b >> 3 & 1) ; |
| | | vo.alarmEleExceed = (byte)(b >> 4 & 1) ; |
| | | vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ; |
| | | vo.stateIcEnable = (byte)(b >> 6 & 1) ; |
| | | } |
| | | /** |
| | | * 分析状态与报警 |
| | | * @param bs |
| | | * @param index |
| | | * @return |
| | | */ |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCd93_A3_85Vo vo){ |
| | | byte b = bs[index] ; |
| | | vo.statePump = (byte)(b & 0x1) ; |
| | | vo.alarmWaterRemain = (byte)(b >> 1 & 1) ; |
| | | vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ; |
| | | vo.alarmExceedYear = (byte)(b >> 3 & 1) ; |
| | | vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ; |
| | | vo.alarmSteal = (byte)(b >> 5 & 1) ; |
| | | vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ; |
| | | vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ; |
| | | |
| | | index++ ; |
| | | b = bs[index] ; |
| | | vo.alarm0MoneyRemain = (byte)(b & 0x1) ; |
| | | vo.alarmInnerDoor = (byte)(b >> 1 & 1) ; |
| | | vo.alarmOuterDoor = (byte)(b >> 2 & 1) ; |
| | | vo.alarmEleMiss = (byte)(b >> 3 & 1) ; |
| | | vo.alarmEleExceed = (byte)(b >> 4 & 1) ; |
| | | vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ; |
| | | vo.stateIcEnable = (byte)(b >> 6 & 1) ; |
| | | } |
| | | /** |
| | | * 分析状态与报警 |
| | | * @param bs |
| | | * @param index |
| | | * @return |
| | | */ |
| | | public static void parseAlarmAndState(byte[] bs, int index, DataCdC2Vo vo){ |
| | | byte b = bs[index] ; |
| | | vo.statePump = (byte)(b & 0x1) ; |
| | | vo.alarmWaterRemain = (byte)(b >> 1 & 1) ; |
| | | vo.alarm0WaterRemain = (byte)(b >> 2 & 1) ; |
| | | vo.alarmExceedYear = (byte)(b >> 3 & 1) ; |
| | | vo.alarmWaterMeterFault = (byte)(b >> 4 & 1) ; |
| | | vo.alarmSteal = (byte)(b >> 5 & 1) ; |
| | | vo.alarmWaterMeterBreak = (byte)(b >> 6 & 1) ; |
| | | vo.alarmEleMeterFault = (byte)(b >> 7 & 1) ; |
| | | |
| | | index++ ; |
| | | b = bs[index] ; |
| | | vo.alarm0MoneyRemain = (byte)(b & 0x1) ; |
| | | vo.alarmInnerDoor = (byte)(b >> 1 & 1) ; |
| | | vo.alarmOuterDoor = (byte)(b >> 2 & 1) ; |
| | | vo.alarmEleMiss = (byte)(b >> 3 & 1) ; |
| | | vo.alarmEleExceed = (byte)(b >> 4 & 1) ; |
| | | vo.alarmEleLowVolt = (byte)(b >> 5 & 1) ; |
| | | vo.stateIcEnable = (byte)(b >> 6 & 1) ; |
| | | } |
| | | |
| | | public static String parseTp(byte[] bs, short index){ |
| | |
| | | * @param cdData |
| | | * @throws Exception |
| | | */ |
| | | public static void parseCd93A3And85(byte[] bs, DataCd93_A3Vo cdData) throws Exception { |
| | | public static void parseCd93A3And85(byte[] bs, DataCd93_A3_85Vo cdData) throws Exception { |
| | | int index = ProtocolConstantV206V202404.dataIndex ; |
| | | cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ; |
| | | |