package com.electrical.TwoKW;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import com.base.Com;
|
import com.sql.MysqlConnPool;
|
|
public class DeviceAlarm_Thread implements Runnable{
|
public MysqlConnPool pool;
|
public List<Electric_inf_2kw> einfs;
|
public List<Electric_2MW_alarm> last_alarms; //ÉÏÒ»´ÎµÄ¸æ¾¯¶ÔÏó
|
|
public DeviceAlarm_Thread(MysqlConnPool pool,List<Electric_inf_2kw> einfs) {
|
this.pool = pool;
|
this.einfs = einfs;
|
last_alarms = new ArrayList<>();
|
init();
|
}
|
|
public void init() {
|
for(int i = 0;i<einfs.size();i++) {
|
Electric_2MW_alarm alarm = new Electric_2MW_alarm(einfs.get(i).electric2KW_id);
|
//¼ÓÔØÖ®Ç°µÄ¸æ¾¯¼Ç¼
|
Electrical_2KWTask_SQL.searchLastDeviceAlarm(pool, alarm);
|
last_alarms.add(alarm);
|
}
|
}
|
|
@Override
|
public void run() {
|
System.out.println("DeviceAlarm_Thread Start at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
|
List<DeviceAlarm> addalarm = new ArrayList<DeviceAlarm>(); //гöÏֵĸ澯
|
List<DeviceAlarm> delalarm = new ArrayList<DeviceAlarm>(); //ÏûʧµÄ¸æ¾¯
|
|
while(true) {
|
try {
|
for(int i = 0;i < einfs.size();i ++) {
|
//¶ÁÈ¡¹ýµ±Ç°É豸µÄ¸æ¾¯²Å¼ì²â¸æ¾¯
|
if(einfs.get(i).alarm.isReadOk) {
|
einfs.get(i).alarm.checkAlarm(last_alarms.get(i),addalarm,delalarm);
|
last_alarms.set(i, einfs.get(i).alarm.clone());
|
}
|
}
|
|
if(addalarm.size() > 0) {
|
//гöÏֵĸ澯¼Ç¼
|
DeviceAlarm_Thread_SQL.insertNewAlarm(pool,addalarm);
|
addalarm.clear();
|
}
|
|
if(delalarm.size() > 0) {
|
//È¡ÏûµÄ¸æ¾¯¼Ç¼
|
for(int k = 0;k<delalarm.size();k++) {
|
DeviceAlarm_Thread_SQL.makeRealToHistory(pool,delalarm.get(k));
|
}
|
delalarm.clear();
|
}
|
Thread.sleep(1000);
|
} catch (Exception e) {
|
try {
|
Thread.sleep(5000);
|
} catch (InterruptedException e1) {
|
e1.printStackTrace();
|
}
|
e.printStackTrace();
|
}
|
}
|
|
}
|
}
|