Administrator
2021-08-09 92aad2bdb3fc2552dfc199801c32b8bd9bb61472
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
package com.dev_fbs9600.data;
 
import java.util.ArrayList;
 
import com.battmonitor.data.BattData_RT_Array;
import com.battmonitor.sql.MysqlConnPool;
 
public class FBS9600_Task_Thread extends Thread{
    
    private MysqlConnPool mConnPool = null;
    private BattData_RT_Array m_Data;
    private ArrayList<FBS9600_State> AL_State = new ArrayList<FBS9600_State>();
    private ArrayList<String> AL_FBSDeviceIp = new ArrayList<String>();
    //private ArrayList<FBS9600_SocketClient> AL_FBSSocketClient = new ArrayList<FBS9600_SocketClient>();
    
    /**
     * ¸ù¾ÝdataÊý×é»ñÈ¡É豸µÄidºÍip
     * @param pool
     * @param data
     * @param cfg
     */
    
    public FBS9600_Task_Thread(MysqlConnPool pool, BattData_RT_Array data)
    {
        mConnPool = pool;
        m_Data = data;
        for(int n=0; n<m_Data.getItemCount(); n++)
        {
            if((9600 != (m_Data.getItem(n).FBSDeviceId/10000)) && (9610 != (m_Data.getItem(n).FBSDeviceId/10000)))
            {
                continue;
            }
            
            if(false == AL_FBSDeviceIp.contains(m_Data.getItem(n).FBSDeviceIp))
            {
                AL_FBSDeviceIp.add(m_Data.getItem(n).FBSDeviceIp);
                AL_State.add(new FBS9600_State(m_Data.getItem(n).FBSDeviceIp, m_Data.getItem(n).FBSDeviceId));
            }
        }
    }
    
    @Override
    public void run() {
        System.out.println(this.getName() + " - FBS9600_Thread Started: FBS_DEV_Count = " + AL_State.size());
        
        //FBS9600_State_SQL.createFBS9600StateTableOnRam(mConnPool, AL_State);
        
        for(int n=0; n<AL_FBSDeviceIp.size(); n++ )
        {
            FBS9600_SocketClient client = new FBS9600_SocketClient(mConnPool, AL_State.get(n), m_Data);
            //AL_FBSSocketClient.add(client);
            
            client.start();
            /*
            System.out.println("FBS9600_DEV" + (n+1) 
                                + " Id: " + AL_State.get(n).dev_id 
                                + ", Ip: " + AL_State.get(n).ip_addr);
            */
        }
        while(true)
        {
            try 
            {
                try {
                    Thread.sleep(500);
                    /*
                    Thread.sleep(500);
                    FBS9600_State_SQL.queryFbs9600UsrCmd(mConnPool, AL_State);        //²éѯtb_fbs9600_state±íÖеÄdev_id,op_cmdÁÐ
                    Thread.sleep(500);
                    FBS9600_State_SQL.updateFbs9600State(mConnPool, AL_State);        //¸üÐÂtb_fbs9600_state±íÖеÄdev_workstate£¬dev_commcount£¬dev_errcommcount
                    Thread.sleep(500);
                    FBS9600_State_SQL.updateFbs9600UsrCmdAck(mConnPool, AL_State);    //¸üÐÂtb_fbs9600_state±íÖеÄop_cmd
                    */
                    /*
                    for(int n=0; n<AL_State.size(); n++) 
                    {
                        FBS9600_State st = AL_State.get(n);
                        if((0==st.alm_rec_id) && (st.com_err_count>0)) {
                            st.alm_rec_id = UUID.randomUUID().getLeastSignificantBits();
                            if(0 == st.alm_rec_id) {
                                st.alm_rec_id = UUID.randomUUID().getLeastSignificantBits();
                            }
                            //µ±err´ÎÊý´óÓÚ0¸æ¾¯¼Ç¼Ìí¼Óµ½tb_devalarm_data¸æ¾¯ÖÐ
                            DeviceAlarm_Thread.insertOrUpdateDevAlarmToTable(mConnPool, st.alm_rec_id, st.dev_id, st.ip_addr,
                                                                                DeviceAlarm_Thread.ALM_TYPE_FBS9600_CommError_ID, true);
                        } else {
                            //¸ù¾Ýalm_rec_id¸üРcleartype ºÍ alm_end_time
                            if((0!=st.alm_rec_id) && (0==st.com_err_count)) {
                                DeviceAlarm_Thread.insertOrUpdateDevAlarmToTable(mConnPool, st.alm_rec_id, st.dev_id, st.ip_addr,
                                                                                DeviceAlarm_Thread.ALM_TYPE_FBS9600_CommError_ID, false);
                                st.alm_rec_id = 0;
                            }
                        }
                    }*/
                } catch (InterruptedException e) {
                    //e.printStackTrace();
                }
            } catch (Exception e1) {
                //e1.printStackTrace();
            }    
        }
    }
}