From 8295ec1295eb6b0db77d5079ab6f324513ade80d Mon Sep 17 00:00:00 2001
From: DELL <DELL@WIN-3EOIPEE9ML1>
Date: 星期四, 07 三月 2024 13:10:21 +0800
Subject: [PATCH] 南瑞版本新增iedscout调试工具功能

---
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/Sql_Mysql.java                      |    6 
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java          |    8 
 iec61850_forFoShanAES_Model/src/com/iedscout/ScoutData.java                         |   46 ++
 iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/Sql_Mysql.class                     |    0 
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java         |   14 
 iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread.java     |  170 ++++++++++
 iec61850_forFoShanAES_Model/src/com/iedscout/UpdateDataToMySQL_Task.java            |   78 ++++
 iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task.java            |  298 ++++++++++++++++++
 iec61850_forFoShanAES_Model/bin/log4j2_batt_61850_dev_x64.xml                       |    2 
 iec61850_forFoShanAES_Model/log4j2_batt_61850_dev_x64.xml                           |    2 
 iec61850_forFoShanAES_Model/src/com/iedscout/BTS_ScoutData_Array.java               |   47 ++
 iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class        |    0 
 iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread_SQL.java |  250 +++++++++++++++
 iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class         |    0 
 14 files changed, 915 insertions(+), 6 deletions(-)

diff --git a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class
index 66f451b..fe37df1 100644
--- a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class
+++ b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class
Binary files differ
diff --git a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/Sql_Mysql.class b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/Sql_Mysql.class
index ac4ebba..e163d47 100644
--- a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/Sql_Mysql.class
+++ b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/Sql_Mysql.class
Binary files differ
diff --git a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class
index fe8b206..62544c4 100644
--- a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class
+++ b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class
Binary files differ
diff --git a/iec61850_forFoShanAES_Model/bin/log4j2_batt_61850_dev_x64.xml b/iec61850_forFoShanAES_Model/bin/log4j2_batt_61850_dev_x64.xml
index 8aabf0e..358800b 100644
--- a/iec61850_forFoShanAES_Model/bin/log4j2_batt_61850_dev_x64.xml
+++ b/iec61850_forFoShanAES_Model/bin/log4j2_batt_61850_dev_x64.xml
@@ -63,7 +63,7 @@
     </Appenders>
 
     <Loggers>
-        <Root level="trace">
+        <Root level="info">
             <AppenderRef ref="Console" />
             <appenderRef ref="INFO" />
             <appenderRef ref="ERROR" />
diff --git a/iec61850_forFoShanAES_Model/log4j2_batt_61850_dev_x64.xml b/iec61850_forFoShanAES_Model/log4j2_batt_61850_dev_x64.xml
index 8aabf0e..358800b 100644
--- a/iec61850_forFoShanAES_Model/log4j2_batt_61850_dev_x64.xml
+++ b/iec61850_forFoShanAES_Model/log4j2_batt_61850_dev_x64.xml
@@ -63,7 +63,7 @@
     </Appenders>
 
     <Loggers>
-        <Root level="trace">
+        <Root level="info">
             <AppenderRef ref="Console" />
             <appenderRef ref="INFO" />
             <appenderRef ref="ERROR" />
diff --git a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java
index df4e5aa..cca511b 100644
--- a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java
+++ b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java
@@ -161,7 +161,7 @@
 //				if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
 //					System.err.println("SSSSSSSSSSS");
 //					//涓庨鍔犺浇鐨勬ā鍨嬫枃浠朵笉涓�鑷存椂
-//					m_ServerModel = m_Association.retrieveModel();
+					m_ServerModel = m_Association.retrieveModel();
 //				}
 				System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
 				
@@ -811,7 +811,6 @@
 				events.clear();
 				
 				if(0 == (numberDevState%3)) {
-					System.out.println();
 					//---------------------------------Log Level.TRACE-------------------------------------//
 					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYc)", FBSDeviceName);
 					//-------------------------------------------------------------------------------------//
@@ -1078,6 +1077,13 @@
 					//-------------------------------------------------------------------------------------//
 					comm_res = true;
 					DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
+					if(null == ds) {
+						//鍏煎鑰佺増鏈崗杞暟鎹�
+						ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc");						
+					}
+					if(null == ds) {
+						return false;
+					}
 					int size_cnt = ds.getMembers().size();
 					//System.out.println(FBSDeviceName + "/LLN0.dsDevState 鑺傜偣鏁�:"+size_cnt);
 					m_Association.getDataSetValues(ds);
@@ -1090,7 +1096,7 @@
 						FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("mag").getChild("f");
 						BasicDataBind<?> data = new Float32DataBind((BdaFloat32) fc_mode);
 						//JTextField tf_t = (JTextField) data.getValueField();
-						//System.out.println("n:"+n+" "+fc_mode.toString1());
+						//System.out.println("n:"+n+" "+fc_mode.toString1()+"==="+((BdaFloat32) fc_mode).getFloat().intValue());
 						String fc_mode_str = fc_mode.toString1();
 						if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.StaNum.mag.f")){
 							int st = ((BdaFloat32) fc_mode).getFloat().intValue();
@@ -1256,7 +1262,7 @@
 							m_FBS_DiscParamFromDev.ChargeCurrSet = Float.parseFloat(tf_t.getText());
 							//m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
 						}else {
-							System.out.println(fc_model_str);
+							//System.out.println(fc_model_str);
 						}
 					}
 					//娴嬭瘯鏃堕暱
diff --git a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/Sql_Mysql.java b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/Sql_Mysql.java
index db7a558..462b859 100644
--- a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/Sql_Mysql.java
+++ b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/Sql_Mysql.java
@@ -23,6 +23,8 @@
 	final public static String DB_BATT_HISTORY = "`db_batt_history`";
 	
 	final public static String DB_DEV_TESTPARAM = "`db_dev_testparam`";
+	final public static String DB_IED_SCOUT = "`db_ied_scout`";
+
 	//--------------------------------------------------------------------------------------------//
 	public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state";
 	//--------------------------------------------------------------------------------------------//
@@ -135,6 +137,10 @@
 	/***************************** db_dev_testparam 鏁版嵁搴�  **********************************/
 	public final static String Batt_TestParam_Table = DB_DEV_TESTPARAM + ".tb_batt_testparam_";
 	
+	/***************************** DB_IED_SCOUT 鏁版嵁搴�  **********************************/
+	public final static String Connect_Inf_Table = DB_IED_SCOUT + ".tb_connect_inf";						//IED杩炴帴淇℃伅琛�
+	public final static String Ied_NodeState_Table = DB_IED_SCOUT + ".tb_ied_nodestate";					//璁惧淇℃伅琛�
+
 	public Connection mysql_con;
 	public Logger logger = null;
 	
diff --git a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java
index c8181d3..2a50833 100644
--- a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java
+++ b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java
@@ -8,6 +8,7 @@
 import com.base.AppConfig;
 import com.battdata_rt.BattData_RT_Array;
 import com.dec.fbs9100.AppParam;
+import com.iedscout.BTS61850_IEDScout_Task_Thread;
 
 /**
  * 	佛山版本61850
@@ -146,6 +147,13 @@
 			batt_realdata.start();
 		}
 		/*********************************************************************************/
+		/************************************ iedScout 调试工具 *********************************************/
+		{
+			BTS61850_IEDScout_Task_Thread ied_thread = new BTS61850_IEDScout_Task_Thread(GB_MysqlConnPool);
+			ied_thread.start();
+		}
+		
+		/*********************************************************************************/
 		while(true)
 		{
 			try {
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task.java b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task.java
new file mode 100644
index 0000000..37d82fc
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task.java
@@ -0,0 +1,298 @@
+package com.iedscout;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.InetAddress;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.openmuc.openiec61850.BasicDataAttribute;
+import org.openmuc.openiec61850.BdaBoolean;
+import org.openmuc.openiec61850.BdaFloat32;
+import org.openmuc.openiec61850.BdaFloat64;
+import org.openmuc.openiec61850.BdaInt128;
+import org.openmuc.openiec61850.BdaInt16;
+import org.openmuc.openiec61850.BdaInt16U;
+import org.openmuc.openiec61850.BdaInt32;
+import org.openmuc.openiec61850.BdaInt32U;
+import org.openmuc.openiec61850.BdaInt64;
+import org.openmuc.openiec61850.BdaInt8;
+import org.openmuc.openiec61850.BdaInt8U;
+import org.openmuc.openiec61850.BdaType;
+import org.openmuc.openiec61850.BdaUnicodeString;
+import org.openmuc.openiec61850.ClientAssociation;
+import org.openmuc.openiec61850.ClientSap;
+import org.openmuc.openiec61850.DataSet;
+import org.openmuc.openiec61850.Fc;
+import org.openmuc.openiec61850.FcModelNode;
+import org.openmuc.openiec61850.ModelNode;
+import org.openmuc.openiec61850.ServerModel;
+import org.openmuc.openiec61850.ServerSap;
+import org.openmuc.openiec61850.ServiceError;
+
+import com.dec.fbs9100.MysqlConnPool;
+import com.iedscout.BTS61850_IEDScout_Task_Thread.IEDScout_Param;
+
+public class BTS61850_IEDScout_Task {
+	private MysqlConnPool pool;
+	private IEDScout_Param param;
+	private Logger logger = null;
+	
+	private ServerModel m_ServerModel = null;
+	private ClientSap m_ClientSap;
+	private ClientAssociation m_Association;
+	
+	private boolean m_App_IsConnect = true;
+	
+	private BTS_ScoutData_Array m_ScoutData;	
+	private boolean is_clear_data = false;
+	
+	private UpdateDataToMySQL_Task mySQL_Task;		//鏁版嵁鏇存柊绾跨▼
+	
+	public BTS61850_IEDScout_Task(MysqlConnPool pool,IEDScout_Param param) {
+		this.param = param;
+		this.pool = pool;
+		this.logger = LogManager.getFormatterLogger();
+		this.m_ScoutData = new BTS_ScoutData_Array();
+		this.mySQL_Task = new UpdateDataToMySQL_Task(m_ScoutData, pool);
+		
+	}
+	
+	public void connectIEDDevice() throws FileNotFoundException {		
+        try {
+	        while(m_App_IsConnect) {	        	
+	        	try {
+	        		logger.info("BTS_IEC61850_Client Start to connect to device IP:" + param.target_ip + " Port:" + param.target_port);
+	        		m_App_IsConnect = true;
+	        		
+	        		m_ClientSap = new ClientSap();
+//	        		m_ClientSap.setMaxMmsPduSize(65000);
+//	        		m_ClientSap.setResponseTimeout(50000);
+//	        		m_ClientSap.setMessageFragmentTimeout(50000);
+	        		m_Association = m_ClientSap.associate(InetAddress.getByName(param.target_ip), param.target_port, null, null);
+	        		
+	        	} catch (Exception e) {
+	        		logger.error(e.toString(), e);
+	        		m_App_IsConnect = false;
+	        		param.setFail_reasion(IEDScout_Param.FAILREASION_PARAMERROR);
+	            	param.setConn_st(IEDScout_Param.CONN_STATE_FAIL);
+	            	logger.info("BTS_IEC61850_Client Unable to connect to device IP:" + param.target_ip);
+	        		break;
+	        	}        	
+	        	logger.info("Start Load ICD File '" + param.target_icd + "'");
+	        	File file = new  File(param.target_icd);
+	        	if(!file.exists()) {
+	        		param.setFail_reasion(IEDScout_Param.FAILREASION_FILENOTFOUND);
+	            	param.setConn_st(IEDScout_Param.CONN_STATE_FAIL);
+	            	logger.info("ICD File '" + param.target_icd + "' Not EXISTS ");
+	        		break;
+	        	}
+	        	
+	            try {            	
+	            	//鍔犺浇妯″瀷鏂囦欢
+	            	List<ServerSap> serverSaps = ServerSap.getSapsFromSclFile(param.target_icd);
+	            	m_ServerModel = serverSaps.get(0).serverModel;
+	            }catch (Exception e1) {
+	            	
+	            	param.setFail_reasion(IEDScout_Param.FAILREASION_FILEERROR);
+	            	param.setConn_st(IEDScout_Param.CONN_STATE_FAIL);
+	            	
+	            	logger.info("Error Parsing ICD File: " + e1.getMessage());
+	            	break;
+	            }
+	            logger.info("Successfully Read Model ");
+	            List<BasicDataAttribute> ms = m_ServerModel.getBasicDataAttributes();
+	            
+	            m_ScoutData.clear();
+	            for (BasicDataAttribute basicData : ms) {
+	            	//ModelNode mode = basicDataAttribute.getParent();
+	            	if(null == basicData) {
+	            		continue;
+	            	}
+	            	ScoutData data = new ScoutData();
+	            	data.setNode_path(basicData.toString1());
+	            	//System.out.println(basicData.toString1() + "==" + basicData.getBasicType());
+	            	m_ScoutData.addScoutData(data);
+					//System.out.println(basicDataAttribute.toString1()+"=="+basicDataAttribute.getParent().toString1());
+//					System.out.println(basicDataAttribute.toString1()+"=="+basicDataAttribute.getParent());
+				}	            
+	            //System.out.println("鐐逛綅鏁伴噺锛�"+m_ScoutData.getDataCount());
+	            
+	            Collection<DataSet> m_DataSets = m_ServerModel.getDataSets();
+//	            System.err.println("m_DataSets.size:"+m_DataSets.size());
+//	        	System.out.println("#######################"+m_App_IsConnect);
+	            if(m_App_IsConnect) {
+	            	new Thread(mySQL_Task).start();
+	            	is_clear_data = true;
+	            }
+	            BTS61850_IEDScout_Task_Thread_SQL.updateConnect_Inf_Table(pool, param);	            	
+	        	while(m_App_IsConnect) {
+	        		//璇诲彇鏁版嵁闆嗗悎	        		
+        			Iterator<DataSet> DataSetIt = m_DataSets.iterator();
+        			while(null != DataSetIt  && DataSetIt.hasNext()) {
+        				//System.out.println((null != DataSetIt)+"%%%%%%%%%%%%%%%%%%%%%%%"+DataSetIt.hasNext());
+        				DataSet m_DataSet = DataSetIt.next();
+        				//璇诲彇鐐逛綅涓殑鏁版嵁
+        				//-------------------------------------------------------------------------------------//
+        				//logger.printf(Level.ERROR,m_DataSet.getReferenceStr(), m_DataSet.getReferenceStr());
+        				//-------------------------------------------------------------------------------------//
+        				DataSet tmp_ds = m_ServerModel.getDataSet(m_DataSet.getReferenceStr());
+        				if(null == tmp_ds) {
+        					continue;
+        				}
+        				DataSet ds = tmp_ds.copy();
+        				m_Association.getDataSetValues(ds);
+        				List<FcModelNode> fcMode = ds.getMembers();
+        				//System.err.println(fcMode.size());
+        				if(null != fcMode && fcMode.size() >0) {        					
+        					for (int n = 0; n<fcMode.size(); n++) {
+        						FcModelNode fcData = fcMode.get(n);        					
+        						Collection<BasicDataAttribute> child = fcData.getBasicDataAttributes();
+        						for (BasicDataAttribute modelNode : child) {
+        							//System.out.println(modelNode.toString1());
+        							ScoutData data = m_ScoutData.getScoutData(modelNode.toString1());
+        							if(null != data) {
+        								if(data.getNode_name().length() < 1 && !data.isRead_note()) {
+        									//璇诲彇涓枃娉ㄩ噴
+        									String zh_name = readUnicodeStringNodeData(fcData.toString1()+".dU",Fc.DC);
+        									//System.err.println(fcData.toString1()+"=="+fcData.getFc()+"-"+zh_name);
+        									
+        									data.setRead_note(true);
+        									if(null == zh_name) {
+        										continue;
+        									}
+        									data.setNode_name(zh_name);
+        								}
+        								data.setNode_path(modelNode.toString1());
+        								data.setNode_value(getBasicDataAttributeData(modelNode));
+//        								if(data.node_path.equals("ZJDYCPSS/btgGGIO1.AnIn1.mag.f")) {
+//        									System.out.println(data.getNode_name()+getBasicDataAttributeData(modelNode));
+//        								}
+        								BTS61850_IEDScout_Task_Thread_SQL.updateupdateIed_NodeState_Table(pool, data);
+        							}        						
+        						}
+        						param.addCommNum();
+        					}   
+        				}else {
+        					param.addErrorNum();
+        				}
+        				param.setConn_st(IEDScout_Param.CONN_STATE_SUCCESS);
+        				BTS61850_IEDScout_Task_Thread_SQL.updateConnect_Inf_Table(pool, param);
+        				
+        				ds = null;        				
+        				
+        				//BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table(pool, m_ScoutData);
+        				Thread.sleep(100);
+        			}   
+        			if(is_clear_data) {
+        				is_clear_data = false;
+        				mySQL_Task.setM_initTask(true);
+        			}
+        			
+        			//鎵嬪姩鍋滄杩炴帴
+        			if(BTS61850_IEDScout_Task_Thread_SQL.queryIed_NodeState_TableStopConnect(pool)) {
+        				m_App_IsConnect = false;
+        				logger.error("DevIp:"+param.target_ip + " Remote DisConnect ... ");
+        			}
+        			
+        			if(null == DataSetIt) {
+        				param.addErrorNum();
+        			}
+        			Thread.sleep(100);
+        			if(param.getErrcount() > 10) {
+        				param.setFail_reasion(IEDScout_Param.FAILREASION_TIMEOUT);
+        				logger.error("Error Comm Count OverMuch ,DisConnect to Device IP:" + param.target_ip);
+        				m_App_IsConnect = false;
+        			}
+	        	}
+	        }
+        } catch (Exception e) {
+        	logger.error(this.getClass() + e.getMessage());
+        } finally {
+        	//杩炴帴鏂紑涔嬪悗
+        	mySQL_Task.setApp_UpdateAlive(false);
+        	
+        	param.setConn_st(IEDScout_Param.CONN_STATE_FAIL);
+        	BTS61850_IEDScout_Task_Thread_SQL.updateConnect_Inf_Table(pool, param);	 
+        	
+        	logger.error("DevIp:"+param.target_ip + " DisConnect ... ");
+        }
+	}
+	
+	public void setAppIsConnect(boolean state) {
+		this.m_App_IsConnect = state;
+	}
+	
+	
+	public String readUnicodeStringNodeData(String reference, Fc fc) {
+    	FcModelNode fcModelNode = (FcModelNode)m_ServerModel.findModelNode(reference, fc);
+    	if(null == fcModelNode) {
+    		return "";
+    	}    	
+    	String res = "";
+        try {
+			m_Association.getDataValues(fcModelNode);
+			res = new String(((BdaUnicodeString)fcModelNode).getValue(),"UTF-8");
+        } catch (ServiceError | IOException e1) {
+            return "";
+        }        
+        return res;
+    }
+	
+	public float getBasicDataAttributeData(BasicDataAttribute modelNode) {
+		float f = 0;
+		BdaType nodeType = modelNode.getBasicType();
+		if(BdaType.BOOLEAN == nodeType) {
+			BdaBoolean bda = (BdaBoolean)modelNode;
+			f = bda.getValue()?1:0;
+		}else if(BdaType.INT8 == nodeType) {
+			BdaInt8 bda = (BdaInt8)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT16 == nodeType) {
+			BdaInt16 bda = (BdaInt16)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT32 == nodeType) {
+			BdaInt32 bda = (BdaInt32)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT64 == nodeType) {
+			BdaInt64 bda = (BdaInt64)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT128 == nodeType) {
+			BdaInt128 bda = (BdaInt128)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT8U == nodeType) {
+			BdaInt8U bda = (BdaInt8U)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT16U == nodeType) {
+			BdaInt16U bda = (BdaInt16U)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.INT32U == nodeType) {
+			BdaInt32U bda = (BdaInt32U)modelNode;
+			f = bda.getValue();
+		}else if(BdaType.FLOAT32 == nodeType) {
+			BdaFloat32 bda = (BdaFloat32)modelNode;
+			f = bda.getFloat();
+		}else if(BdaType.FLOAT64 == nodeType) {
+			BdaFloat64 bda = (BdaFloat64)modelNode;
+			f = Float.parseFloat(Double.toHexString(bda.getDouble()));
+		}
+		return f;
+	}
+	
+	
+	public static void main(String[] args) {
+		MysqlConnPool pool = new MysqlConnPool("192.168.10.82",3360,10);
+		
+		BTS61850_IEDScout_Task_Thread thread = new BTS61850_IEDScout_Task_Thread(pool);
+		thread.start();
+		
+	}
+}
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread.java b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread.java
new file mode 100644
index 0000000..f9170cb
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread.java
@@ -0,0 +1,170 @@
+package com.iedscout;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import com.dec.fbs9100.MysqlConnPool;
+import com.iedscout.BTS61850_IEDScout_Task_Thread.IEDScout_Param;
+
+public class BTS61850_IEDScout_Task_Thread extends Thread{
+	
+	private Logger logger = null;
+	
+	private MysqlConnPool pool;
+	
+	public BTS61850_IEDScout_Task_Thread(MysqlConnPool pool) {
+		this.pool = pool;
+		this.logger = LogManager.getFormatterLogger();
+	}
+	
+	@Override
+	public void run() {
+		logger.info("BTS61850_IEDScout_Task_Thread Start Monitor ... ");
+		BTS61850_IEDScout_Task_Thread_SQL.insertConnect_Inf_Table(pool);
+		
+		
+		IEDScout_Param param = new IEDScout_Param();
+		BTS61850_IEDScout_Task task = new BTS61850_IEDScout_Task(pool, param);
+		while(true) {
+			try {
+				BTS61850_IEDScout_Task_Thread_SQL.queryConnect_Inf_Table(pool,param);
+				if(IEDScout_Param.CONN_STATE_START == param.conn_st) {
+					param.setConn_st(IEDScout_Param.CONN_STATE_CONNECT);
+					param.setFail_reasion(IEDScout_Param.FAILREASION_NULL);	
+		        	BTS61850_IEDScout_Task_Thread_SQL.updateConnect_Inf_Table(pool, param);	 
+					
+		        	task.setAppIsConnect(true);
+		        	
+					logger.printf(Level.INFO,"BTS61850_IEDScout_Task Start Connect IP:%s,Port:%d",param.target_ip,param.target_port);
+					task.connectIEDDevice();					
+				}			
+				Thread.sleep(1000);
+			} catch (Exception e) {
+				logger.error(e.toString(), e);
+			}		
+		}		  
+	}
+	
+	
+  /**
+   * 	杩炴帴鍙傛暟淇℃伅
+   * @author DELL
+   *
+   */
+	public class IEDScout_Param{
+		public static final int CONN_STATE_NULL   	= 0;		//榛樿
+		public static final int CONN_STATE_START   	= 1;		//寮�濮嬭繛鎺�
+		public static final int CONN_STATE_CONNECT  = 2;		//杩炴帴涓�
+		public static final int CONN_STATE_SUCCESS  = 3;		//杩炴帴鎴愬姛
+		public static final int CONN_STATE_FAIL   	= 4;		//杩炴帴澶辫触
+		
+		
+		public static final int FAILREASION_NULL    		= 0;		//鏃�
+		public static final int FAILREASION_FILENOTFOUND    = 1;		//鏂囦欢涓嶅瓨鍦�
+		public static final int FAILREASION_FILEERROR    	= 2;		//鏂囦欢涓嶅尮閰�
+		public static final int FAILREASION_PARAMERROR	   	= 3;		//IP鎴栬�呯鍙i敊璇�
+		public static final int FAILREASION_TIMEOUT	    	= 4;		//杩炴帴瓒呮椂
+		
+		public String target_ip;		//'鐩爣IP鍦板潃',
+		public int target_port;			//'鐩殑绔彛鍙�',
+		public String target_icd;		//'鐩殑璁惧icd鏂囦欢璺緞',
+		public int conn_st;				//'杩炴帴鐘舵��0-榛樿  1-寮�濮嬭繛鎺骞冲彴璁剧疆]  2-杩炴帴涓�   3-杩炴帴鎴愬姛  4-杩炴帴澶辫触',
+		public int fail_reasion;		//'澶辫触鍘熷洜锛�0-鏃�  1-ICD鏂囦欢涓嶅瓨鍦�  2-ICD鏂囦欢涓嶅尮閰�',
+		public long comm_num;			//閫氫俊璁℃暟',
+		public long error_num;			//'閫氫俊閿欒璁℃暟',
+		
+		public long errcount;			//杩炵画閫氫俊閿欒璁℃暟 >10 鏂紑杩炴帴
+		
+		public int GetConnStateNull() {
+			return CONN_STATE_NULL;
+		}
+		public int GetConnStateStart() {
+			return CONN_STATE_START;
+		}
+		public int GetConnStateConnect() {
+			return CONN_STATE_CONNECT;
+		}
+		public int GetConnStateSuccess() {
+			return CONN_STATE_SUCCESS;
+		}
+		public int GetConnStateFail() {
+			return CONN_STATE_FAIL;
+		}
+		public String getTarget_ip() {
+			return target_ip;
+		}
+		public int getTarget_port() {
+			return target_port;
+		}
+		public String getTarget_icd() {
+			return target_icd;
+		}
+		public int getConn_st() {
+			return conn_st;
+		}
+		public int getFail_reasion() {
+			return fail_reasion;
+		}
+		public long getComm_num() {
+			return comm_num;
+		}
+		public long getError_num() {
+			return error_num;
+		}
+		
+		public void setTarget_ip(String target_ip) {
+			this.target_ip = target_ip;
+		}
+		public void setTarget_port(int target_port) {
+			this.target_port = target_port;
+		}
+		public void setTarget_icd(String target_icd) {
+			this.target_icd = target_icd;
+		}
+		public void setConn_st(int conn_st) {
+			this.conn_st = conn_st;
+		}
+		public void setFail_reasion(int fail_reasion) {
+			this.fail_reasion = fail_reasion;
+		}
+		public void setComm_num(long comm_num) {
+			this.comm_num = comm_num;
+		}
+		public void setError_num(long error_num) {
+			this.error_num = error_num;
+		}
+		
+		/**
+		 * 	绱姞閫氫俊璁℃暟
+		 */
+		public void addCommNum() {
+			if(this.comm_num < 999999990){
+				this.comm_num ++;
+				errcount = 0;
+			}
+		}
+		
+		/**
+		 * 	绱姞閿欒璁℃暟
+		 */
+		public void addErrorNum() {
+			if(this.error_num < 999999990){
+				this.error_num ++;
+			}
+			this.errcount ++;
+		}
+		
+		
+		public long getErrcount() {
+			return errcount;
+		}
+		public void setErrcount(long errcount) {
+			this.errcount = errcount;
+		}
+		
+		
+		
+	}
+	
+}
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread_SQL.java b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread_SQL.java
new file mode 100644
index 0000000..2395682
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS61850_IEDScout_Task_Thread_SQL.java
@@ -0,0 +1,250 @@
+package com.iedscout;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import com.dec.fbs9100.MysqlConnPool;
+import com.dec.fbs9100.Sql_Mysql;
+import com.iedscout.BTS61850_IEDScout_Task_Thread.IEDScout_Param;
+
+public class BTS61850_IEDScout_Task_Thread_SQL {
+
+	/**
+	 * 	鎻掑叆榛樿鐨勫垵濮嬫暟鎹甗瓒呰繃1琛屾暟鎹槸鍒犻櫎鍏朵綑琛屾暟鎹甝
+	 * @param pool
+	 */
+	public static void insertConnect_Inf_Table(MysqlConnPool pool) {
+		String sql_str = "SELECT count(*)as count_num FROM " + Sql_Mysql.Connect_Inf_Table;
+		ResultSet res = null; 
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		try {
+			res = sql.sqlMysqlQuery(sql_str);
+			if(res.next()) {
+				int count_num = res.getInt("count_num");
+				if(count_num > 1) {
+					sql.sqlMysqlExecute("DELETE FROM " + Sql_Mysql.Connect_Inf_Table);
+					sql.sqlMysqlExecute("INSERT INTO  " + Sql_Mysql.Connect_Inf_Table + "(num,target_ip,target_port,conn_st) VALUES(1,'127.0.0.1',102,0);");
+				}else if(count_num == 1){
+					sql.sqlMysqlExecute(" UPDATE " + Sql_Mysql.Connect_Inf_Table + " set conn_st = 0;");
+				}else {
+					sql.sqlMysqlExecute("INSERT INTO  " + Sql_Mysql.Connect_Inf_Table + "(num,target_ip,target_port,conn_st) VALUES(1,'127.0.0.1',102,0);");
+				}
+			}
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.insertIntoIed_NodeState_Table():" + e.toString(), e);
+		} finally {
+			if(null != res) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.insertIntoIed_NodeState_Table():" + e.toString(), e);
+				}
+			}
+			sql.close_con();
+		}
+	}
+
+	/**
+	 * 	鏌ヨ褰撳墠杩炴帴鐘舵��
+	 * @param pool	
+	 * @param param
+	 */
+	public static void queryConnect_Inf_Table(MysqlConnPool pool, IEDScout_Param param) {
+		String sql_str = "SELECT * FROM " + Sql_Mysql.Connect_Inf_Table;
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		ResultSet res = null;
+		try {
+			res = sql.sqlMysqlQuery(sql_str);
+			if(res.next()) {
+				param.target_ip = res.getString("target_ip"); 			//'鐩爣IP鍦板潃',
+				param.target_port = res.getInt("target_port");			//'鐩殑绔彛鍙�',
+				param.target_icd = res.getString("target_icd");			//'鐩殑璁惧icd鏂囦欢璺緞',
+				param.conn_st = res.getInt("conn_st");					//'杩炴帴鐘舵��0-榛樿  1-寮�濮嬭繛鎺骞冲彴璁剧疆]  2-杩炴帴涓�   3-杩炴帴鎴愬姛  4-杩炴帴澶辫触',
+				param.fail_reasion = res.getInt("fail_reasion");		//'澶辫触鍘熷洜锛�0-鏃�  1-ICD鏂囦欢涓嶅瓨鍦�  2-ICD鏂囦欢涓嶅尮閰�',
+				param.comm_num = res.getLong("comm_num");				//閫氫俊璁℃暟',
+				param.error_num = res.getLong("error_num");				//'閫氫俊閿欒璁℃暟',
+			}
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.queryIntoIed_NodeState_Table():" + e.toString(), e);
+		} finally {
+			if(null != res) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.queryIntoIed_NodeState_Table():" + e.toString(), e);
+				}
+			}
+			sql.close_con();
+		}
+	}
+	
+	/*
+	 * 
+	 * 	鎻掑叆榛樿鐨勬暟鎹�
+	 */
+	public static void inseartIed_NodeState_Table(MysqlConnPool pool,BTS_ScoutData_Array array) {
+		final StringBuffer sql_str = new StringBuffer();
+		array.getDataMap().forEach((key, value) -> {	
+			if(null == value.node_name) {
+				
+			}else {
+				Sql_Mysql sql = new Sql_Mysql(pool);
+				ResultSet res = null;
+				String sql_str_sel = "SELECT * FROM " + Sql_Mysql.Ied_NodeState_Table + " WHERE node_path = '" + value.getNode_path() + "';";
+				try {
+					res = sql.sqlMysqlQuery(sql_str_sel);
+					if(res.next()) {
+						//sql.sqlMysqlExecute("UPDATE " + Sql_Mysql.Ied_NodeState_Table + " SET node_value = '" + value.node_value + "',node_name = '" + value.node_name + "' WHERE node_path = '" + value.node_path + "';");
+					}else {
+						sql.sqlMysqlExecute("INSERT INTO " + Sql_Mysql.Ied_NodeState_Table + "(node_path,node_name,node_value) VALUES('" + value.node_path + "','" + value.node_name + "','" + value.node_value + "');");
+					}
+				} catch (SQLException e) {
+					sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table():" + e.toString(), e);
+				} finally {
+					if(null != res) {
+						try {
+							res.close();
+						} catch (SQLException e) {
+							sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table():" + e.toString(), e);
+						}
+					}
+					sql.close_con();
+				}			
+			}			
+	    });
+	}
+	
+	/*
+	 * 
+	 * 	鏇存柊榛樿鐨勬暟鎹�
+	 */
+	public static void updateIed_NodeState_Table(MysqlConnPool pool,BTS_ScoutData_Array array) {
+		StringBuffer sql_str = new StringBuffer(" UPDATE " + Sql_Mysql.Ied_NodeState_Table + " SET ");
+		boolean isEx = false;
+		StringBuffer sql_str_val = new StringBuffer();
+		StringBuffer sql_str_name = new StringBuffer();
+		Sql_Mysql sql = new  Sql_Mysql(pool);
+		array.getDataMap().forEach((key, value) -> {	
+			if(null != value.node_name && value.node_name.trim().length() > 0) {
+				//System.out.println("value.node_path:"+value.node_path);
+				try {
+					Thread.sleep(10);
+					//sql_str_val.append(" WHEN '" + value.node_path + "' THEN " + value.node_value);
+					sql_str_val.append(" WHEN '");
+					sql_str_val.append(value.node_path);
+					sql_str_val.append("' THEN ");
+					sql_str_val.append(value.node_value);
+					
+//					sql_str_name.append(" WHEN '" + value.node_path + "' THEN '" + value.node_name + "'");
+					sql_str_name.append(" WHEN '");
+					sql_str_name.append(value.node_path);
+					sql_str_name.append("' THEN '");
+					sql_str_name.append(value.node_name + "'");
+				} catch (Exception e) {
+					sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table():" + e.toString(), e);
+				} 			
+			}			
+		});
+		if(sql_str_val.length() > 0) {
+			isEx = true;
+			sql_str.append(" node_value = CASE node_path " + sql_str_val.toString() + " ELSE node_value END ");
+		}
+		if(sql_str_name.length() > 0) {
+			isEx = true;
+			sql_str.append(" ,node_name = CASE node_path " + sql_str_name.toString() + " ELSE node_name END ");
+		}
+		if(isEx) {
+			try {
+				//System.out.println(sql_str.toString());
+				sql.sqlMysqlExecute(sql_str.toString());
+			} catch (SQLException e) {
+				sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table():" + e.toString(), e);
+			} finally {
+				sql.close_con();
+			}
+		}
+	}
+	
+	
+	public static void updateupdateIed_NodeState_Table(MysqlConnPool pool,ScoutData data) {
+		StringBuffer sql_str = new StringBuffer(" UPDATE " + Sql_Mysql.Ied_NodeState_Table + " SET node_value = " + data.node_value + ",node_name = '"+ data.node_name +"' where node_path = '"+ data.node_path +"';");
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		try {
+			//System.out.println(sql_str.toString());
+			sql.sqlMysqlExecute(sql_str.toString());
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateupdateIed_NodeState_Table():" + e.toString(), e);
+		} finally {
+			sql.close_con();
+		}
+	}
+	/**
+	 * 	娓呯┖'db_ied_scout.tb_ied_nodestate'琛ㄤ腑鐨勬墍鏈夋暟鎹�
+	 * @param pool
+	 */
+	public static void clearIed_NodeState_Table(MysqlConnPool pool) {
+		String sql_str = "TRUNCATE TABLE " + Sql_Mysql.Ied_NodeState_Table;
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		try {
+			sql.sqlMysqlExecute(sql_str);
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table():" + e.toString(), e);
+		} finally {
+			sql.close_con();
+		}
+	}
+	
+	
+	
+	/**
+	 * 	娓呯┖'db_ied_scout.tb_ied_nodestate'琛ㄤ腑鐨勬墍鏈夋暟鎹�
+	 * @param pool
+	 */
+	public static void updateConnect_Inf_Table(MysqlConnPool pool,IEDScout_Param param) {
+		String sql_str = " update " + Sql_Mysql.Connect_Inf_Table 
+						 + " SET conn_st = " + param.getConn_st() 
+						 + " ,fail_reasion = " + param.getFail_reasion()
+						 + " ,comm_num = " + param.getComm_num()
+						 + " ,error_num = " + param.getError_num()
+						 + " where conn_st != " + IEDScout_Param.CONN_STATE_NULL;
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		try {
+			sql.sqlMysqlExecute(sql_str);
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.updateConnect_Inf_Table():" + e.toString(), e);
+		} finally {
+			sql.close_con();
+		}
+	}
+
+	public static boolean queryIed_NodeState_TableStopConnect(MysqlConnPool pool) {
+		String sql_str = "SELECT * FROM " + Sql_Mysql.Connect_Inf_Table +" where  conn_st = 0;";
+		boolean flag = false;
+		ResultSet res = null; 
+		Sql_Mysql sql = new Sql_Mysql(pool);
+		try {
+			res = sql.sqlMysqlQuery(sql_str);
+			if(res.next()) {
+				flag = true;
+			}
+		} catch (SQLException e) {
+			sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.insertIntoIed_NodeState_Table():" + e.toString(), e);
+		} finally {
+			if(null != res) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					sql.logger.error("BTS61850_IEDScout_Task_Thread_SQL.insertIntoIed_NodeState_Table():" + e.toString(), e);
+				}
+			}
+			sql.close_con();
+		}
+		return flag;
+	}
+	
+	public static void main(String[] args) {
+		MysqlConnPool pool = new MysqlConnPool("192.168.10.82", 3360, 5);
+		System.out.println(queryIed_NodeState_TableStopConnect(pool));;
+		
+	}
+}
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/BTS_ScoutData_Array.java b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS_ScoutData_Array.java
new file mode 100644
index 0000000..dd34cdb
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/BTS_ScoutData_Array.java
@@ -0,0 +1,47 @@
+package com.iedscout;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+
+public class BTS_ScoutData_Array {
+	private Map<String,ScoutData> m_ScoutData = new LinkedHashMap<String,ScoutData>();;
+	
+	
+	public void addScoutData(ScoutData data) {
+		if(null != data.node_path && data.node_path.trim().length() > 0) {
+			if(!data.node_path.endsWith("mag.f") && !data.node_path.endsWith(".stVal")) {
+				return;
+			}			
+			m_ScoutData.put(data.node_path, data);		
+		}
+	}
+	
+	public ScoutData getScoutData(String path) {
+		if(null != path) {
+			return m_ScoutData.get(path);
+		}
+		return null;
+	}
+	           
+	
+	public int getDataCount() {
+		return m_ScoutData.size();
+	}
+	
+	public Map<String,ScoutData> getDataMap(){
+		return this.m_ScoutData;
+	}
+	
+	/**
+	 * 	娓呯┖闆嗗悎
+	 */
+	public void clear() {
+		if(null != m_ScoutData) {			
+			m_ScoutData.clear();
+		}
+	}
+	
+	
+}
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/ScoutData.java b/iec61850_forFoShanAES_Model/src/com/iedscout/ScoutData.java
new file mode 100644
index 0000000..8df8f5e
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/ScoutData.java
@@ -0,0 +1,46 @@
+package com.iedscout;
+
+public class ScoutData{
+	public String node_path;		//'鑺傜偣璺緞',
+	public String node_name = "";	//'鑺傜偣涓枃鍚嶇О',
+	public float node_value;		//'鑺傜偣鍊�',	
+	
+	public boolean read_note = false;		//鏄惁宸茬粡璇诲彇杩囨敞閲�
+	
+	public ScoutData() {
+		// TODO Auto-generated constructor stub
+	}
+
+	public String getNode_path() {
+		return node_path;
+	}
+
+	public String getNode_name() {
+		return node_name;
+	}
+
+	public boolean isRead_note() {
+		return read_note;
+	}
+
+	public void setRead_note(boolean read_note) {
+		this.read_note = read_note;
+	}
+
+	public float getNode_value() {
+		return node_value;
+	}
+
+	public void setNode_path(String node_path) {
+		this.node_path = node_path;
+	}
+
+	public void setNode_name(String node_name) {
+		this.node_name = node_name;
+	}
+
+	public void setNode_value(float node_value) {
+		this.node_value = node_value;
+	}
+	
+}
\ No newline at end of file
diff --git a/iec61850_forFoShanAES_Model/src/com/iedscout/UpdateDataToMySQL_Task.java b/iec61850_forFoShanAES_Model/src/com/iedscout/UpdateDataToMySQL_Task.java
new file mode 100644
index 0000000..137e4d6
--- /dev/null
+++ b/iec61850_forFoShanAES_Model/src/com/iedscout/UpdateDataToMySQL_Task.java
@@ -0,0 +1,78 @@
+package com.iedscout;
+
+import java.util.Date;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import com.base.Com;
+import com.dec.fbs9100.MysqlConnPool;
+
+
+/**
+ * 	鏁版嵁搴撴洿鏂扮嚎绋�
+ * @author DELL
+ *
+ */
+public class UpdateDataToMySQL_Task implements Runnable {
+	private BTS_ScoutData_Array scoutData_Array;
+	private MysqlConnPool pool;
+	
+	private boolean m_app_UpdateAlive = true;
+	private Logger logger = null;
+	
+	private boolean m_initTask = false;
+
+	public UpdateDataToMySQL_Task(BTS_ScoutData_Array scoutData_Array,MysqlConnPool pool) {
+		this.pool = pool;
+		this.scoutData_Array = scoutData_Array;	
+		
+		this.logger = LogManager.getLogger(this);
+		
+	}
+	
+	@Override
+	public void run() {
+		logger.info("UpdateDataToMySQL_Task Start at " + Com.get_DTF(new Date(), Com.DTF_YMDhms));
+		m_app_UpdateAlive = true;
+		BTS61850_IEDScout_Task_Thread_SQL.clearIed_NodeState_Table(pool);
+
+				
+		while(m_app_UpdateAlive) {
+			try {
+//				if(m_app_UpdateAlive) {
+//					//娓呯┖鏁版嵁搴撹〃
+//					
+//					BTS61850_IEDScout_Task_Thread_SQL.inseartIed_NodeState_Table(pool, scoutData_Array);
+//					
+//					m_app_UpdateAlive = false;
+//				}
+				
+				//System.err.println("UpdateDataToMySQL_Task : scoutData_Array.Count():" + scoutData_Array.getDataCount());
+				//BTS61850_IEDScout_Task_Thread_SQL.updateIed_NodeState_Table(pool, scoutData_Array);
+				BTS61850_IEDScout_Task_Thread_SQL.inseartIed_NodeState_Table(pool, scoutData_Array);
+				Thread.sleep(2000);
+				
+			} catch (Exception e) {
+				logger.error("UpdateDataToMySQL_Task" + e.toString(), e);
+			}		
+		}		
+		logger.info("UpdateDataToMySQL_Task Stop at " + Com.get_DTF(new Date(), Com.DTF_YMDhms));
+	}
+	
+	
+	public void setApp_UpdateAlive(boolean flag) {
+		this.m_app_UpdateAlive = flag;
+	}
+
+	public boolean isM_initTask() {
+		return m_initTask;
+	}
+
+	public void setM_initTask(boolean m_initTask) {
+		this.m_initTask = m_initTask;
+	}
+	
+	
+	
+}

--
Gitblit v1.9.1