whyclxw
2020-12-30 f4cf0aef1f92c19ad6c8029917e7d48dec6fdfc3
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
package com.data.comm;
 
import com.data.Motor_inf;
import com.data.Oil_comm;
import com.data.Ups_comm;
import com.data.Water_comm;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.BatchRead;
import com.serotonin.modbus4j.BatchResults;
import com.sql.MysqlConnPool;
 
public class Lubrication_cooling_SocketClient_Thread extends Thread{
   // public static int Dev_Type_Rectifier_power = 40001;            //ÓÍÕ¾
    
    private MysqlConnPool pool;
    private Motor_inf motor;
    private MyModbusMaster master;
 
    public Lubrication_cooling_SocketClient_Thread(MysqlConnPool pool, Motor_inf motor) {
        this.motor = motor;
        this.pool = pool;
        
        master = new MyModbusMaster(motor.getDev_ip(), MyModbusMaster.SLAVEID_DEFAULT);
    }
    @Override
    public void run() {
        int run_count = 0;
        while(true) {
            try { 
                if(run_count % 2 == 0) {
                        //¶ÁÈ¡ÓÍÕ¾/ˮվ/ups
                        if(motor.oil_comm.getDev_id()==40001) {
                            readOil_comm(motor.oil_comm);
                            Lubrication_cooling_SQL.insertOrUpdateTb_oil_comm(pool, motor.oil_comm);
                        }
                        if(motor.water_comm.getDev_id()==40002) {
                            readWater_comm(motor.water_comm);
                            Lubrication_cooling_SQL.insertOrUpdateTb_water_comm(pool, motor.water_comm);
                            
                        }
                        if(motor.ups_comm.getDev_id()==40003) {
                            readUps_comm(motor.ups_comm);
                            Lubrication_cooling_SQL.insertOrUpdateTb_ups_comm(pool, motor.ups_comm);
                        }
                        
                        
                }    
                
                motor.conn_state = master.getConnectState();
                if(run_count > 999909) {
                    run_count = 0;
                }
                run_count ++;                
                Thread.sleep(200);
            } catch (Exception e) {
                e.printStackTrace();
            }
       }
    }
    //¶ÁÈ¡ups
    private void readUps_comm(Ups_comm ups_comm) {
        BatchRead<Integer> batch = ups_comm.createBatchRead(master);    
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        ups_comm.putBatchResult(res);
    }
    //¶Áȡˮվ
    private void readWater_comm(Water_comm water_comm) {
        BatchRead<Integer> batch = water_comm.createBatchRead(master);    
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        water_comm.putBatchResult(res);
    }
    //¶ÁÈ¡ÓÍÕ¾ÐÅÏ¢
    private void readOil_comm(Oil_comm oil_comm) {
        BatchRead<Integer> batch = oil_comm.createBatchRead(master);    
        BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master);
        oil_comm.putBatchResult(res);
    }
}