From 75f29de7f6ec9c9d8e537fe9c5214075e70edef3 Mon Sep 17 00:00:00 2001
From: DELL <1525436766@qq.com>
Date: 星期六, 12 十月 2024 10:17:34 +0800
Subject: [PATCH] 添加通信异常逻辑

---
 iec61850_forFoShanAES_Model/src/com/battdata_rt/BattData_RT_Array.java        |    5 ++
 iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt               |    2 
 iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class  |    0 
 iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_Array.class       |    0 
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java  |   29 ++++++++++++--
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java   |   44 +++++++++++----------
 iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class |    0 
 iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt               |    2 
 8 files changed, 54 insertions(+), 28 deletions(-)

diff --git a/iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_Array.class b/iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_Array.class
index 7b9f344..5e88ff2 100644
--- a/iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_Array.class
+++ b/iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_Array.class
Binary files differ
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 4ac889e..7bbd395 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/FBS9100_Task_Thread_SQL.class b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class
index 4b15516..c4b7276 100644
--- a/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class
+++ b/iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class
Binary files differ
diff --git a/iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt b/iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt
index 2ea507a..83d2b4e 100644
--- a/iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt
+++ b/iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt
@@ -5,7 +5,7 @@
 	 
 	娉ㄦ剰褰撳墠鐗堟湰鍦ㄨ缃崡鐟炵殑61850鍗忚浆绛惧悕鏃剁敤鐨� 	BTSE2/
 	
-V2.1043 edit by lijun   @  2024-07-24
+V2.104 edit by lijun   @  2024-07-24
 	1.鍏煎璇诲彇绱櫠閿傜數BTS鏍稿鏁版嵁
 	
 V2.103 edit by lijun    @  2024-04-08
diff --git a/iec61850_forFoShanAES_Model/src/com/battdata_rt/BattData_RT_Array.java b/iec61850_forFoShanAES_Model/src/com/battdata_rt/BattData_RT_Array.java
index 0d316b9..d503ee8 100644
--- a/iec61850_forFoShanAES_Model/src/com/battdata_rt/BattData_RT_Array.java
+++ b/iec61850_forFoShanAES_Model/src/com/battdata_rt/BattData_RT_Array.java
@@ -102,6 +102,7 @@
 				}
 				boolean batt_group_exist = false;
 				String reg_code = res.getString("BattGroupName6").trim();
+				String FBSDeviceName = res.getString("FBSDeviceName").trim();
 				float float_vol_lev = res.getFloat("FloatVolLevel");
 				float float_curr_lev = res.getFloat("BattFloatCurrent");
 				int GroupIndexInFBSDevice = res.getInt("GroupIndexInFBSDevice");
@@ -120,6 +121,10 @@
 							brt.setDevRegCode(reg_code);
 							param_changed = true;
 						}
+						if(false == FBSDeviceName.equals(brt.FBSDeviceName)) {
+							brt.FBSDeviceName = FBSDeviceName;
+							param_changed = true;
+						}
 						if((float_vol_lev!=brt.getBattFloatVolLev()) || (float_curr_lev!=brt.getBattFloatCurrLev())) {
 							brt.setBattFloatVolCurrLevel(float_vol_lev, float_curr_lev);
 							param_changed = true;
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 4753802..3660864 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
@@ -217,25 +217,29 @@
             System.out.println("successfully read model");
             */
 			
-			/************************* read m_DevVersion first *************************/
-			m_StatAndParam.m_DevVersion = readVersionStringNodeData(FBSDeviceName + "/ncdGGIO1.DevVersion.d", Fc.DC);
-			/***************************************************************************/
-			logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_VersionInf: " + m_StatAndParam.m_DevVersion);
-			
-			m_FBS_VCData.m_SysState.resetErrCommCount();
-			FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam(m_ConnPool, m_StatAndParam.clParam, m_StatAndParam);
+			try {
+				/************************* read m_DevVersion first *************************/
+				m_StatAndParam.m_DevVersion = readVersionStringNodeData(FBSDeviceName + "/ncdGGIO1.DevVersion.d", Fc.DC);
+				/***************************************************************************/
+				logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_VersionInf: " + m_StatAndParam.m_DevVersion);
+				
+				m_FBS_VCData.m_SysState.resetErrCommCount();
+				FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam(m_ConnPool, m_StatAndParam.clParam, m_StatAndParam);
 
-			FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
-			
-			m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
-            m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC);				//鍞竴搴忓垪鍙�
-			BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam);		//鏇存柊褰撳墠鍙傛暟
-			
-			
-			//璇诲彇涓讳粠鏈哄姛鑳戒娇鑳�
-			m_FBS_VCData.m_SysState.MasterSlave_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn29.mag.f",Fc.MX));
-			//璇诲彇骞叉帴鐐瑰姛鑳戒娇鑳�
-			m_FBS_VCData.m_SysState.DryContact_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn30.mag.f",Fc.MX));
+				FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
+				
+				m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
+				m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC);				//鍞竴搴忓垪鍙�
+				BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam);		//鏇存柊褰撳墠鍙傛暟
+				
+				
+				//璇诲彇涓讳粠鏈哄姛鑳戒娇鑳�
+				m_FBS_VCData.m_SysState.MasterSlave_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn29.mag.f",Fc.MX));
+				//璇诲彇骞叉帴鐐瑰姛鑳戒娇鑳�
+				m_FBS_VCData.m_SysState.DryContact_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn30.mag.f",Fc.MX));
+			} catch (Exception e2) {
+				logger.error(e2.toString(), e2);
+			}
 			
 			while (true == Get_AppAliveState()) {
 				try {
@@ -462,13 +466,11 @@
 						break;
 					}
 					// ---------------------------------------------------------------------------------//
-				} catch (InterruptedException e) {
+				} catch (Exception e) {
 					logger.error(e.toString(), e);
-					
 					try {
 						sleep(1000);
 					} catch (InterruptedException e1) {
-						// TODO Auto-generated catch block
 						logger.error(e1.toString(), e1);
 					}
 				}
diff --git a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
index 6554bc7..4273946 100644
--- a/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
+++ b/iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
@@ -655,8 +655,9 @@
 	{
 		String sql_str = "SELECT * FROM " + Sql_Mysql.FBS9100SetParam_Table;
 		Sql_Mysql sql = new Sql_Mysql(con_pool);
-		ResultSet res = sql.sqlMysqlQuery(sql_str);
+		ResultSet res = null;
 		try {
+			res = sql.sqlMysqlQuery(sql_str);
 			while(res.next())
 			{
 				FBS9100_StatAndParam param = null;
@@ -712,8 +713,9 @@
 	{
 		String sql_str = "SELECT * FROM " + Sql_Mysql.FBS9100SetParam_Table + " where dev_id = " + param.dev_id;
 		Sql_Mysql sql = new Sql_Mysql(con_pool);
-		ResultSet res = sql.sqlMysqlQuery(sql_str);
+		ResultSet res = null;
 		try {
+			res = sql.sqlMysqlQuery(sql_str);
 			if(res.next())
 			{
 				if(null != param) {
@@ -820,8 +822,9 @@
 		//System.out.println(param.dev_id);
 		String sql_str = "SELECT * FROM " + Sql_Mysql.FBS9100SetDLParam_Table + " where dev_id = " + param.dev_id;
 		Sql_Mysql sql = new Sql_Mysql(con_pool);
-		ResultSet res = sql.sqlMysqlQuery(sql_str);
+		ResultSet res = null;
 		try {
+			res = sql.sqlMysqlQuery(sql_str);
 			if(res.next())
 			{
 				if(null != param) {
@@ -1299,8 +1302,9 @@
 	public static void queryFBS9100SysParamBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) {
 		String sql_str = "SELECT * FROM " + Sql_Mysql.FBS9100SysParam_Table + " where dev_id = " + param.dev_id;
 		Sql_Mysql sql = new Sql_Mysql(con_pool);
-		ResultSet res = sql.sqlMysqlQuery(sql_str);
+		ResultSet res = null;
 		try {
+			res = sql.sqlMysqlQuery(sql_str);
 			if(res.next())
 			{
 				if(null != param) {
@@ -1329,6 +1333,13 @@
 		} catch (SQLException e) {
 			sql.logger.error("FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id():" + e.toString(), e);
 		} finally {
+			if(null != res) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					sql.logger.error("FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id():" + e.toString(), e);
+				}
+			}
 			sql.close_con();
 		}
 	}
@@ -1515,9 +1526,10 @@
 	public static void queryBTS61850OffLineyhPlanOnRam(MysqlConnPool m_ConnPool, FBS9100_StatAndParam param) {
 		String sql_str = " SELECT * FROM " + Sql_Mysql.FBS9100_offlineyhplan + " WHERE dev_id = " + param.dev_id ;
 		Sql_Mysql sql = new Sql_Mysql(m_ConnPool);
-		ResultSet res = sql.sqlMysqlQuery(sql_str);
 		BTS61850_OffLineYHPlan plan = param.bts61850_OffLineYHPlan;
+		ResultSet res = null;
 		try {
+			res = sql.sqlMysqlQuery(sql_str);
 			if(res.next()) {
 				plan.OffLineYH_Cycle = res.getInt("OffLineYH_Cycle");
 				plan.OffLineYHOnceCycle = res.getInt("OffLineYHOnceCycle");
@@ -1532,6 +1544,13 @@
 		} catch (SQLException e) {
 			sql.logger.error("FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam():" + e.toString(), e);
 		} finally {
+			if(null != res) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+			}
 			sql.close_con();
 		}
 	}
diff --git a/iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt b/iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt
index 2ea507a..83d2b4e 100644
--- a/iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt
+++ b/iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt
@@ -5,7 +5,7 @@
 	 
 	娉ㄦ剰褰撳墠鐗堟湰鍦ㄨ缃崡鐟炵殑61850鍗忚浆绛惧悕鏃剁敤鐨� 	BTSE2/
 	
-V2.1043 edit by lijun   @  2024-07-24
+V2.104 edit by lijun   @  2024-07-24
 	1.鍏煎璇诲彇绱櫠閿傜數BTS鏍稿鏁版嵁
 	
 V2.103 edit by lijun    @  2024-04-08

--
Gitblit v1.9.1