1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
package com.dy.common.mw.protocol.p206V202404.upVos;
 
import lombok.Data;
 
//设备终端工作上报 + 查询设备终端实时值
@Data
public class DataCd80_5BVo {
 
    public String controllerType;//控制器类型:   01:测控一体阀;57:井电控制器
    public Integer projectNo ;//项目编号:
    public Byte useWaterType ;//用水方式(0x00:正常刷卡开泵/阀用水 0x01:平台远程开泵/阀用水 0x02:用户远程开泵/阀用水 0x03:测试卡,0x04:其它)
    public String orderNo ;//订单号(16位数字)
    public String icCardAddr ;//IC卡地址(远程开泵/阀时此数据为0)
    public String icCardNo ;//用户卡序列号(16位数字)
    public String rtuDt ;//观察时间: 6字节的BCD码(秒分时日月年)
    public Double waterLevel ;//水位(单位0.001米)
    public Double waterPress ;//水压(单位0.01千帕)
    public Double waterInstant ;//瞬时流量(单位0.01立方米/小时)
    public Double waterTotal ;//水表累计流量(单位0.01m3)
    public Double eleTotal ;//电表累计电量(单位0.01度)
    public Double moneyRemain ;//用户剩余金额(单位0.01元)
    public Double waterRemain ;//用户剩余水量(单位0.01m3)
    public Double thisEle ;//本次使用电量(单位0.01度)
    public Double thisWater ;//本次使用水量(单位0.01立方米)
    public Double thisMoney ;//本次使用金额(单位0.01元)
    public Integer thisDuration ;//本次使用时长(单位:分钟  最大9999分钟)
    public Double waterPrice ;//当前水量单价(单位0.01元 最大99.99元)
    public Double elePrice ;//当前电量单价(单位0.01元 最大99.99元)
    public Double aVolt ;//交流A相电压数据(单位0.1伏特)
    public Double bVolt ;//交流B相电压数据(单位0.1伏特)
    public Double cVolt ;//交流C相电压数据(单位0.1伏特)
    public Double aCurrent ;//交流A相电流数据(单位0.1安培)
    public Double bCurrent ;//交流B相电流数据(单位0.1安培)
    public Double cCurrent ;//交流C相电流数据(单位0.1安培)
    public Double batteryVolt ;//后备电池电压(单位0.01伏特)
    public Double waterMeterTransVolt ;//水表远传电压(单位0.01伏特)
    public Double waterMeterWorkVolt ;//水表工作电压(单位0.01伏特)
    /*
    CSQ值应在0到31之间,其中99表示无信号。
    网络质量评估:
        CSQ值小于10:可以认为网络较差。
        CSQ值在10和25之间:可以认为网络中等。
        CSQ值大于25:可以认为网络较好。
        CSQ值小于11:不容易附着网络。
        11 < CSQ < 18:网络不稳定,可能会导致误码较多。
        CSQ值大于18:能稳定通信
     */
    public Integer csq ;//手机信号强度 CSQ值()
 
    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:正常)
    public Byte alarmWaterMeterBreak ; //流量计损坏报警    (1:正常通讯但瞬时为0报警 0:正常)
    public Byte alarmEleMeterFault ; //电表故障报警    (1:和电表通讯断或数据不正常 0:正常)
    public Byte alarm0MoneyRemain ; //剩余金额为0关泵/阀    (1:剩余金额为0报警  0:正常)
    public Byte alarmInnerDoor ; //控制器内门报警    (1:内门打开报警    0:正常)
    public Byte alarmOuterDoor ; //控制器外门报警    (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 String comName ;//命令名称
 
    public DataCd80_5BVo(String comName){
        this.comName = comName ;
    }
 
    public String toString(){
        StringBuffer sb = new StringBuffer() ;
        sb.append("      " + comName + " : \n") ;
        sb.append("      控制器类型 : ") ;
        sb.append(controllerType == null?"未知":(controllerType.equals("01")?"测控一体阀":(controllerType.equals("57")?"井电控制器":"未知"))) ;
        sb.append("\n") ;
        sb.append("      项目编号 : ") ;
        sb.append(projectNo == null?"未知":projectNo) ;
        sb.append("\n") ;
        sb.append("      用水方式 : ") ;
        sb.append(useWaterType == null?"未知":(useWaterType.byteValue()==0?"刷卡开泵/阀":(useWaterType.byteValue()==1?"平台远程开泵/阀":(useWaterType.byteValue()==2?"APP远程开泵/阀":(useWaterType.byteValue()==3?"测试卡开泵/阀":(useWaterType.byteValue()==4?"其他":"未知")))))) ;
        sb.append("\n") ;
        sb.append("      订单号 : ") ;
        sb.append(orderNo == null?"未知":orderNo) ;
        sb.append("\n") ;
        sb.append("      IC卡地址 : ") ;
        sb.append(icCardAddr == null?"未知":icCardAddr) ;
        sb.append("\n") ;
        sb.append("      用户卡序列号 : ") ;
        sb.append(icCardNo == null?"未知":icCardNo) ;
        sb.append("\n") ;
        sb.append("      观察时间 : ") ;
        sb.append(rtuDt == null?"未知":rtuDt) ;
        sb.append("\n") ;
        sb.append("      水位 : ") ;
        sb.append(waterLevel == null?"未知":waterLevel) ;
        sb.append("\n") ;
        sb.append("      水压 : ") ;
        sb.append(waterPress == null?"未知":waterPress) ;
        sb.append("\n") ;
        sb.append("      瞬时流量 : ") ;
        sb.append(waterInstant == null?"未知":waterInstant) ;
        sb.append("\n") ;
        sb.append("      水表累计流量 : ") ;
        sb.append(waterTotal == null?"未知":waterTotal) ;
        sb.append("\n") ;
        sb.append("      电表累计电量 : ") ;
        sb.append(eleTotal == null?"未知":eleTotal) ;
        sb.append("\n") ;
        sb.append("      用户剩余金额 : ") ;
        sb.append(moneyRemain == null?"未知":moneyRemain) ;
        sb.append("\n") ;
        sb.append("      用户剩余水量 : ") ;
        sb.append(waterRemain == null?"未知":waterRemain) ;
        sb.append("\n") ;
        sb.append("      本次使用电量 : ") ;
        sb.append(thisEle == null?"未知":thisEle) ;
        sb.append("\n") ;
        sb.append("      本次使用水量 : ") ;
        sb.append(thisWater == null?"未知":thisWater) ;
        sb.append("\n") ;
        sb.append("      本次使用金额 : ") ;
        sb.append(thisMoney == null?"未知":thisMoney) ;
        sb.append("\n") ;
        sb.append("      本次使用时长 : ") ;
        sb.append(thisDuration == null?"未知":thisDuration) ;
        sb.append("\n") ;
        sb.append("      当前水量单价 : ") ;
        sb.append(waterPrice == null?"未知":waterPrice) ;
        sb.append("\n") ;
        sb.append("      当前电量单价 : ") ;
        sb.append(elePrice == null?"未知":elePrice) ;
        sb.append("\n") ;
        sb.append("      交流A相电压 : ") ;
        sb.append(aVolt == null?"未知":aVolt) ;
        sb.append("\n") ;
        sb.append("      交流B相电压 : ") ;
        sb.append(bVolt == null?"未知":bVolt) ;
        sb.append("\n") ;
        sb.append("      交流C相电压 : ") ;
        sb.append(cVolt == null?"未知":cVolt) ;
        sb.append("\n") ;
        sb.append("      交流A相电流 : ") ;
        sb.append(aCurrent == null?"未知":aCurrent) ;
        sb.append("\n") ;
        sb.append("      交流B相电流 : ") ;
        sb.append(bCurrent == null?"未知":bCurrent) ;
        sb.append("\n") ;
        sb.append("      交流C相电流 : ") ;
        sb.append(cCurrent == null?"未知":cCurrent) ;
        sb.append("\n") ;
        sb.append("      后备电池电压 : ") ;
        sb.append(batteryVolt == null?"未知":batteryVolt) ;
        sb.append("\n") ;
        sb.append("      水表远传电压 : ") ;
        sb.append(waterMeterTransVolt == null?"未知":waterMeterTransVolt) ;
        sb.append("\n") ;
        sb.append("      水表工作电压 : ") ;
        sb.append(waterMeterWorkVolt == null?"未知":waterMeterWorkVolt) ;
        sb.append("\n") ;
        sb.append("      泵状态 : ") ;
        sb.append(statePump == null?"未知":(statePump.byteValue()==1?"泵/阀开":(statePump.byteValue()==0?"泵/阀关":"未知"))) ;
        sb.append("      剩余水量报警 : ") ;
        sb.append(alarmWaterRemain == null?"未知":(alarmWaterRemain.byteValue()==1?"小于报警上限":(alarmWaterRemain.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      剩余水量为0关泵/阀 : ") ;
        sb.append(alarm0WaterRemain == null?"未知":(alarm0WaterRemain.byteValue()==1?"归零关泵/阀":(alarm0WaterRemain.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      年度超采 : ") ;
        sb.append(alarmExceedYear == null?"未知":(alarmExceedYear.byteValue()==1?"报警":(alarmExceedYear.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      外部流量计故障 : ") ;
        sb.append(alarmWaterMeterFault == null?"未知":(alarmWaterMeterFault.byteValue()==1?"报警":(alarmWaterMeterFault.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      偷水 : ") ;
        sb.append(alarmSteal == null?"未知":(alarmSteal.byteValue()==1?"报警":(alarmSteal.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      流量计损坏 : ") ;
        sb.append(alarmWaterMeterBreak == null?"未知":(alarmWaterMeterBreak.byteValue()==1?"报警":(alarmWaterMeterBreak.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      电表故障 : ") ;
        sb.append(alarmEleMeterFault == null?"未知":(alarmEleMeterFault.byteValue()==1?"报警":(alarmEleMeterFault.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      剩余金额为0关泵/阀 : ") ;
        sb.append(alarm0MoneyRemain == null?"未知":(alarm0MoneyRemain.byteValue()==1?"报警":(alarm0MoneyRemain.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      控制器内门 : ") ;
        sb.append(alarmInnerDoor == null?"未知":(alarmInnerDoor.byteValue()==1?"报警":(alarmInnerDoor.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      控制器外门 : ") ;
        sb.append(alarmOuterDoor == null?"未知":(alarmOuterDoor.byteValue()==1?"报警":(alarmOuterDoor.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      交流缺项 : ") ;
        sb.append(alarmEleMiss == null?"未知":(alarmEleMiss.byteValue()==1?"报警":(alarmEleMiss.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      交流过流 : ") ;
        sb.append(alarmEleExceed == null?"未知":(alarmEleExceed.byteValue()==1?"报警":(alarmEleExceed.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      三相电欠压 : ") ;
        sb.append(alarmEleLowVolt == null?"未知":(alarmEleLowVolt.byteValue()==1?"报警":(alarmEleLowVolt.byteValue()==0?"正常":"未知"))) ;
        sb.append("\n") ;
        sb.append("      IC卡使能 : ") ;
        sb.append(stateIcEnable == null?"未知":(stateIcEnable.byteValue()==1?"支持":(stateIcEnable.byteValue()==0?"不支持":"未知"))) ;
        sb.append("\n") ;
        return sb.toString() ;
    }
 
}