whyclxw
2020-08-20 8c99969ac4cd8aed716664b91383dfc19c7a3c3c
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
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
package com.watersystem.monitor;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
 
public class Watersystem_SocketClient_Thread implements Runnable{
    public MysqlConnPool conn_pool;
    public Water_inf winf;
    
    public Water_rt wrt;
    public Water_brach wbrach;
    public Water_state wstate;
    public Water_alarm walarm;
    public List<Water_alarm> listAlarm;
    public MyModbusMaster master;
    
    //public static final int MAX_READALARM_COUNT = 20;        //Ò»´Î¶ÁÈ¡¸æ¾¯½ÚµãµÄ×î´óÊýÁ¿
    //public int read_alarm_index = 0;                        //¶ÁÈ¡¸æ¾¯Ë÷Òý
    
    public Watersystem_SocketClient_Thread(Water_inf winf,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        this.winf = winf;
        
        wrt = new Water_rt(winf.getWater_id());
        wstate = new Water_state(winf.getWater_id());
        wbrach = new Water_brach(winf.getWater_id());
        master = new MyModbusMaster(winf.getWater_ip(), MyModbusMaster.SLAVEID_DEFAULT);
    }
        
 
    
    
 
    @Override
    public void run() {
        int runCount = 0;
        while(true) {
            try {
                
                if(runCount %2 == 0) {
                    //*************************** ¸üÐÂË®ÀäϵͳʵʱÐÅÏ¢******************************//*
                    readWater_rt(master,wrt);
                    Water_Task_SQL.replace_water_rt(conn_pool, wrt);
                    
                    //**************************** ¸üÐÂË®Àäϵͳ·Ö֧ʵʱÐÅÏ¢ *****************************//*
                    readWater_brach(master,wbrach);
                    Water_Task_SQL.replace_water_brach(conn_pool, wbrach);
                    
                    //**************************** ¸üÐÂË®Àäϵͳ״̬ÐÅÏ¢ *****************************//*
                    readWater_state(master,wstate);
                    Water_Task_SQL.replace_water_state(conn_pool, wstate);
                    
                }
                
                if(runCount %4 == 0) {
                    //*************************** ¶ÁȡˮÀäÐÅÏ¢¹ÊÕÏ ******************************//*
                    readWaterAlarmData(master,walarm);
                    Water_Task_SQL.insertOrUpdateWater_alarmTable(conn_pool, listAlarm);
                }
                
                if(runCount%10 == 0) {
                    //¸üе±Ç°É豸ip
                    master.setTarget_ip(winf.water_ip);
                }
                if(runCount > 999900) {
                    runCount = 0;
                }
                runCount ++;                
                Thread.sleep(200);                
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
        }
     }
    /**
     *     ¸üÐÂË®ÀäϵͳʵʱÐÅÏ¢
     * @param master
     * @param load_state
     */
    private void readWater_rt(MyModbusMaster master, Water_rt wrt) {
        wrt.cooling_flow = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Cooling_flow, DataType.TWO_BYTE_INT_SIGNED, master), wrt.cooling_flow);    //'ÀäÈ´Ë®Á÷Á¿',    
        wrt.supply_tmp = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Supply_tmp, DataType.TWO_BYTE_INT_SIGNED, master), wrt.supply_tmp);    //'¹©Ë®Î¶È',        
        wrt.Supply_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Supply_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Supply_pre);        //'¹©Ë®Ñ¹Á¦',
        wrt.back_tem = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.back_tem, DataType.TWO_BYTE_INT_SIGNED,master), wrt.back_tem);        //'»ØË®Î¶È',
        wrt.back_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.back_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.back_pre);                //'»ØË®Ñ¹Á¦',
        wrt.Cooling_ser = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Cooling_ser,DataType.TWO_BYTE_INT_SIGNED,master), wrt.Cooling_ser);        //'ÀäÈ´Ë®µçµ¼ÂÊ',
        wrt.Buffer_tank_level = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Buffer_tank_level,DataType.TWO_BYTE_INT_SIGNED,master), wrt.Buffer_tank_level);//'»º³å¹ÞҺλ'
        wrt.Buffer_tank_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Buffer_tank_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Buffer_tank_pre);    //'»º³å¹ÞѹÁ¦',    
        wrt.Humidity_chamber = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Humidity_chamber, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Humidity_chamber);//'·§Ìüʪ¶È',            
        wrt.Tem_chamber = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Tem_chamber,DataType.TWO_BYTE_INT_SIGNED, master), wrt.Tem_chamber);                //'·§ÌüζÈ',    
        wrt.External_tmp = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_tmp,DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_tmp);                //'ÍâˮζÈ',    
        wrt.External_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_pre, DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_pre);//'ÍâˮѹÁ¦',
    }
     /*     ¸üеçԴʵʱÐÅÏ¢
     * @param master
     * @param load_state
     */
    private void readWater_brach(MyModbusMaster master, Water_brach wbrach) {
        wbrach.Branch_flow_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_1);    //'1#֧·Á÷Á¿',
        wbrach.Branch_flow_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_2);    //'2#֧·Á÷Á¿',
        wbrach.Branch_flow_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_3);    //'3#֧·Á÷Á¿',    
        wbrach.Branch_flow_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_4);    //'4#֧·Á÷Á¿',        
        wbrach.Branch_flow_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_5);        //'5#֧·Á÷Á¿',
        wbrach.Branch_flow_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_6);    //'6#֧·Á÷Á¿',    
        wbrach.Branch_flow_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_7);    //'7#֧·Á÷Á¿',
        wbrach.Branch_flow_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_8);    //'8#֧·Á÷Á¿',
        wbrach.Branch_flow_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_9);    //'9#֧·Á÷Á¿',    
        
        wbrach.Branch_tmp_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_1);    //'1#֧·Î¶È',
        wbrach.Branch_tmp_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_2);    //'2#֧·Î¶È',
        wbrach.Branch_tmp_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_3);    //'3#֧·Î¶È',    
        wbrach.Branch_tmp_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_4);    //'4#֧·Î¶È',        
        wbrach.Branch_tmp_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_5);   //'5#֧·Î¶È',
        wbrach.Branch_tmp_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_6);    //'6#֧·Î¶È',    
        wbrach.Branch_tmp_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_7);    //'7#֧·Î¶È',
        wbrach.Branch_tmp_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_8);    //'8#֧·Î¶È',
        wbrach.Branch_tmp_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_9);    //'9#֧·Î¶È',    
        
        wbrach.Branch_pre_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_1);    //'1#֧·ѹÁ¦',
        wbrach.Branch_pre_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_2);    //'2#֧·ѹÁ¦',
        wbrach.Branch_pre_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_3);    //'3#֧·ѹÁ¦',    
        wbrach.Branch_pre_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_4);    //'4#֧·ѹÁ¦',        
        wbrach.Branch_pre_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_5);//'5#֧·ѹÁ¦',
        wbrach.Branch_pre_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_6);    //'6#֧·ѹÁ¦',    
        wbrach.Branch_pre_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_7);    //'7#֧·ѹÁ¦',
        wbrach.Branch_pre_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_8);    //'8#֧·ѹÁ¦',
        wbrach.Branch_pre_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_9);    //'9#֧·ѹÁ¦',    
        
    }
    /**
     *     ¸üÐÂË®Àäϵͳʵʱ״̬ÐÅÏ¢
     * @param master
     * @param load_state
     */
    private void readWater_state(MyModbusMaster master, Water_state wstate) {
        int Watersystem_All_Operation= (int) master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_All_Operation, master), 0);//Ë®Àäϵͳ¸÷²¿¼þÔËÐÐÇé¿ö
        wstate.P01_main_pump=(Watersystem_All_Operation>>8&1);
        wstate.P11_replenish_pump=(Watersystem_All_Operation>>9&1);
        wstate.P12_pretest_pump=(Watersystem_All_Operation>>10&1);
        wstate.P13_replenish_pump=(Watersystem_All_Operation>>11&1);
        wstate.H01_electric_heater=(Watersystem_All_Operation>>12&1);
        wstate.H02_electric_heater=(Watersystem_All_Operation>>13&1);
        wstate.Solenoid_openflag=(Watersystem_All_Operation>>14&1);
        wstate.Solenoid_shutflag=(Watersystem_All_Operation>>15&1);
        wstate.valve_start=(Watersystem_All_Operation>>0&1);
        wstate.Exhaust_start=(Watersystem_All_Operation>>8&1);
        wstate.remote_start=(Watersystem_All_Operation>>8&5);
        wstate.remote_stop=(Watersystem_All_Operation>>8&6);
        wstate.Operation_ooled_devices=(Watersystem_All_Operation>>8&7);
        
        int Watersystem_All_State= (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_All_State, master), 0);//¹ÊÕϸ´Î»ÐźŠ               
        wstate.Auto_control_state=(Watersystem_All_State>>8&1);
        wstate.Manual_control_state=(Watersystem_All_State>>9&1);
        wstate.remote_control_state=(Watersystem_All_State>>10&1);
        wstate.Water_system_function=(Watersystem_All_State>>11&1);
        
    }
    //¶ÁȡˮÀäÐÅÏ¢¹ÊÕÏ
    private void readWaterAlarmData(MyModbusMaster master,Water_alarm walarm) {
        listAlarm=new ArrayList<Water_alarm>();
        Water_alarm alarm=new Water_alarm(walarm.water_id);
        alarm.setAlarm_starttime(new Date());
        alarm.setAlarm_endtime(new Date());
        alarm.setAlarm_confirm(0);
        walarm.Watersystem_Operation_Fault = (int) master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_Operation_Fault,  master), walarm.Watersystem_Operation_Fault);    //Àäȴϵͳ¸÷²¿¼þ¹ÊÕÏÐÅÏ¢
        if(walarm.Watersystem_Operation_Fault>0) {
            if((walarm.Watersystem_Operation_Fault>>8&1)==1) {
                alarm.setAlarm_id(129300);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>9&1)==1) {
                alarm.setAlarm_id(129301);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>10&1)==1) {
                alarm.setAlarm_id(129302);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>11&1)==1) {
                alarm.setAlarm_id(129303);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>12&1)==1) {
                alarm.setAlarm_id(129304);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>13&1)==1) {
                alarm.setAlarm_id(129305);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>14&1)==1) {
                alarm.setAlarm_id(129306);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>15&1)==1) {
                alarm.setAlarm_id(129307);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>0&1)==1) {
                alarm.setAlarm_id(129308);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>1&1)==1) {
                alarm.setAlarm_id(129309);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>2&1)==1) {
                alarm.setAlarm_id(129310);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>3&1)==1) {
                alarm.setAlarm_id(129311);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>4&1)==1) {
                alarm.setAlarm_id(129312);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>5&1)==1) {
                alarm.setAlarm_id(129313);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>6&1)==1) {
                alarm.setAlarm_id(129314);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_Fault>>7&1)==1) {
                alarm.setAlarm_id(129315);
                listAlarm.add(alarm);
            }
            
        }
        walarm.Watersystem_BranchFlowTmp_Fault = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_BranchFlowTmp_Fault, master), walarm.Watersystem_BranchFlowTmp_Fault);//Àäȴϵͳ֧·Á÷Á¿/ζȹÊÕÏÐÅÏ¢                
        if(walarm.Watersystem_BranchFlowTmp_Fault>0) {
            if((walarm.Watersystem_BranchFlowTmp_Fault>>8&1)==1) {
                alarm.setAlarm_id(129400);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>9&1)==1) {
                alarm.setAlarm_id(129401);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>10&1)==1) {
                alarm.setAlarm_id(129402);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>11&1)==1) {
                alarm.setAlarm_id(129403);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>12&1)==1) {
                alarm.setAlarm_id(129404);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>13&1)==1) {
                alarm.setAlarm_id(129405);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>14&1)==1) {
                alarm.setAlarm_id(129406);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>15&1)==1) {
                alarm.setAlarm_id(129407);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>0&1)==1) {
                alarm.setAlarm_id(129408);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>1&1)==1) {
                alarm.setAlarm_id(129409);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>2&1)==1) {
                alarm.setAlarm_id(129410);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>3&1)==1) {
                alarm.setAlarm_id(129411);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>4&1)==1) {
                alarm.setAlarm_id(129412);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>5&1)==1) {
                alarm.setAlarm_id(129413);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>6&1)==1) {
                alarm.setAlarm_id(129414);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_BranchFlowTmp_Fault>>7&1)==1) {
                alarm.setAlarm_id(129415);
                listAlarm.add(alarm);
            }
        }
        walarm.Watersystem_Pre_Fault = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_Pre_Fault, master), walarm.Watersystem_Pre_Fault);//ÀäȴˮѹÁ¦¹ÊÕÏ
        if(walarm.Watersystem_Pre_Fault>0) {
            if((walarm.Watersystem_Pre_Fault>>8&1)==1) {
                alarm.setAlarm_id(129500);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>9&1)==1) {
                alarm.setAlarm_id(129501);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>10&1)==1) {
                alarm.setAlarm_id(129502);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>11&1)==1) {
                alarm.setAlarm_id(129503);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>12&1)==1) {
                alarm.setAlarm_id(129504);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>13&1)==1) {
                alarm.setAlarm_id(129505);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>14&1)==1) {
                alarm.setAlarm_id(129506);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>15&1)==1) {
                alarm.setAlarm_id(129507);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>0&1)==1) {
                alarm.setAlarm_id(129508);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>1&1)==1) {
                alarm.setAlarm_id(129509);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>2&1)==1) {
                alarm.setAlarm_id(129510);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>3&1)==1) {
                alarm.setAlarm_id(129511);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>4&1)==1) {
                alarm.setAlarm_id(129512);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>5&1)==1) {
                alarm.setAlarm_id(129513);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>6&1)==1) {
                alarm.setAlarm_id(129514);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Pre_Fault>>7&1)==1) {
                alarm.setAlarm_id(129515);
                listAlarm.add(alarm);
            }
        }
        walarm.Watersystem_Operation_highorlow = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_Operation_highorlow, master), walarm.Watersystem_Operation_highorlow);//Àäȴϵͳ¸÷²¿¼þµÍ/¸ß
        if(walarm.Watersystem_Operation_highorlow>0) {
            if((walarm.Watersystem_Operation_highorlow>>8&1)==1) {
                alarm.setAlarm_id(129600);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>9&1)==1) {
                alarm.setAlarm_id(129601);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>10&1)==1) {
                alarm.setAlarm_id(129602);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>11&1)==1) {
                alarm.setAlarm_id(129603);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>12&1)==1) {
                alarm.setAlarm_id(129604);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>13&1)==1) {
                alarm.setAlarm_id(129605);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>14&1)==1) {
                alarm.setAlarm_id(129606);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>15&1)==1) {
                alarm.setAlarm_id(129607);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>0&1)==1) {
                alarm.setAlarm_id(129608);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>1&1)==1) {
                alarm.setAlarm_id(129609);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>2&1)==1) {
                alarm.setAlarm_id(129610);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>3&1)==1) {
                alarm.setAlarm_id(129611);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>4&1)==1) {
                alarm.setAlarm_id(129612);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>5&1)==1) {
                alarm.setAlarm_id(129613);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>6&1)==1) {
                alarm.setAlarm_id(129614);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Operation_highorlow>>7&1)==1) {
                alarm.setAlarm_id(129615);
                listAlarm.add(alarm);
            }
        }
        walarm.Watersystem_Tmp_highorlow = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_Tmp_highorlow, master), walarm.Watersystem_Tmp_highorlow);//Àäȴϵͳζȸß/³¬¸ß
        if(walarm.Watersystem_Tmp_highorlow>0) {
            if((walarm.Watersystem_Tmp_highorlow>>8&1)==1) {
                alarm.setAlarm_id(129700);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>9&1)==1) {
                alarm.setAlarm_id(129701);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>10&1)==1) {
                alarm.setAlarm_id(129702);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>11&1)==1) {
                alarm.setAlarm_id(129703);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>12&1)==1) {
                alarm.setAlarm_id(129704);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>13&1)==1) {
                alarm.setAlarm_id(129705);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>14&1)==1) {
                alarm.setAlarm_id(129706);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>15&1)==1) {
                alarm.setAlarm_id(129707);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>0&1)==1) {
                alarm.setAlarm_id(129708);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>1&1)==1) {
                alarm.setAlarm_id(129709);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>2&1)==1) {
                alarm.setAlarm_id(129710);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>3&1)==1) {
                alarm.setAlarm_id(129711);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>4&1)==1) {
                alarm.setAlarm_id(129712);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>5&1)==1) {
                alarm.setAlarm_id(129713);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>6&1)==1) {
                alarm.setAlarm_id(129714);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Tmp_highorlow>>7&1)==1) {
                alarm.setAlarm_id(129715);
                listAlarm.add(alarm);
            }
        }
        walarm.Watersystem_TmpFlow_highorlow = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_TmpFlow_highorlow,master), walarm.Watersystem_TmpFlow_highorlow);//Àäȴϵͳ֧·Î¶È/Á÷Á¿µÍ/³¬µÍ
        if(walarm.Watersystem_TmpFlow_highorlow>0) {
            if((walarm.Watersystem_TmpFlow_highorlow>>8&1)==1) {
                alarm.setAlarm_id(129800);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>9&1)==1) {
                alarm.setAlarm_id(129801);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>10&1)==1) {
                alarm.setAlarm_id(129802);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>11&1)==1) {
                alarm.setAlarm_id(129803);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>12&1)==1) {
                alarm.setAlarm_id(129804);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>13&1)==1) {
                alarm.setAlarm_id(129805);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>14&1)==1) {
                alarm.setAlarm_id(129806);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>15&1)==1) {
                alarm.setAlarm_id(129807);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>0&1)==1) {
                alarm.setAlarm_id(129808);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>1&1)==1) {
                alarm.setAlarm_id(129809);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>2&1)==1) {
                alarm.setAlarm_id(129810);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>3&1)==1) {
                alarm.setAlarm_id(129811);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>4&1)==1) {
                alarm.setAlarm_id(129812);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>5&1)==1) {
                alarm.setAlarm_id(129813);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>6&1)==1) {
                alarm.setAlarm_id(129814);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_TmpFlow_highorlow>>7&1)==1) {
                alarm.setAlarm_id(129815);
                listAlarm.add(alarm);
            }
        }
        walarm.Watersystem_Flow_ighorlow = (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_Flow_ighorlow,master), walarm.Watersystem_TmpFlow_highorlow);//ÀäÈ´Ë®²¿·Ö֧·Á÷Á¿µÍ/³¬µÍ
        if(walarm.Watersystem_Flow_ighorlow>0) {
            if((walarm.Watersystem_Flow_ighorlow>>8&1)==1) {
                alarm.setAlarm_id(129900);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>9&1)==1) {
                alarm.setAlarm_id(129901);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>10&1)==1) {
                alarm.setAlarm_id(129902);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>11&1)==1) {
                alarm.setAlarm_id(129903);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>12&1)==1) {
                alarm.setAlarm_id(129904);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>13&1)==1) {
                alarm.setAlarm_id(129905);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>14&1)==1) {
                alarm.setAlarm_id(129906);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>15&1)==1) {
                alarm.setAlarm_id(129907);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>0&1)==1) {
                alarm.setAlarm_id(129908);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>1&1)==1) {
                alarm.setAlarm_id(129909);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>2&1)==1) {
                alarm.setAlarm_id(129910);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>3&1)==1) {
                alarm.setAlarm_id(129911);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>4&1)==1) {
                alarm.setAlarm_id(129912);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>5&1)==1) {
                alarm.setAlarm_id(129913);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>6&1)==1) {
                alarm.setAlarm_id(129914);
                listAlarm.add(alarm);
            }
            if((walarm.Watersystem_Flow_ighorlow>>7&1)==1) {
                alarm.setAlarm_id(129915);
                listAlarm.add(alarm);
            }
        }
        
    }
 
    
    public static void main(String[] args) {
        int b=13;
        String a=Integer.toBinaryString(b>>0&1);
        System.out.println(a);
    }
}