package com.dec.fbs9100; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.openmuc.openiec61850.ServerModel; import org.openmuc.openiec61850.ServerSap; import com.base.AppConfig; import com.battdata_rt.BattData_RT_Array; public class BTS61850_Task_Thread extends Thread{ private MysqlConnPool m_ConnPool = null; private BattData_RT_Array m_Al_Data; /** * 预加载的公共模型文件 */ private static Map al_ServerModel = new HashMap<>(); private ArrayList AL_BTS_IEC61850_DeviceIp = new ArrayList(); private ArrayList AL_BTS_IEC61850_DeviceId = new ArrayList(); private ArrayList AL_BTS_IEC61850_Client = new ArrayList(); private ArrayList AL_StatAndParam = new ArrayList(); private Logger logger = null; private ServerModel m_ServerModel = null; public BTS61850_Task_Thread(MysqlConnPool pool, BattData_RT_Array data, AppConfig cfg) { logger = LogManager.getLogger(this.getClass()); m_ConnPool = pool; m_Al_Data = data; // logger.info("reading model from file..."); // try { // //加载模型文件 // List serverSaps = ServerSap.getSapsFromSclFile("TEMPLATE.iid"); // m_ServerModel = serverSaps.get(0).serverModel; // System.out.println("SSSS"+m_ServerModel.getBaseDevName()); // } catch (Exception e1) { // logger.error("Error parsing SCL file:TEMPLATE.iid " + e1.getMessage()); // return; // } // // logger.info("successfully read model"); } public void reInitClient() { for(int n=0; n serverSaps = ServerSap.getSapsFromSclFile(file.getAbsolutePath()); ServerModel tmp_Model = serverSaps.get(0).serverModel; if(null != tmp_Model) { logger.info("预加载'" + file.getName() + "'协议文件成功"); al_ServerModel.put(file.getName(), tmp_Model); } } catch (Exception e1) { logger.error("Error parsing SCL file:" + file.getName() + e1.getMessage()); } } } catch (Exception e) { logger.error(e.toString(), e); } AL_BTS_IEC61850_DeviceIp.clear(); AL_BTS_IEC61850_DeviceId.clear(); AL_BTS_IEC61850_Client.clear(); AL_StatAndParam.clear(); for(int n=0; n