From 002a26056f52f955973054b86f0cf537e0191531 Mon Sep 17 00:00:00 2001
From: DELL <1525436766@qq.com>
Date: 星期一, 23 六月 2025 15:51:50 +0800
Subject: [PATCH] 修复泰科设备兼容性问题

---
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java |  672 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 493 insertions(+), 179 deletions(-)

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 1d96733..8bd28dd 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
@@ -15,8 +15,10 @@
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.openmuc.openiec61850.BdaBitString;
 import org.openmuc.openiec61850.BdaBoolean;
 import org.openmuc.openiec61850.BdaFloat32;
+import org.openmuc.openiec61850.BdaInt32;
 import org.openmuc.openiec61850.BdaInt64;
 import org.openmuc.openiec61850.BdaVisibleString;
 import org.openmuc.openiec61850.ClientAssociation;
@@ -26,12 +28,14 @@
 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 org.openmuc.openiec61850.clientgui.BasicDataBind;
 import org.openmuc.openiec61850.clientgui.databind.Float32DataBind;
 import org.openmuc.openiec61850.clientgui.databind.Int64DataBind;
 import org.openmuc.openiec61850.clientgui.databind.VisibleStringDataBind;
 
+import com.base.AppConfig;
 import com.base.Com;
 import com.battdata_rt.BattData_RT;
 import com.battdata_rt.BattData_RT_Array;
@@ -39,6 +43,9 @@
 
 /****************************************************************************************************/
 public class BTS_61850_SocketClient extends Thread {
+	public static final int Sign_Type_Default = 0;
+	public static final int Sign_Type_InTow   = 1;      //姝e父1鎵�2
+	
 	private boolean m_App_IsAlive = true;
 	private FBS9100_VCData m_FBS_VCData = null;
 	private FBS9100_ParamDischarge m_FBS_DiscParam = null;
@@ -78,6 +85,8 @@
 	private ClientSap m_ClientSap;
 	private ClientAssociation m_Association;
 	private ServerModel m_ServerModel;
+	
+	private boolean isTaiKe = false;		//娉扮璁惧
 	
 	private Logger logger = null;
 
@@ -140,7 +149,7 @@
 		Set_AppAliveState(true);
 		
 		while (true == Get_AppAliveState()) {
-			logger.error("IP:" + FBSDeviceIp + " - BTS_IEC61850_ClientThread Started ...");
+			logger.error("IP:" + FBSDeviceIp + " ID:" + m_FBSDevId + " BTSE:" + FBSDeviceName + "- BTS_IEC61850_ClientThread Started ...");
 			// FBS9100_Task_Thread_SQL.runinsertime(m_ConnPool);
 			try {
 				Thread.sleep(5000);
@@ -150,20 +159,60 @@
 			}
 			try {
 				m_ClientSap = new ClientSap();
+//				m_Association = m_ClientSap.associate(InetAddress.getByName(FBSDeviceIp), 44444, null, null);
 				m_Association = m_ClientSap.associate(InetAddress.getByName(FBSDeviceIp), 102, null, null);
 				
-				if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
-					//涓庨鍔犺浇鐨勬ā鍨嬫枃浠朵笉涓�鑷存椂
-					m_ServerModel = m_Association.retrieveModel();
-				}
-				//System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
-				
-	           
+//				if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
+//					System.err.println("SSSSSSSSSSS");
+//					//涓庨鍔犺浇鐨勬ā鍨嬫枃浠朵笉涓�鑷存椂
+//					m_ServerModel = m_Association.retrieveModel();
+//				}
 			} catch (Exception e) {
-				logger.debug("BTS_IEC61850_Client Unable to connect to device IP:" + FBSDeviceIp);
+				logger.info("BTS_IEC61850_Client Unable to connect to device IP:" + FBSDeviceIp +" ID:"+m_FBSDevId);
+				if(null != m_Association) {
+					try {
+						m_Association.disconnect();
+						m_Association.close();
+					} catch (Exception e1) {
+						e1.printStackTrace();
+					}
+				}
 				continue;
+			} 
+			
+			if(null != m_Association) {
+				try {
+					m_ServerModel = BTS61850_Task_Thread.getServerModel(m_RTData[0].icdName);	
+					if(null == m_ServerModel) {
+						//璇诲彇璁惧涓婄殑妯″瀷鏂囦欢
+						m_ServerModel = m_Association.retrieveModel();
+					} else {
+						logger.debug("DevId:" + m_FBSDevId + " FBSDEVIP:" + FBSDeviceIp + "浣跨敤妯″瀷鏂囦欢" + m_RTData[0].icdName);
+					}	
+					System.out.println("Dev_BASE:"+m_ServerModel.getBaseDevName());
+				} catch (ServiceError e) {
+					e.printStackTrace();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}	
 			}
-			if(this.FBSDeviceName.indexOf("BTSE")>0) {
+			
+			if(null == m_ServerModel && FBSDeviceName.contains("ZJDY")) {
+				//绱櫠鍗忚浆鑻ョ洿杩炶繛鎺ヤ笉涓婃椂瑙f瀽icd鏂囦欢
+				try {
+					List<ServerSap> serverSaps = ServerSap.getSapsFromSclFile("zjdy_bts_LiBatt.icd");
+					m_ServerModel = serverSaps.get(0).serverModel;
+				} catch (Exception e) {
+					logger.error(e.toString(), e);
+				}
+			}			
+			
+			//System.out.println(m_ServerModel);
+			
+			if(this.FBSDeviceName.indexOf("BTSE2")>0) {
+				//閫傞厤鍚勪釜涓嶅悓鍗忚鍚嶇О鐨�61850璁惧閫氫俊[璇诲彇鏀剧數鍙傛暟鏃剁敤鍒癩
+				ZJDYCPSS = this.FBSDeviceName.replace("BTSE2", "CPSS");
+			}else if(this.FBSDeviceName.indexOf("BTSE")>0) {
 				//閫傞厤鍚勪釜涓嶅悓鍗忚鍚嶇О鐨�61850璁惧閫氫俊[璇诲彇鏀剧數鍙傛暟鏃剁敤鍒癩
 				ZJDYCPSS = this.FBSDeviceName.replace("BTSE", "CPSS");
 			}
@@ -192,25 +241,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 {
@@ -390,8 +443,8 @@
 							numberDevState = 0;
 						}
 						
+//						System.err.println(m_StatAndParam);
 						if (m_StatAndParam != null) {
-							// System.err.println(m_StatAndParam);
 							FBS9100_Task_Thread_SQL.updateFbs9100StateByDev_Id(m_ConnPool, m_StatAndParam);
 							FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODState(m_ConnPool, m_StatAndParam,
 									m_StatAndParam.fbs9100s_fod_state);
@@ -433,17 +486,18 @@
 										m_FBS_VCData.m_SysState.ErrCommCount);
 						
 						m_Association.close();
-						//m_ServerModel = null;
+						m_ServerModel = null;
 						break;
 					}
 					// ---------------------------------------------------------------------------------//
-				} catch (InterruptedException e) {
-					logger.error(e.toString(), e);
-					
+				} catch (Exception e) {
 					try {
+						logger.error("DevId:" + m_FBSDevId +"; IP:" + FBSDeviceIp + " " + this.getName() + " - BTS_IEC61850_ClientThread Connect Break Now By " + e.toString(), e);
 						sleep(1000);
-					} catch (InterruptedException e1) {
-						// TODO Auto-generated catch block
+						m_Association.close();
+						m_ServerModel = null;
+						break;
+					} catch (Exception e1) {
 						logger.error(e1.toString(), e1);
 					}
 				}
@@ -454,7 +508,7 @@
 			m_Association.disconnect();
 			Thread.sleep(1000);
 			m_Association.close();
-			//m_ServerModel = null;
+			m_ServerModel = null;
 		} catch (Exception e) {
 			logger.error(e.toString(), e);
 		}
@@ -647,7 +701,7 @@
 
 		FcModelNode fcModelNode = (FcModelNode) m_ServerModel.findModelNode(reference, fc);
 		if (null == fcModelNode) {
-			logger.error("readFloatNodeData error, no modenode was found.....");
+			logger.error(reference+"readFloatNodeData error, no modenode was found.....");
 			return 0;
 		}
 		try {
@@ -767,20 +821,9 @@
         	m_Association.getDataValues(fcModelNode);  
         	m_FBS_VCData.m_SysState.resetErrCommCount();
         	ModelNode fc_mode = fcModelNode;
-        	String a[]= null;
-        	a = new String[5];
-        	a = (fc_mode.toString()).split(":");
-        	res_val = a[2];
-        	//System.out.println(a[3]);
-        	String split[]= null;
-        	split = new String[5];
-        	split = (res_val.toString()).split(", ");
-        	String result[]= null;
-        	result = new String[2];
-        	result[0] = split[0];
-        	result[1] = a[3];
-        	
-        	resul = String.format("%s,%s", result);
+        	if(fc_mode instanceof BdaVisibleString) {
+        		resul = new String(((BdaVisibleString)fc_mode).getValue());
+        	}
         } catch (ServiceError e) {
             System.out.println("Service error: " + e.getMessage());
             m_FBS_VCData.m_SysState.addErrCommCount();
@@ -804,16 +847,47 @@
 				events.clear();
 				
 				if(0 == (numberDevState%3)) {
-					System.out.println();
 					//---------------------------------Log Level.TRACE-------------------------------------//
-					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsMeasure)", FBSDeviceName);
+					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYc)", FBSDeviceName);
 					//-------------------------------------------------------------------------------------//
-					//-------------------------------------------------------------------------------------//
-					DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsMeasure").copy();
+					DataSet ds = null;
+					DataSet ds_tmp;
+					int BattMonCount = 24;
+					if(null != m_RTData[0]) {
+						if(m_RTData[0].MonCount > 24) {
+							BattMonCount = m_RTData[0].MonCount;
+						}
+					}
+					if(FBSDeviceName.contains("ZJDY")) {
+						//绱櫠鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsMeasure");	
+						//System.out.println(m_ServerModel.getDataSet(FBSDeviceName)+"@@");
+					}else {
+						//鍏辨祹鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc");
+						if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE2")) {
+							//娉扮鏍稿璁惧绗簩缁�,灏濊瘯閫氳繃娉扮闆嗗悎璇诲彇鐐逛綅淇℃伅
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsMeasureTwo");
+							m_FBS_VCData.m_SysState.AlarmState = (int)readFloatNodeData("TEMPLATEBTSE/btgGGIO1.AnIn28.mag.f",Fc.MX);	
+							if(ds_tmp != null) {
+								isTaiKe = true;
+							}
+						}else if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE")) {
+							//娉扮鏍稿璁惧绗涓�缁�
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsMeasure");
+						}
+					}
+					//System.out.println(ds_tmp);
+					if(null == ds_tmp) {
+						return false;
+					}
+					ds = ds_tmp.copy();
+					///-------------------------------------------------------------------------------------//
 					int size_cnt = ds.getMembers().size();
 					m_Association.getDataSetValues(ds);
 					int m = 0;
 					boolean isStartReadMonData = true;
+					
 					for (int n = 0; n<size_cnt; n++) {
 						if(null == ds.getMembers().get(n).getChild("mag")) {
 							continue;
@@ -825,142 +899,192 @@
 						if(null != fc_mode){							
 							String fc_model_str = fc_mode.toString1();
 							//System.out.println("n:" + n + "\t" + fc_model_str);
-							if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn1.mag.f")) {//绗竴缁勭粍绔數鍘�
+							if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn1.mag.f")) {//绗竴缁勭粍绔數鍘�
+//							if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn1.mag.f")) {//绗竴缁勭粍绔數鍘�
 								m_FBS_VCData.groupvol[0] = ((BdaFloat32) fc_mode).getFloat();
 								//m_FBS_VCData.groupvol[0] = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn1.mag.f", Fc.MX);		//缁勭鐢靛帇
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn2.mag.f")) {//绗竴缁勭粍绔數娴�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn2.mag.f")) {//绗竴缁勭粍绔數娴�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn2.mag.f")) {//绗竴缁勭粍绔數娴�
 								m_FBS_VCData.battcurr[0] = ((BdaFloat32) fc_mode).getFloat();
 								//m_FBS_VCData.battcurr[0] = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn2.mag.f", Fc.MX);		//缁勭鐢垫祦
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn3.mag.f")) {//绗竴缁勫湪绾跨數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn3.mag.f")) {//绗竴缁勫湪绾跨數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn3.mag.f")) {//绗竴缁勫湪绾跨數鍘�
 								m_FBS_VCData.onlinevol[0] = ((BdaFloat32) fc_mode).getFloat();
 								//m_FBS_VCData.onlinevol[0] = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn3.mag.f", Fc.MX);		//鍦ㄧ嚎鐢靛帇
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn4.mag.f")) {//绗竴缁勯櫎纭ā鍧楃粍绔數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn4.mag.f")) {//绗竴缁勯櫎纭ā鍧楃粍绔數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn4.mag.f")) {//绗竴缁勯櫎纭ā鍧楃粍绔數鍘�
 								fod_state.VGroupVol_one = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VGroupVol_one = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn4.mag.f", Fc.MX);		//闄ょ~妯″潡1缁勭鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn5.mag.f")) {//绗竴缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn5.mag.f")) {//绗竴缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn5.mag.f")) {//绗竴缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
 								fod_state.VpeakVol_one = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VpeakVol_one = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn5.mag.f", Fc.MX);			//闄ょ~妯″潡1宄扮鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn6.mag.f")) {//绗簩缁勯櫎纭ā鍧楃粍绔數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn6.mag.f")) {//绗簩缁勯櫎纭ā鍧楃粍绔數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn6.mag.f")) {//绗簩缁勯櫎纭ā鍧楃粍绔數鍘�
 								fod_state.VGroupVol_two = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VGroupVol_two = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn6.mag.f", Fc.MX);		//闄ょ~妯″潡2缁勭鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn7.mag.f")) {//绗簩缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn7.mag.f")) {//绗簩缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn7.mag.f")) {//绗簩缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
 								fod_state.VpeakVol_two = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VpeakVol_two = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn7.mag.f", Fc.MX);			//闄ょ~妯″潡2宄扮鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn8.mag.f")) {//绗笁缁勯櫎纭ā鍧楃粍绔數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn8.mag.f")) {//绗笁缁勯櫎纭ā鍧楃粍绔數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn8.mag.f")) {//绗笁缁勯櫎纭ā鍧楃粍绔數鍘�
 								fod_state.VGroupVol_three = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VGroupVol_three = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn8.mag.f", Fc.MX);		//闄ょ~妯″潡3缁勭鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn9.mag.f")) {//绗笁缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn9.mag.f")) {//绗笁缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn9.mag.f")) {//绗笁缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
 								fod_state.VpeakVol_three = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VpeakVol_three = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn9.mag.f", Fc.MX);		//闄ょ~妯″潡3宄扮鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn10.mag.f")) {//绗洓缁勯櫎纭ā鍧楃粍绔數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn10.mag.f")) {//绗洓缁勯櫎纭ā鍧楃粍绔數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn10.mag.f")) {//绗洓缁勯櫎纭ā鍧楃粍绔數鍘�
 								fod_state.VGroupVol_four = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VGroupVol_four = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn10.mag.f", Fc.MX);		//闄ょ~妯″潡4缁勭鐢靛帇鍊�
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn11.mag.f")) {//绗洓缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn11.mag.f")) {//绗洓缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn11.mag.f")) {//绗洓缁勯櫎纭ā鍧楀嘲鍊肩數鍘�
 								fod_state.VpeakVol_four = ((BdaFloat32) fc_mode).getFloat();
 								//fod_state.VpeakVol_four = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn11.mag.f", Fc.MX);		//闄ょ~妯″潡4宄扮鐢靛帇鍊�
 							}
 							
 							/**************************** 璇诲彇鍧囪 渚涚數妯″潡淇℃伅 ****************************************/
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn12.mag.f")) { //渚涚數妯″潡鐗堟湰鍙�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn12.mag.f")) { //渚涚數妯″潡鐗堟湰鍙�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn12.mag.f")) { //渚涚數妯″潡鐗堟湰鍙�
 								fbs9100_jhpowerState.setDev_version(String.valueOf(((BdaFloat32) fc_mode).getFloat()));
 								//fbs9100_jhpowerState.setDev_version(String.valueOf(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn12.mag.f", Fc.MX)));	//鍧囪 渚涚數鐗堟湰鍙�
 							}
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn13.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn13.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn13.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數鍘�
 								fbs9100_jhpowerState.setInput_vol_total(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setInput_vol_total(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn13.mag.f", Fc.MX));
 							}
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn14.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數娴�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn14.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數娴�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn14.mag.f")) {//渚涚數妯″潡鎬昏緭鍏ョ數娴�
 								fbs9100_jhpowerState.setInput_curr_total(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setInput_curr_total(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn14.mag.f", Fc.MX));				//鎬昏緭鍏ョ數娴�
 								
 							}
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn15.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數鍘�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn15.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數鍘�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn15.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數鍘�
 								fbs9100_jhpowerState.setOutput_vol_total(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_total(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn15.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�
 							}
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn16.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數娴�
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn16.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數娴�
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn16.mag.f")) {//渚涚數妯″潡鎬昏緭鍑虹數娴�
 								fbs9100_jhpowerState.setOutput_curr_total(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_curr_total(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn16.mag.f", Fc.MX));				//鎬昏緭鍑虹數娴�
 							}
 							
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn17.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇1
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn17.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇1
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn17.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇1
 								fbs9100_jhpowerState.setOutput_vol_one(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_one(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn17.mag.f", Fc.MX));					//鎬昏緭鍑虹數鍘�1
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn18.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇2
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn18.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇2
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn18.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇2
 								fbs9100_jhpowerState.setOutput_vol_two(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_two(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn18.mag.f", Fc.MX));					//鎬昏緭鍑虹數鍘�2
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn19.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇3
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn19.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇3
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn19.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇3
 								fbs9100_jhpowerState.setOutput_vol_three(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_three(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn19.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�3
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn20.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇4
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn20.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇4
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn20.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇4
 								fbs9100_jhpowerState.setOutput_vol_four(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_four(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn20.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�4
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn21.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇5
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn21.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇5
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn21.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇5
 								fbs9100_jhpowerState.setOutput_vol_five(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_five(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn21.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�5
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn22.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇6
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn22.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇6
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn22.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇6
 								fbs9100_jhpowerState.setOutput_vol_six(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_six(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn22.mag.f", Fc.MX));					//鎬昏緭鍑虹數鍘�6
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn23.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇7
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn23.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇7
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn23.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇7
 								fbs9100_jhpowerState.setOutput_vol_seven(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_seven(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn23.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�7
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn24.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇8
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn24.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇8
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn24.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇8
 								fbs9100_jhpowerState.setOutput_vol_eight(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_eight(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn24.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�8
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn25.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇9
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn25.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇9
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn25.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇9
 								fbs9100_jhpowerState.setOutput_vol_nine(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_nine(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn25.mag.f", Fc.MX));				//鎬昏緭鍑虹數鍘�9
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn26.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇10
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn26.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇10
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn26.mag.f")) {//渚涚數妯″潡杈撳嚭鐢靛帇10
 								fbs9100_jhpowerState.setOutput_vol_ten(((BdaFloat32) fc_mode).getFloat());
 								//fbs9100_jhpowerState.setOutput_vol_ten(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn26.mag.f", Fc.MX));					//鎬昏緭鍑虹數鍘�10
 							}
-							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn27.mag.f")) {//渚涚數妯″潡鐜娓╁害
+							else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn27.mag.f")) {//渚涚數妯″潡鐜娓╁害
+//							else if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn27.mag.f")) {//渚涚數妯″潡鐜娓╁害
 								fbs9100_jhpowerState.setDev_temp(((BdaFloat32) fc_mode).getFloat() - 10);
 								//fbs9100_jhpowerState.setDev_temp(readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn27.mag.f", Fc.MX));						//鍧囪 妯″潡娓╁害
+							}else if (fc_model_str.contains("/btgGGIO") && fc_model_str.contains("AnIn28.mag.f")) {
+//							if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn28.mag.f")) {
+								//鍗楃憺褰撳墠鐐逛綅鍊间负float鏍煎紡
+								m_FBS_VCData.m_SysState.AlarmState = Math.round(((BdaFloat32)fc_mode).getFloat());
+								//m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX);	
 							}
-							
-							else if(fc_model_str.contains(FBSDeviceName + "/celGGIO1.AnIn")) {
+							else if(fc_model_str.contains("/celGGIO") && fc_model_str.contains("AnIn")) {
+//							else if(fc_model_str.contains(FBSDeviceName + "/celGGIO1.AnIn")) {
 								if(isStartReadMonData) {
 									m = n;
 									isStartReadMonData = false;
 								}
-								//鍗曚綋鏁版嵁								
-								if ((n >= m) && (n < (m + 24 * 1))) {
-									m_FBS_VCData.vol[n - m] = ((BdaFloat32) fc_mode).getFloat();
-								}
-								else if ((n >= (m + 24 * 1)) && (n < (m + 24 * 2))) {
-									m_FBS_VCData.res[n - (m + 24 * 1)] = ((BdaFloat32) fc_mode).getFloat();
-								}
-								else if ((n >= (m + 24 * 2)) && (n < (m + 24 * 3))) {
-									m_FBS_VCData.tmp[n - (m + 24 * 2)] = ((BdaFloat32) fc_mode).getFloat();
-								}
-								//璺宠繃鍓╀綑鍓╀綑瀹归噺
-								else if ((n >= (m + 24 * 4)) && (n < (m + 24 * 5))) {
-									m_FBS_VCData.mon_JH[n - (m + 24 * 4)] = ((BdaFloat32) fc_mode).getFloat();
+								
+								if(FBSDeviceName.contains("ZJDY")) {
+									//閿傜數鍗曚綋鏁扮洰
+									BattMonCount = 80;
+									//閿傜數BTS
+									if ((n >= m) && (n < (m + BattMonCount * 1))) {
+										m_FBS_VCData.vol[n - m] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + BattMonCount * 1)) && (n < (m + BattMonCount * 2))) {
+										m_FBS_VCData.tmp[n - (m + BattMonCount * 1)] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + BattMonCount * 2)) && (n < (m + BattMonCount * 3))) {
+										m_FBS_VCData.mon_restcap[n - (m + BattMonCount * 2)] = ((BdaFloat32) fc_mode).getFloat();
+									}
+								}else {
+									//鍗曚綋鏁版嵁[鍗楃憺鍗忚浆]								
+									if ((n >= m) && (n < (m + 24 * 1))) {
+										m_FBS_VCData.vol[n - m] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + 24 * 1)) && (n < (m + 24 * 2))) {
+										m_FBS_VCData.res[n - (m + 24 * 1)] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + 24 * 2)) && (n < (m + 24 * 3))) {
+										m_FBS_VCData.tmp[n - (m + 24 * 2)] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + 24 * 3)) && (n < (m + 24 * 4))) {
+										m_FBS_VCData.mon_restcap[n - (m + 24 * 3)] = ((BdaFloat32) fc_mode).getFloat();
+									}
+									else if ((n >= (m + 24 * 4)) && (n < (m + 24 * 5))) {
+										m_FBS_VCData.mon_JH[n - (m + 24 * 4)] = ((BdaFloat32) fc_mode).getFloat();
+									}
 								}
 							}
 							
@@ -981,7 +1105,8 @@
 							String fc_model_str = fc_mode_i.toString1();
 							//System.out.println("n:" + n + "\t" + fc_model_str);
 							// 鏂版坊鍔犵敤浜庢彁绀哄憡璀�(涓嶅惎鍔ㄦ牳瀹瑰師鍥�)
-							if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i")) {
+							if (fc_model_str.contains("/btgGGIO1.AnIn28.mag.i")) {
+//							if (fc_model_str.contains(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i")) {
 								m_FBS_VCData.m_SysState.AlarmState = (int) ((BdaInt64) fc_mode_i).getValue();
 								//m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX);	
 							}
@@ -990,43 +1115,102 @@
 					}
 					
 					//m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX);				//鏍稿鍚姩澶辫触鍘熷洜
-				
+					//System.err.println("############");
 					m_FBS_VCData.m_SysState.setCommCountInc();
-					ds = null;
+					ds = null;ds_tmp = null;
 				}
 				//System.err.println(m_FBS_VCData.m_SysState.ErrCommCount);
 				if(1 == (numberDevState%3)) {
 					//---------------------------------Log Level.TRACE-------------------------------------//
-					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm)", FBSDeviceName);
+					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsBtseYx)", FBSDeviceName);
 					//-------------------------------------------------------------------------------------//
-					String c[] = null;
-					DataSet ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm");
-					int size_cnt_stat = ds_stat.getMembers().size();
-					c = new String[size_cnt_stat];
-					String[] split = null;
-					split = new String[2];
-					m_Association.getDataSetValues(ds_stat);
-					String sb = null;
-					String temp = "%s";
-					//闄愬埗褰撳墠鍛婅涓暟
-					size_cnt_stat = 5;
-					for (int n = 0; n < size_cnt_stat; n++) {
-						//System.err.println(ds_stat.getMembers().get(n).getName());
-						FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
-						split = fc_mode.toString().split(": ");
-						c[n] = split[1];
-						if(n>0) {
-							temp += ",%s";
+					DataSet ds_stat = null;
+					DataSet ds_tmp = null;
+					
+					if(FBSDeviceName.contains("ZJDY")) {
+						//绱櫠鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm");						
+					}else {
+						//鍏辨祹鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYx");
+						
+						if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE2")) {
+							//娉扮鏍稿璁惧绗簩缁�,灏濊瘯閫氳繃娉扮闆嗗悎璇诲彇鐐逛綅淇℃伅
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsDevAlarmTwo");
+						}else if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE")) {
+							//娉扮鏍稿璁惧绗涓�缁�
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsDevAlarm");
+							//System.err.println("TEMPLATEBTSE/LLN0.dsDevAlarm:" + ds_tmp);
 						}
 					}
-					sb = String.format(temp, (Object[])c);
+					if(null == ds_tmp) {
+						return false;
+					}
+					ds_stat = ds_tmp.copy();				
+					
+					boolean[] alm  = new boolean[] {false,false,false,false,false};
+					int size_cnt = ds_stat.getMembers().size();
+					//System.out.println(FBSDeviceName + "/LLN0.dsDevState 鑺傜偣鏁�:"+size_cnt);
+					m_Association.getDataSetValues(ds_stat);
+					// 灞忚斀褰撳墠鏍硅妭鐐逛笅鏂版坊鍔犵殑ukey鍐呭
+					for (int n = 0; n < size_cnt; n++) {
+						//System.out.println(ds_stat.getMembers().get(n).getChild("stVal"));
+						if(null == ds_stat.getMembers().get(n).getChild("stVal")) {
+							//System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1());
+							continue;
+						}
+						FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
+						if(fc_mode instanceof BdaBoolean) {
+							//JTextField tf_t = (JTextField) data.getValueField();
+							System.out.println("n:"+n+" "+fc_mode.toString1() + "==" + ((BdaBoolean)fc_mode).getValue());
+							String fc_mode_str = fc_mode.toString1();
+							if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("Alm1")){
+//							if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm1")){
+								alm[0] = ((BdaBoolean)fc_mode).getValue();
+							}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("Alm2")){
+//							}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm2")){
+								alm[1] = ((BdaBoolean)fc_mode).getValue();
+							}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("Alm3")){
+//							}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm3")){
+								alm[2] = ((BdaBoolean)fc_mode).getValue();
+							}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("Alm4")){
+//							}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm4")){
+								alm[3] = ((BdaBoolean)fc_mode).getValue();
+							}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("Alm5")){
+//							}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm5")){
+								alm[4] = ((BdaBoolean)fc_mode).getValue();
+							}							
+						}else if(fc_mode instanceof BdaInt32){
+							String fc_mode_str = fc_mode.toString1();
+							if(fc_mode_str.contains("/ncdGGIO1") && fc_mode_str.contains("Alm1")){
+//								if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm1")){
+									alm[0] = ((BdaInt32)fc_mode).getValue()==1;
+								}else if(fc_mode_str.contains("/ncdGGIO1") && fc_mode_str.contains("Alm2")){
+//								}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm2")){
+									alm[1] = ((BdaInt32)fc_mode).getValue()==1;
+								}else if(fc_mode_str.contains("/ncdGGIO1") && fc_mode_str.contains("Alm3")){
+//								}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm3")){
+									alm[2] = ((BdaInt32)fc_mode).getValue()==1;
+								}else if(fc_mode_str.contains("/ncdGGIO1") && fc_mode_str.contains("Alm4")){
+//								}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm4")){
+									alm[3] = ((BdaInt32)fc_mode).getValue()==1;
+								}else if(fc_mode_str.contains("/ncdGGIO1") && fc_mode_str.contains("Alm5")){
+//								}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm5")){
+									alm[4] = ((BdaInt32)fc_mode).getValue()==1;
+									//System.out.println("alm[4]:"+alm[4]);
+								}
+						}
+					}				
+					
+					String sb = String.format("%b,%b,%b,%b,%b",alm[0],alm[1],alm[2],alm[3],alm[4]);
+					//System.err.println("last_dev_61850alam:" + sb);
 					m_FBS_VCData.m_SysState.last_dev_61850alam = m_FBS_VCData.m_SysState.dev_61850alam; // 璁板綍涓婁竴娆″憡璀︾姸鎬�
 					m_FBS_VCData.m_SysState.dev_61850alam = sb;
 	
 					checkEventChange(); // 璁板綍褰撳墠鐨勫憡璀�
 					//System.out.println(sb);
 					m_FBS_VCData.m_SysState.setCommCountInc();
-					ds_stat = null;
+					ds_stat = null;ds_tmp = null;  	//娓呯┖鍐呭瓨鏁版嵁
 				}
 				
 				if(2 == (numberDevState%3)) {
@@ -1034,12 +1218,35 @@
 					logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevState )", FBSDeviceName);
 					//-------------------------------------------------------------------------------------//
 					comm_res = true;
-					DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
+					DataSet ds = null;
+					DataSet ds_tmp = null;
+					if(FBSDeviceName.contains("ZJDY")) {
+						//绱櫠鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");						
+					}else {
+						//鍏辨祹鍗忚浆
+						ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
+						if(null == ds_tmp) {
+							//鍏煎鑰佺増鏈崗杞暟鎹�
+							ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc");						
+						}
+						if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE2")) {
+							//娉扮鏍稿璁惧绗簩缁�,灏濊瘯閫氳繃娉扮闆嗗悎璇诲彇鐐逛綅淇℃伅
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsMeasureTwo");
+						}else if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE")) {
+							//娉扮鏍稿璁惧绗涓�缁�
+							ds_tmp = m_ServerModel.getDataSet("TEMPLATEBTSE/LLN0.dsMeasure");
+						}
+					}
+					if(null == ds_tmp) {
+						return false;
+					}
+					ds = ds_tmp.copy();
 					int size_cnt = ds.getMembers().size();
 					//System.out.println(FBSDeviceName + "/LLN0.dsDevState 鑺傜偣鏁�:"+size_cnt);
 					m_Association.getDataSetValues(ds);
 					// 灞忚斀褰撳墠鏍硅妭鐐逛笅鏂版坊鍔犵殑ukey鍐呭
-					for (int n = 0; n < size_cnt && n < 120; n++) {
+					for (int n = 0; n < size_cnt; n++) {
 						if(null == ds.getMembers().get(n).getChild("mag") || null == ds.getMembers().get(n).getChild("mag").getChild("f")) {
 							//System.err.println(ds.getMembers().get(n).getChild("mag").toString1());
 							continue;
@@ -1047,9 +1254,10 @@
 						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")){
+						if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("StaNum.mag.f")){
+//						if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.StaNum.mag.f")){
 							int st = ((BdaFloat32) fc_mode).getFloat().intValue();
 							//int st = (int)readFloatNodeData(FBSDeviceName + "/ncdGGIO1.StaNum.mag.f", Fc.MX);
 							if (m_FBS_VCData.m_SysState.WorkState != st) {
@@ -1065,54 +1273,71 @@
 									FBS9100_TestTime.restarttime();
 								}
 							}
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn1.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn1.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn1.mag.f")){
 							m_FBS_VCData.m_SysState.CapTestStopType = ((BdaFloat32) fc_mode).getFloat().intValue();
 							//m_FBS_VCData.m_SysState.CapTestStopType = (int)readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn1.mag.f", Fc.MX);
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn2.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn2.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn2.mag.f")){
 							m_FBS_VCData.battcap[0] = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.battcap[0] = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn2.mag.f", Fc.MX);
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn59.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f")){
 							m_FBS_VCData.m_SysState.temp = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.temp = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f", Fc.MX);
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn55.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn55.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn55.mag.f")){
 							m_FBS_VCData.m_SysState.conresist = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.conresist = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn55.mag.f", Fc.MX);;
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn56.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn56.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn56.mag.f")){
 							m_FBS_VCData.m_SysState.concurr = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.concurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn56.mag.f", Fc.MX);;
-						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn57.mag.f")){
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn57.mag.f")){
+//						}else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn57.mag.f")){
 							m_FBS_VCData.m_SysState.condvoldp = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.condvoldp = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn57.mag.f", Fc.MX);;
-						}else if (fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f")){
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn59.mag.f")){
+//						}else if (fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f")){
 							m_FBS_VCData.m_SysState.temp = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.temp = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn59.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn58.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn58.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn58.mag.f")) {
 							m_FBS_VCData.m_SysState.condcurr = ((BdaFloat32) fc_mode).getFloat();
 							//m_FBS_VCData.m_SysState.condcurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.AnIn58.mag.f", Fc.MX);;
-						}else if(fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn60.mag.f")) {
+						}else if(fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn60.mag.f")) {
+//						}else if(fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn60.mag.f")) {
 							//m_FBS_VCData.m_SysState.resttest_count = readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn60.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn103.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn103.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn103.mag.f")) {
 							fod_state.WorkState_one = (int)((float)((BdaFloat32)fc_mode).getFloat());
 							//fod_state.WorkState_one = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn103.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn104.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn104.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn104.mag.f")) {
 							fod_state.RestTime_one = ((BdaFloat32) fc_mode).getFloat();
 							//fod_state.RestTime_one = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn104.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn105.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn105.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn105.mag.f")) {
 							fod_state.WorkState_two = (int)((float)((BdaFloat32)fc_mode).getFloat());
 							//fod_state.WorkState_two = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn105.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn106.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn106.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn106.mag.f")) {
 							fod_state.RestTime_two = ((BdaFloat32) fc_mode).getFloat();
 							//fod_state.RestTime_two = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn106.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn107.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn107.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn107.mag.f")) {
 							fod_state.WorkState_three = (int)((float)((BdaFloat32)fc_mode).getFloat());
 							//fod_state.WorkState_three = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn107.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn108.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn108.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn108.mag.f")) {
 							fod_state.RestTime_three = ((BdaFloat32) fc_mode).getFloat();
 							//fod_state.RestTime_three = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn108.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn109.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn109.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn109.mag.f")) {
 							fod_state.WorkState_four = (int)((float)((BdaFloat32)fc_mode).getFloat());
 							//fod_state.WorkState_four = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn109.mag.f", Fc.MX);
-						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn110.mag.f")) {
+						}else if (fc_mode_str.contains("/ncdGGIO") && fc_mode_str.contains("AnIn110.mag.f")) {
+//						}else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn110.mag.f")) {
 							fod_state.RestTime_four = ((BdaFloat32) fc_mode).getFloat();
 							//fod_state.RestTime_four = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn110.mag.f", Fc.MX);
 						}
@@ -1121,24 +1346,12 @@
 					m_FBS_VCData.m_SysState.setCommCountInc();
 					//----------------- 璇诲埌鐘舵�佹暟鎹悗鍐嶆洿鏂版暟鎹簱鏁版嵁 -------------------//
 					getFBS9100MonVolData(m_FBS_VCData);
-					ds = null;
+					ds = null;ds_tmp = null;
 				}
 				//m_FBS_VCData.m_SysState.resetErrCommCount();
 				
 			} else if (FBS9100_ComBase.CMD_SetDischargeParm == cmd) {
 				boolean write_res_t = true;
-				/******************************************************************************
-				if(true == write_res_t) {
-					try {
-						write_res_t = BTS_IEC61850_Write_SetMag_Node(FBSDeviceName+"/ncdGGIO1.Para1.setMag.f", 
-																		m_StatAndParam.m_FBS_DiscParam);
-					} catch (ServiceError e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-					}
-				}
-				sleep(1500);
- 				**************************************************************************/
 				if (true == write_res_t) {
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para1.setMag.f")) return false;
 					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para1.setMag.f", "SP",(float) m_StatAndParam.m_FBS_DiscParam.DisCurr);
@@ -1169,13 +1382,52 @@
 				//-------------------------------------------------------------------------------------//
 				comm_res = true;
 			} else if (FBS9100_ComBase.CMD_GetDischargeParm == cmd) {
-				DataSet ds_pm = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
+				DataSet ds_pm = null;
+				DataSet ds_tmp = null;
+				if(FBSDeviceName.contains("ZJDY")) {
+					//绱櫠鍗忚浆
+					ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");						
+				}else {
+					//鍏辨祹鍗忚浆
+					ds_tmp = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsBtseYc");
+					
+					
+					if(null == ds_tmp && FBSDeviceName.contains("TEMPLATEBTSE")) {					
+						ds_tmp = m_ServerModel.getDataSet(ZJDYCPSS + "/LLN0.dsCPSSAin1");
+						if(null != ds_tmp) {
+							isTaiKe = true;
+							
+							//娉扮鏍稿璁惧绗涓�缁刐璇诲彇鍙傛暟]
+							m_FBS_DiscParamFromDev.DisCurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
+							m_FBS_DiscParamFromDev.DisCap = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.HiTestBatAh.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.MonomerTmp_High = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.HiCelTemp.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.MonomerVol_LOW= readFloatNodeData(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.DCVolHighLimit = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.DCVolLimit.mag.f", Fc.MX);
+							m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
+							
+							ds_tmp = null;
+							//---------------------------------Log Level.DEBUG-------------------------------------//
+							logger.printf(Level.DEBUG, "DevIp:%s operate FBS9100_ComBase.CMD_GetDischargeParm, \n param:%s", 
+														FBSDeviceIp, m_FBS_DiscParamFromDev);
+							return true;
+						}
+						
+					}
+				}
+				
+				if(null == ds_tmp) {
+					return false;
+				}
+				ds_pm = ds_tmp.copy();
 				if(null != ds_pm && null !=  ds_pm.getMembers()) {
 					int size_cnt = ds_pm.getMembers().size();
 					m_Association.getDataSetValues(ds_pm);
-					//logger.printf(Level.DEBUG, "寮�濮嬭鍙栨斁鐢靛弬鏁�");
-					for (int n = 0; n < size_cnt && n < 10; n++) {
-						if(null == ds_pm.getMembers().get(n).getChild("mag")) {
+					logger.printf(Level.DEBUG, "寮�濮嬭鍙栨斁鐢靛弬鏁�");
+					for (int n = 0; n < size_cnt; n++) {
+						if(null == ds_pm.getMembers().get(n).getChild("mag").getChild("f")) {
+							System.out.println(ds_pm.getMembers().get(n).getChild("mag").toString());
 							continue;
 						}
 						
@@ -1183,11 +1435,17 @@
 						BasicDataBind<?> data = new Float32DataBind((BdaFloat32) fc_mode);
 						JTextField tf_t = (JTextField) data.getValueField();
 						String fc_model_str = fc_mode.toString1();
+						//logger.error(fc_model_str+"==:"+tf_t.getText());
 						if (fc_model_str.contains(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f")) {
 							m_FBS_DiscParamFromDev.DisCurr = Float.parseFloat(tf_t.getText());
 							//m_FBS_DiscParamFromDev.DisCurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f", Fc.MX);
 						///*/*鍏煎鐐归泦涓殑缁�2鍙傛暟涓虹粍1*/*/}else if (fc_model_str.contains(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f")) {
 						}else if (fc_model_str.contains("/cheGGIO1.HiTestTmhour.mag.f")) {
+							float dis_hour_t = Float.parseFloat(tf_t.getText());
+							dis_hour_t = dis_hour_t * 60;
+							m_FBS_DiscParamFromDev.DisTime = (int) dis_hour_t;
+							//m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
+						}else if (fc_model_str.contains("/cheGGIO2.HiTestTmhour.mag.f")) {
 							float dis_hour_t = Float.parseFloat(tf_t.getText());
 							dis_hour_t = dis_hour_t * 60;
 							m_FBS_DiscParamFromDev.DisTime = (int) dis_hour_t;
@@ -1202,6 +1460,9 @@
 						}else if (fc_model_str.contains("/cheGGIO1.LoBatVal.mag.f")) {
 							m_FBS_DiscParamFromDev.GroupVol_LOW = Float.parseFloat(tf_t.getText());
 							//m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
+						}else if (fc_model_str.contains("/cheGGIO2.LoBatVal.mag.f")) {
+							m_FBS_DiscParamFromDev.GroupVol_LOW = Float.parseFloat(tf_t.getText());
+							//m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
 						}else if (fc_model_str.contains(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f")) {
 							m_FBS_DiscParamFromDev.MonomerVol_LOW = Float.parseFloat(tf_t.getText());
 							//m_FBS_DiscParamFromDev.MonomerVol_LOW= readFloatNodeData(FBSDeviceName + "/ncdGGIO1.LoCelVol.mag.f", Fc.MX);
@@ -1212,11 +1473,25 @@
 							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);
 						}
 					}
-					ds_pm = null;
+					//System.out.println("m_FBS_DiscParamFromDev.DisTime:"+m_FBS_DiscParamFromDev.DisTime);
+					if(FBSDeviceName.contains("BTSE2")) {
+						//娴嬭瘯鏃堕暱[绗簩濂梋
+						m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO2.HiTestTmhour.mag.f", Fc.MX)*60);
+						//缁勭涓嬮檺
+						m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO2.LoBatVal.mag.f", Fc.MX);
+					}else{
+						//娴嬭瘯鏃堕暱[绗竴濂梋
+						m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
+						//缁勭涓嬮檺
+						m_FBS_DiscParamFromDev.GroupVol_LOW = readFloatNodeData(ZJDYCPSS + "/cheGGIO1.LoBatVal.mag.f", Fc.MX);
+					}
+					
+					ds_pm = null;ds_tmp = null;
 				}else {
+					
 					m_FBS_DiscParamFromDev.DisCurr = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.TestCurr.mag.f", Fc.MX);
 					m_FBS_DiscParamFromDev.DisTime = (int)(readFloatNodeData(ZJDYCPSS + "/cheGGIO1.HiTestTmhour.mag.f", Fc.MX)*60);
 					m_FBS_DiscParamFromDev.DisCap = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.HiTestBatAh.mag.f", Fc.MX);
@@ -1232,38 +1507,45 @@
 											FBSDeviceIp, m_FBS_DiscParamFromDev);
 				//-------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_Stop == cmd) {
-				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO1")) return false;
-				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO1.Oper", false);
+				
 				int count = 1;
 				if (m_FBS_VCData.m_SysState.WorkState == 2 || m_FBS_VCData.m_SysState.WorkState == 3) {
-					count = 6;
+					count = 6;  //鍋滄鏍稿娴嬭瘯
+					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO1")) return false;
+					comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO1.Oper", false);
 				} else if (m_FBS_VCData.m_SysState.WorkState == 1) {
 					count = 7;
 				} else if (m_FBS_VCData.m_SysState.WorkState == 5) {
-					count = 8;
+					count = 8;  //鍋滄KD娴嬭瘯
+					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO3")) return false;
+					comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO3.Oper", false);
+				} else if (m_FBS_VCData.m_SysState.WorkState == 4) {
+					count = 8;  //鍋滄鍐呴樆娴嬭瘯
+					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO2")) return false;
+					comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO2.Oper", false);
 				}
-				comm_res = checkMakeSuccess(count);
+				//comm_res = checkMakeSuccess(count);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Stop, res:%b", FBSDeviceIp, comm_res);
 				//-------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_StartDischarge == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO1")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO1.Oper", true);
-				comm_res = checkMakeSuccess(0);
+				//comm_res = checkMakeSuccess(0);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s DevId:%d operate FBS9100_ComBase.CMD_StartDischarge, res:%b", FBSDeviceIp,m_FBSDevId, comm_res);
 				//-------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_StartResDischarge == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO2")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO2.Oper", true);
-				comm_res = checkMakeSuccess(2);
+				//comm_res = checkMakeSuccess(2);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartResDischarge, res:%b", FBSDeviceIp, comm_res);
 				//-------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_StartKIDI == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO3")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO3.Oper", true);
-				comm_res = checkMakeSuccess(1);
+				//comm_res = checkMakeSuccess(1);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartKIDI, res:%b", FBSDeviceIp, comm_res);
 				//-------------------------------------------------------------------------------------//
@@ -1523,7 +1805,7 @@
 					comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO9.Oper", true); // 妯″潡41闄ょ~
 				}break;
 				}
-				comm_res = checkMakeSuccess(3);
+				//comm_res = checkMakeSuccess(3);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Start_FODCL_test, "
 								+ "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
@@ -1556,7 +1838,7 @@
 						comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO13.Oper", false);
 					}break;
 				}
-				comm_res = checkMakeSuccess(9);
+				//comm_res = checkMakeSuccess(9);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Stop_FOD_test, "
 								+ "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
@@ -1580,7 +1862,7 @@
 					comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO13.Oper", true);
 				}break;
 				}
-				comm_res = checkMakeSuccess(4);
+				//comm_res = checkMakeSuccess(4);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_Start_FODYH_test, "
 								+ "battgroup_num:%d, res:%b", FBSDeviceIp, m_StatAndParam.clParam.GroupNum, comm_res);
@@ -1638,14 +1920,14 @@
 			} else if (FBS9100_ComBase.CMD_StartOffLineYH == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO14")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO14.Oper", true);
-				comm_res = checkMakeSuccess(5);
+				//comm_res = checkMakeSuccess(5);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StartOffLineYH, res:%b", FBSDeviceIp, comm_res);
 				//------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_StopOffLineYH == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO14")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO14.Oper", false);
-				comm_res = checkMakeSuccess(10);
+				//comm_res = checkMakeSuccess(10);
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_StopOffLineYH, res:%b", FBSDeviceIp, comm_res);
 				//------------------------------------------------------------------------------------//
@@ -1767,6 +2049,7 @@
 		}
 		int okcount = 0;
 		for (int i = 0; i < 85; i++) {
+			//鍗楃憺涓棿鍗忚浆鏃犲綋鍓嶇偣浣嶆敞閲婅皟鐢�
 			//System.out.println("楠岀鏍¢獙杩斿洖signOpRes:" + readInt64NodeData(FBSDeviceName + "/btgGGIO1.signOpRes.mag.i", Fc.MX));
 			int value = (int) (readInt64NodeData(FBSDeviceName + "/ncdGGIO1.AnIn119.mag.i", Fc.MX));
 			if ((value & MyUtil.power(2, count)) == MyUtil.power(2, count)) {
@@ -1835,7 +2118,7 @@
 				logger.info("鍐欏叆绛惧悕:"+signature);
 				writeNodeDataString(FBSDeviceName+"/btgGGIO1.sign.setVal", "SP",signature);
 				//writeNodeDataString(FBSDeviceName+"/ncdGGIO1.sign.setVal", "SP",signature);
-				Thread.sleep(900);
+				Thread.sleep(1500);
 				return true;
 			}
 			//writeNodeDataString(FBSDeviceName+"/ncdGGIO1.sign.setVal", "SP",m_StatAndParam.publicKeyY);
@@ -2053,6 +2336,7 @@
 						m_RTData[n].al_MonVol.get(index).monRes = (float) vc_data.res[mon_index];
 						m_RTData[n].al_MonVol.get(index).monTmp = (float) vc_data.tmp[mon_index];
 						m_RTData[n].al_MonVol.get(index).mon_JH_curr = (float) vc_data.mon_JH[mon_index];
+						m_RTData[n].al_MonVol.get(index).mon_rest_cap = (float) vc_data.mon_restcap[mon_index];
 
 						mon_index++;
 					}
@@ -2153,7 +2437,7 @@
 	 * @param agree
 	 * @return
 	 */
-	public static String getUKEYRootDomStr(String agree) {		
+	public String getUKEYRootDomStr(String agree) {		
 		String str1=agree.substring(0, agree.indexOf("BTSE"));
 		/**
 		 * @lijun 鍏煎浣涘北涓夋湡鐗堟湰锛岀鍚嶄腑鐨凚TSE璺緞涓�鎷栦竴鍜屼竴鎷栦簩鍧囦负BTSE
@@ -2161,15 +2445,45 @@
 //		if(str1.length() > 0) {
 //			return "BTSE";
 //		}
-	    return agree.substring(str1.length(), agree.length());
+		
+		//鍏煎姝e父1鎵�2
+		if((null != m_RTData[0]) && (m_RTData[0].sign_type == Sign_Type_InTow)) {			
+			return agree.substring(str1.length(), agree.length());
+		}else {
+			return "BTSE";
+		}
+		
 	}
 	
 	public static void main(String[] args) {
-		System.out.println(getUKEYRootDomStr("ZJDYBTSE2"));
+		//System.out.println(getUKEYRootDomStr("ZJDYBTSE2"));
 		String btsid = "1234567890BTSE/ncdGGIO1.SPCSO2";
 		String keyid = "37395256AD72043037395256AD720430";
-		
 		System.out.println(createSignature(btsid, keyid));
+		
+		
+		MysqlConnPool pool = new MysqlConnPool("127.0.0.1", 3360, 10);
+		BTS_61850_SocketClient ce = new BTS_61850_SocketClient(pool, new FBS9100_StatAndParam("127.0.01", 618500001), new BattData_RT_Array(new AppConfig(), new AppParam(), pool) , null);
+		ce.m_RTData[0] = new BattData_RT(new AppConfig(), new AppParam(), pool);
+		ce.m_RTData[0].sign_type = 0;
+		
+		
+		System.out.println(ce.getUKEYRootDomStr("ZJDYBTSE2"));
+		
+		boolean[] a  = new boolean[] {false,true,false};
+		String format1 = String.format("%b,%b,%b",a[0],a[1],a[2] );
+		System.out.println(format1);
+		
+		String ZJDYCPSS = "";
+		String FBSDeviceName = "ZJDYBTSE2";
+		if(FBSDeviceName.indexOf("BTSE2")>0) {
+			//閫傞厤鍚勪釜涓嶅悓鍗忚鍚嶇О鐨�61850璁惧閫氫俊[璇诲彇鏀剧數鍙傛暟鏃剁敤鍒癩
+			ZJDYCPSS = FBSDeviceName.replace("BTSE2", "CPSS");
+		}else if(FBSDeviceName.indexOf("BTSE")>0) {
+			//閫傞厤鍚勪釜涓嶅悓鍗忚鍚嶇О鐨�61850璁惧閫氫俊[璇诲彇鏀剧數鍙傛暟鏃剁敤鍒癩
+			ZJDYCPSS = FBSDeviceName.replace("BTSE", "CPSS");
+		}
+		System.out.println(ZJDYCPSS);
 	}
 
 	/*********************************************************************************************/

--
Gitblit v1.9.1