whyclj
2020-07-21 e7c7db6083f53c4fe8c45da16310d6568dd753f4
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
package com.data;
 
import java.rmi.server.SocketSecurityException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import com.base.Com;
import com.dev.base.data.Dynamicload_inf;
import com.sql.MysqlConnPool;
 
public class PowerArk_ServerSocket_Thread extends Thread{
    public MysqlConnPool conn_pool;
    public Map<Integer, PowerArk_SocketCliet_Thread> allpower;
    public List<Dynamicload_inf> DevData;
    public static boolean reinitclient = true;
    
    public PowerArk_ServerSocket_Thread(MysqlConnPool conn_pool,List<Dynamicload_inf> DevData) {
        this.conn_pool = conn_pool;
        this.allpower = new HashMap<Integer, PowerArk_SocketCliet_Thread>();
        this.DevData = DevData;
    }
    
    
    
    @Override
    public void run() {
        System.out.println("PowerArk_ServerSocket_Thread Start at " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        for(int i =0 ; i < DevData.size() ; i++) {
            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_ButtonTable(conn_pool, DevData.get(i).dev_id);
            
            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_ControlTable(conn_pool, DevData.get(i).dev_id);
            
            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_StateTable(conn_pool, DevData.get(i).dev_id);
                        
            PowerArk_SocketCliet_Thread thread = new PowerArk_SocketCliet_Thread(conn_pool, DevData.get(i));
            new Thread(thread).start();
            allpower.put(DevData.get(i).dev_id, thread);
        }
        
        while(true) {
            try {
                
                if(reinitclient) {
                    for(int i =0;i<DevData.size();i++) {
                        PowerArk_SocketCliet_Thread client = allpower.get(DevData.get(i).dev_id);
                        if(client == null) {
                            //ÐÂÌí¼ÓµÄÉ豸
                            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_ButtonTable(conn_pool, DevData.get(i).dev_id);
                            
                            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_ControlTable(conn_pool, DevData.get(i).dev_id);
                            
                            PowerArk_ServerSocket_Thread_SQL.insertOrUpdateDynamicload_StateTable(conn_pool, DevData.get(i).dev_id);
                                        
                            PowerArk_SocketCliet_Thread thread = new PowerArk_SocketCliet_Thread(conn_pool, DevData.get(i));
                            new Thread(thread).start();
                            allpower.put(DevData.get(i).dev_id, thread);
                            
                        }else {
                            //Ð޸ĹýÉ豸ipµÄ´¦Àí°ì·¨
                            if(!client.dev_ip.equals(DevData.get(i).dev_ip)) {
                                client.dev_ip = DevData.get(i).dev_ip;
                            }
                        } 
                    }
                }
                sleep(2000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}