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();
|
}
|
}
|
}
|
}
|