package com.dy.common.mw.protocol.p206V202404.upVos; /** * @Author: liurunyu * @Date: 2024/5/13 16:01 * @Description */ public class AlarmVo { public static final byte DevOpenState = 1 ; public static final byte DevCloseState = 0 ; public Byte statePump ; //泵/阀状态 (1:开泵/阀;0:关泵/阀) public Byte alarmWaterRemain ; //剩余水量报警 (1:小于报警上限报警 0:正常) public Byte alarm0WaterRemain ; //剩余水量为0关泵/阀 (1:剩余水量为0关泵 0:正常) public Byte alarmExceedYear ; //年度超采报警 (1:年用水量大于限制水量报警 0:正常) public Byte alarmWaterMeterFault ; //外部流量计故障 (1:流量计故障报警 0:正常) public Byte alarmSteal ; //偷水报警 (1:绕开控制器用水报警 0:正常)(2025-02-19:对应靳总协议中的漏损报警,即关阀态时有流量产生) public Byte alarmWaterMeterBreak ; //流量计损坏报警 (1:正常通讯但瞬时为0报警 0:正常) public Byte alarmEleMeterFault ; //电表故障报警 (1:和电表通讯断或数据不正常 0:正常) public Byte alarm0MoneyRemain ; //剩余金额为0 (1:剩余金额为0报警 0:正常) public Byte alarmDoor; //控制器内门报警 (1:内门打开报警 0:正常) public Byte alarmBatteryVolt; //电池电压低报警 (1:电池低关阀报警 0:正常) public Byte alarmEleMiss ; //交流缺项报警 (1:三相缺项报警 0:正常) public Byte alarmEleExceed ; //交流过流报警 (1:交流过流报警 0:正常) public Byte alarmEleLowVolt ; //三相电欠压报警 (1:欠压报警 0:正常) public Byte stateIcEnable ; //IC卡使能 (1:IC有刷卡支持 0:不支持) public Byte alarmBlockValve; //阀门故障报警 (1:阀门堵转 0:阀门正常(不堵转)) public Byte stateOpClValve ; //阀门开关状态 (1:开关阀不到位 0:开关阀到位) public boolean hasAlarm(){ boolean flag = false ; if((alarmBatteryVolt != null && alarmBatteryVolt == 1) || (alarmWaterMeterFault != null && alarmWaterMeterFault == 1) || (alarmWaterMeterBreak != null && alarmWaterMeterBreak == 1) || (alarmSteal != null && alarmSteal == 1) || (alarmBlockValve != null && alarmBlockValve == 1) ){ flag = true ; } return flag ; } public boolean hasAlarmExcludeLoss(){ boolean flag = false ; if((alarmBatteryVolt != null && alarmBatteryVolt == 1) || (alarmWaterMeterFault != null && alarmWaterMeterFault == 1) || (alarmWaterMeterBreak != null && alarmWaterMeterBreak == 1)|| (alarmBlockValve != null && alarmBlockValve == 1) ){ flag = true ; } return flag ; } public String alarmContent(){ String txt = "" ; boolean hasTxt = false ; if(alarmBatteryVolt != null && alarmBatteryVolt == 1){ txt += (hasTxt?"、":"") + "电池电压低报警" ; hasTxt = true ; } if(alarmWaterMeterFault != null && alarmWaterMeterFault == 1){ txt += (hasTxt?"、":"") + "外部流量计故障报警" ; hasTxt = true ; } if(alarmWaterMeterBreak != null && alarmWaterMeterBreak == 1){ txt += (hasTxt?"、":"") + "流量计故障报警" ; hasTxt = true ; } if(alarmSteal != null && alarmSteal == 1){ txt += (hasTxt?"、":"") + "漏损报警" ; hasTxt = true ; } if(alarmBlockValve != null && alarmBlockValve == 1){ txt += (hasTxt?"、":"") + "阀门故障报警" ; hasTxt = true ; } return txt ; } public String alarmContentExcludeLoss(){ String txt = "" ; boolean hasTxt = false ; if(alarmBatteryVolt != null && alarmBatteryVolt == 1){ txt += (hasTxt?"、":"") + "电池电压低报警" ; hasTxt = true ; } if(alarmWaterMeterFault != null && alarmWaterMeterFault == 1){ txt += (hasTxt?"、":"") + "外部流量计故障报警" ; hasTxt = true ; } if(alarmWaterMeterBreak != null && alarmWaterMeterBreak == 1){ txt += (hasTxt?"、":"") + "流量计故障报警" ; hasTxt = true ; } if(alarmBlockValve != null && alarmBlockValve == 1){ txt += (hasTxt?"、":"") + "阀门故障报警" ; hasTxt = true ; } return txt ; } public String toString(){ StringBuffer sb = new StringBuffer() ; sb.append(" 泵/阀状态 : ") ; sb.append(statePump == null?"未知":(statePump.byteValue()==1?"泵/阀开":(statePump.byteValue()==0?"泵/阀关":"未知"))) ; sb.append("\n") ; sb.append(" 剩余水量报警 : ") ; sb.append(alarmWaterRemain == null?"未知":(alarmWaterRemain.byteValue() == 0 ? "正常":(alarmWaterRemain.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 剩余0水量关泵/阀 : ") ; sb.append(alarm0WaterRemain == null?"未知":(alarm0WaterRemain.byteValue() == 0 ? "正常":(alarm0WaterRemain.byteValue() == 1 ? "关泵/阀":"未知"))) ; sb.append("\n") ; sb.append(" 年度超采 : ") ; sb.append(alarmExceedYear == null?"未知":(alarmExceedYear.byteValue() == 0 ? "正常":(alarmExceedYear.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 流量计故障 : ") ; sb.append(alarmWaterMeterFault == null?"未知":(alarmWaterMeterFault.byteValue() == 0 ? "正常":(alarmWaterMeterFault.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 偷水 : ") ; sb.append(alarmSteal == null?"未知":(alarmSteal.byteValue() == 0 ? "正常":(alarmSteal.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 流量计损坏 : ") ; sb.append(alarmWaterMeterBreak == null?"未知":(alarmWaterMeterBreak.byteValue() == 0 ? "正常":(alarmWaterMeterBreak.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 电表故障 : ") ; sb.append(alarmEleMeterFault == null?"未知":(alarmEleMeterFault.byteValue() == 0 ? "正常":(alarmEleMeterFault.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 剩余0金额关泵/阀 : ") ; sb.append(alarm0MoneyRemain == null?"未知":(alarm0MoneyRemain.byteValue() == 0 ? "正常":(alarm0MoneyRemain.byteValue() == 1 ? "关泵/阀":"未知"))) ; sb.append("\n") ; sb.append(" 控制器内门 : ") ; sb.append(alarmDoor == null?"未知":(alarmDoor.byteValue() == 0 ? "正常":(alarmDoor.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 电池电压低 : ") ; sb.append(alarmBatteryVolt == null?"未知":(alarmBatteryVolt.byteValue() == 0 ? "正常":(alarmBatteryVolt.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 交流缺项 : ") ; sb.append(alarmEleMiss == null?"未知":(alarmEleMiss.byteValue() == 0 ? "正常":(alarmEleMiss.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 交流过流 : ") ; sb.append(alarmEleExceed == null?"未知":(alarmEleExceed.byteValue() == 0 ? "正常":(alarmEleExceed.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" 三相电欠压 : ") ; sb.append(alarmEleLowVolt == null?"未知":(alarmEleLowVolt.byteValue() == 0 ? "正常":(alarmEleLowVolt.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; sb.append(" IC卡功能 : ") ; sb.append(stateIcEnable == null?"未知":(stateIcEnable.byteValue() == 0 ? "无效":(stateIcEnable.byteValue() == 1 ? "有效":"未知"))) ; sb.append("\n") ; sb.append(" 阀门开关状态 : ") ; sb.append(stateOpClValve == null?"未知":(stateOpClValve.byteValue() == 0 ? "正常":(stateOpClValve.byteValue() == 1 ? "未到位":"未知"))) ; sb.append("\n") ; sb.append(" 阀门堵转报警 : ") ; sb.append(alarmBlockValve == null?"未知":(alarmBlockValve.byteValue() == 0 ? "正常":(alarmBlockValve.byteValue() == 1 ? "报警":"未知"))) ; sb.append("\n") ; return sb.toString() ; } }