From 9098277057ab1edfc7de489538214cd736c84ec2 Mon Sep 17 00:00:00 2001
From: DELL <DELL@WIN-3EOIPEE9ML1>
Date: 星期三, 24 一月 2024 16:35:44 +0800
Subject: [PATCH] V3.6.103 edit by lijun	@  2024-01-24 	1.新增远程重启设备相应判断,判断设备的ukey校验返回结果 	2.遥调遥控命令新增失败返回结果,操作失败后op_cmd_ack = -1

---
 iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java |  192 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 131 insertions(+), 61 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..34b4a18 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
@@ -230,6 +230,8 @@
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetDischargeParmAck;
 							
 								test_Param.copyBTS61850Param(m_StatAndParam.m_FBS_DiscParam);
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_Start == m_FBS_DiscParam.op_cmd) {
 							logger.printf(Level.DEBUG, "FBS9100_ComBase.CMD_Start for Dev ip:%s", FBSDeviceIp);
@@ -237,6 +239,8 @@
 							if (true == BTS_IEC61850_SocketComm(cmd)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_StartAck;
 							} else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
+								
 								if(cmd == FBS9100_ComBase.CMD_StartDischarge) {
 									int errcode = (int) (readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX));
 									logger.debug("Dev ip:"+m_StatAndParam.dev_ipaddr + ": failed to start cap test, errcode:" + errcode);
@@ -245,6 +249,8 @@
 						} else if (FBS9100_ComBase.CMD_Stop == m_FBS_DiscParam.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_Stop)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_StopAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_GetDischargeParm == m_FBS_DiscParam.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_GetDischargeParm)) {
@@ -264,10 +270,14 @@
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetIp)) {
 
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetIpAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_SetIpNow == m_FBS_DiscParam.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetIpNow)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetIpAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_GetOffLineYHParam == m_FBS_DiscParam.op_cmd) {
 							// 璇诲彇绂荤嚎鍏绘姢鍙傛暟
@@ -287,25 +297,35 @@
 								m_StatAndParam.bts61850_OffLineYHPlan.copyOffLineYHData(m_FBS_DiscParam);
 								m_StatAndParam.bts61850_OffLineYHPlan.successCount = 0; // 閲嶇疆鎴愬姛娆℃暟
 								FBS9100_Task_Thread_SQL.updateBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_StartOffLineYH == m_FBS_DiscParam.op_cmd) {
 							// 鍚姩绂荤嚎鍏绘姢
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_StartOffLineYH)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_StartOffLineYH_ACK;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_StopOffLineYH == m_FBS_DiscParam.op_cmd) {
 							// 鍋滄绂荤嚎鍏绘姢
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_StopOffLineYH)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_StopOffLineYH_ACK;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_ResetSystem == m_FBS_DiscParam.op_cmd) {
 							// 閲嶅惎绯荤粺
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_ResetSystem)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_ResetSystemAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if(FBS9100_ComBase.CMD_UpdateXZTime == m_FBS_DiscParam.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_UpdateXZTime)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_UpdateXZTimeAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						}
 
@@ -323,11 +343,15 @@
 							// 璁剧疆绯荤粺鍙傛暟
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetSYSSetParam)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetSYSSetParamAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_ClearSysAlarm == m_FBS_SysParam.op_cmd) {
 							// 娓呴櫎鍛婅
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_ClearSysAlarm)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_ClearSysAlarm_ACK;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if(FBS9100_ComBase.CMD_GetJuHengParam == m_FBS_SysParam.op_cmd) {
 							//鑾峰彇鍧囪 鍙傛暟
@@ -339,6 +363,8 @@
 							//璁剧疆鍧囪 鍙傛暟
 							if(true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetJuHengParam)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetJuHengParamAck;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						}
 						FBS9100_Task_Thread_SQL.updateFbs9100SysParamCmdBydev_id(m_ConnPool, m_StatAndParam);
@@ -357,18 +383,26 @@
 						} else if (FBS9100_ComBase.CMD_WriteFodParam == cl_param.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_WriteFodParam)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_WriteFodParamSus;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_Start_FODCL_test == cl_param.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_Start_FODCL_test)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_Start_FODCL_testSus;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_Stop_FOD_test == cl_param.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_Stop_FOD_test)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_Stop_FOD_testSus;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						} else if (FBS9100_ComBase.CMD_Start_FODYH_test == cl_param.op_cmd) {
 							if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_Start_FODYH_test)) {
 								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_Start_FODYH_testSus;
+							}else {
+								m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
 							}
 						}
 						FBS9100_Task_Thread_SQL.updateCL9100SetParamCmdBydev_id(m_ConnPool, m_StatAndParam);
@@ -529,11 +563,11 @@
 	 * @throws IOException
 	 * @throws ServiceError
 	 *******************************************************************************************/
-	public void writeNodeData(String reference, String fc_str, double disCurr) {
+	public boolean writeNodeData(String reference, String fc_str, double disCurr) {
 		FcModelNode fcModelNode = (FcModelNode) m_ServerModel.findModelNode(reference, Fc.fromString(fc_str));
 		if (null == fcModelNode) {
 			logger.error(reference+"writeNodeData error, no modenode was found....." + reference);
-			return;
+			return false;
 		}
 
 		try {
@@ -545,10 +579,11 @@
 			data.write();
 			m_Association.setDataValues(fcModelNode);
 			m_FBS_VCData.m_SysState.resetErrCommCount();
+			return true;
 		} catch (ServiceError | IOException e) {
 			logger.error(e.toString(), e);
 			m_FBS_VCData.m_SysState.addErrCommCount();
-			return;
+			return false;
 		}
 	}
 	
@@ -572,20 +607,20 @@
 		}
 	}
 
-	public void writeNodeData_Int64(String reference, String fc_str, long dat) {
+	public boolean writeNodeData_Int64(String reference, String fc_str, long dat) {
 		FcModelNode fcModelNode = (FcModelNode) m_ServerModel.findModelNode(reference, Fc.fromString(fc_str)).copy();
 		if (null == fcModelNode) {
 			logger.error("writeNodeDataInt error, no modenode was found.....");
-			return;
+			return false;
 		}
 
 		try {
 			((BdaInt64)fcModelNode).setValue(dat);
 			m_Association.setDataValues(fcModelNode);
-
+			return true;
 		} catch (ServiceError | IOException e) {
 			logger.error(e.toString(), e);
-			return;
+			return false;
 		}
 	}
 	
@@ -617,12 +652,12 @@
 		}
 	}
 	
-	public void writeNodeDataInt(String reference, String fc_str, long disCurr) {
+	public boolean writeNodeDataInt(String reference, String fc_str, long disCurr) {
 		FcModelNode fcModelNode = (FcModelNode) m_ServerModel.findModelNode(reference, Fc.fromString(fc_str));
 		if (null == fcModelNode) {
 			logger.error("writeNodeDataInt error, no modenode was found.....");
 			m_FBS_VCData.m_SysState.addErrCommCount();
-			return;
+			return false;
 		}
 
 		try {
@@ -634,10 +669,11 @@
 			data.write();
 			m_Association.setDataValues(fcModelNode);
 			m_FBS_VCData.m_SysState.resetErrCommCount();
+			return false;
 		} catch (ServiceError | IOException e) {
 			logger.error(e.toString(), e);
 			m_FBS_VCData.m_SysState.addErrCommCount();
-			return;
+			return false;
 		}
 	}
 
@@ -1141,25 +1177,25 @@
  				**************************************************************************/
 				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);
+					comm_res = writeNodeData(FBSDeviceName + "/ncdGGIO1.Para1.setMag.f", "SP",(float) m_StatAndParam.m_FBS_DiscParam.DisCurr);
 					float dis_hour_t = m_StatAndParam.m_FBS_DiscParam.DisTime;
 					dis_hour_t = dis_hour_t / 60;
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para2.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para2.setMag.f", "SP", (float) dis_hour_t);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para2.setMag.f", "SP", (float) dis_hour_t);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para3.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para3.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.DisCap);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para3.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.DisCap);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para4.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para4.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.getMonomerLowCount());
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para4.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.getMonomerLowCount());
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para5.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para5.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.GroupVol_LOW);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para5.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.GroupVol_LOW);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para6.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para6.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.MonomerVol_LOW);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para6.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.MonomerVol_LOW);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para7.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para7.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.MonomerTmp_High);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para7.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.MonomerTmp_High);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/btgGGIO1.Para1.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/btgGGIO1.Para1.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.ChargeCurrSet);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/btgGGIO1.Para1.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.ChargeCurrSet);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/btgGGIO1.Para2.setMag.f")) return false;
-					writeNodeData(FBSDeviceName + "/btgGGIO1.Para2.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.DCVolHighLimit);
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/btgGGIO1.Para2.setMag.f", "SP",	(float) m_StatAndParam.m_FBS_DiscParam.DCVolHighLimit);
 					
 					//sleep(2000);
 				}
@@ -1167,7 +1203,7 @@
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_SetDischargeParm, \n param:%s", 
 											FBSDeviceIp, m_FBS_DiscParamFromDev);
 				//-------------------------------------------------------------------------------------//
-				comm_res = true;
+				//comm_res = true;
 			} else if (FBS9100_ComBase.CMD_GetDischargeParm == cmd) {
 				DataSet ds_pm = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevState");
 				if(null != ds_pm && null !=  ds_pm.getMembers()) {
@@ -1309,13 +1345,13 @@
 				// System.out.println("ip锛�"+ip);
 				long ipWG = Long.parseLong(StringipWG.toString());
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para8.setMag.i")) return false;
-				writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para8.setMag.i", "SP", ip);
+				comm_res = writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para8.setMag.i", "SP", ip);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para9.setMag.i")) return false;
-				writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para9.setMag.i", "SP", ipWG);
+				comm_res = comm_res&&writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para9.setMag.i", "SP", ipWG);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para10.setMag.i")) return false;
-				writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para10.setMag.i", "SP", ipYM);
+				comm_res = comm_res&&writeNodeDataInt(FBSDeviceName + "/ncdGGIO1.Para10.setMag.i", "SP", ipYM);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO5")) return false;
-				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO5.Oper", (FBS9100_ComBase.CMD_SetIp==cmd));
+				comm_res = comm_res&&BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO5.Oper", (FBS9100_ComBase.CMD_SetIp==cmd));
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_SetIp, op_bool:%b, "
 											+ "newip:%ld, netmask:%ld, gateway:%ld", 
@@ -1436,66 +1472,66 @@
 				//-------------------------------------------------------------------------------------//
 			} else if (FBS9100_ComBase.CMD_WriteFodParam == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para12.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para12.setMag.f", "SP",
+				comm_res = writeNodeData(FBSDeviceName + "/ncdGGIO1.Para12.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.STDCap_one);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para13.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para13.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para13.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.FloatVol_one);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para14.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para14.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para14.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.Strength_one);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para15.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para15.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para15.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.YHStrength_one);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para16.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para16.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para16.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.TimeLong_one);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para18.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para18.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para18.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.STDCap_two);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para19.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para19.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para19.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.FloatVol_two);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para20.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para20.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para20.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.Strength_two);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para21.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para21.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para21.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.YHStrength_two);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para22.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para22.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para22.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.TimeLong_two);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para24.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para24.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para24.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.STDCap_three);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para25.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para25.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para25.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.FloatVol_three);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para26.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para26.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para26.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.Strength_three);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para27.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para27.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para27.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.YHStrength_three);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para28.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para28.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para28.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.TimeLong_three);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para30.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para30.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para30.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.STDCap_four);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para31.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para31.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para31.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.FloatVol_four);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para32.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para32.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para32.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.Strength_four);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para33.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para33.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para33.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.YHStrength_four);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para34.setMag.f"));
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para34.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para34.setMag.f", "SP",
 						(float) m_StatAndParam.clParam.TimeLong_four);
-				comm_res = true;
+				//comm_res = true;
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_WriteFodParam, \n param:%s", 
 											FBSDeviceIp, m_StatAndParam.clParam);
@@ -1614,19 +1650,19 @@
 				if (true == write_res_t) {
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para35.setMag.f")) return false;
 					// 绂荤嚎鍏绘姢鍛ㄦ湡
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para35.setMag.f", "SP",
+					comm_res = writeNodeData(FBSDeviceName + "/ncdGGIO1.Para35.setMag.f", "SP",
 							(float) m_StatAndParam.m_FBS_DiscParam.OffLineYH_Cycle);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para36.setMag.f"));
 					// 鍦ㄧ嚎鍘嬩綆
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para36.setMag.f", "SP",
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para36.setMag.f", "SP",
 							(float) m_StatAndParam.m_FBS_DiscParam.OnLineVol_Low);
 					sleep(1500);
 					if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para7.setMag.f"));
 					// 鍗曚綋娓╁害涓婇檺
-					writeNodeData(FBSDeviceName + "/ncdGGIO1.Para7.setMag.f", "SP",
+					comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para7.setMag.f", "SP",
 							(float) m_StatAndParam.m_FBS_DiscParam.MonomerTmp_High);
 				}
-				comm_res = true;
+				//comm_res = true;
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_SetOffLineYHParam:" 
 										+ " OffLineYH_Cycle:%d, OnLineVol_Low:%1.1fV, MonomerTmp_High:%1.3f鈩�",
@@ -1652,6 +1688,8 @@
 			} else if (FBS9100_ComBase.CMD_ResetSystem == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SPCSO4")) return false;
 				comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName + "/ncdGGIO1.SPCSO4.Oper", true);
+				//鍒ゆ柇鏈�缁堥獙绛鹃獙璇佺粨鏋�
+				comm_res = checkSysRestartState();
 				//---------------------------------Log Level.WARN-------------------------------------//
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_ResetSystem, res:%b", FBSDeviceIp, comm_res);
 				//------------------------------------------------------------------------------------//
@@ -1681,30 +1719,30 @@
 			} else if (FBS9100_ComBase.CMD_SetSYSSetParam == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para37.setMag.f"));
 				// 鐢靛帇杩囦綆闃�鍊�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para37.setMag.f", "SP",
+				comm_res = writeNodeData(FBSDeviceName + "/ncdGGIO1.Para37.setMag.f", "SP",
 						(float) m_FBS_SysParam.POF_BG_Boost_VolStart);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para38.setMag.f"));
 				// 鐢靛帇杩囬珮闃�鍊�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para38.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para38.setMag.f", "SP",
 						(float) m_FBS_SysParam.POF_BG_Boost_VolStop);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para39.setMag.f"));
 				// 鐢垫祦寮傚父闃�鍊�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para39.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para39.setMag.f", "SP",
 						(float) m_FBS_SysParam.PowerBreakChargeCurr);
 
 				sleep(1500);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para40.setMag.f"));
 				// 娴厖鐢垫祦闃�鍊�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para40.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para40.setMag.f", "SP",
 						((float) m_FBS_SysParam.CurrentTyte) / 10);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para41.setMag.f"));
 				// 鍦ㄧ嚎鐢靛帇浣庨榾鍊�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para41.setMag.f", "SP",
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para41.setMag.f", "SP",
 						((float) m_FBS_SysParam.GroupVolSorce) / 10);
 				sleep(1500);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.Para42.setMag.f"));
 				// 璁剧疆涓讳粠鏈烘ā寮�
-				writeNodeData(FBSDeviceName + "/ncdGGIO1.Para42.setMag.f", "SP", ((float) m_FBS_SysParam.MonomerOrder));
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/ncdGGIO1.Para42.setMag.f", "SP", ((float) m_FBS_SysParam.MonomerOrder));
 				
 				
 				comm_res = true;
@@ -1733,23 +1771,22 @@
 			}else if(FBS9100_ComBase.CMD_SetJuHengParam == cmd) {
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/btgGGIO1.Para3.setMag.f"));
 				//鍧囪 鍔熻兘鍚敤鐘舵��
-				writeNodeData(FBSDeviceName + "/btgGGIO1.Para3.setMag.f", "SP",	m_FBS_SysParam.JunHeng_Enabled*1000);
+				comm_res = writeNodeData(FBSDeviceName + "/btgGGIO1.Para3.setMag.f", "SP",	m_FBS_SysParam.JunHeng_Enabled*1000);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/btgGGIO1.Para4.setMag.f"));
 				//鍧囪 鍋滄鐢靛帇闃�鍊�
-				writeNodeData(FBSDeviceName + "/btgGGIO1.Para4.setMag.f", "SP",(float)m_FBS_SysParam.JunHeng_StVol);
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/btgGGIO1.Para4.setMag.f", "SP",(float)m_FBS_SysParam.JunHeng_StVol);
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/btgGGIO1.Para5.setMag.f"));
 				//鍧囪 鍋滄鐢垫祦闃�鍊�
-				writeNodeData(FBSDeviceName + "/btgGGIO1.Para5.setMag.f", "SP",(float)m_FBS_SysParam.JunHeng_StCurr);
+				comm_res = comm_res&&writeNodeData(FBSDeviceName + "/btgGGIO1.Para5.setMag.f", "SP",(float)m_FBS_SysParam.JunHeng_StCurr);
 			
 			}else if(FBS9100_ComBase.CMD_UpdateXZTime == cmd) {
 				long time_l = Long.parseLong(Com.get_DTF(m_StatAndParam.m_FBS_DiscParam.OffLineYHstarttime, Com.DTFYMDhms));
 				if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName)+"/ncdGGIO1.SysTime_SYS.setMag.i"));
-				writeNodeData_Int64(FBSDeviceName + "/ncdGGIO1.SysTime_SYS.setMag.i", "SP",time_l);
+				comm_res = writeNodeData_Int64(FBSDeviceName + "/ncdGGIO1.SysTime_SYS.setMag.i", "SP",time_l);
 				logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_UpdateXZTime , SetTime:"+Com.getDateTimeFormat(m_StatAndParam.m_FBS_DiscParam.OffLineYHstarttime, Com.DTFYMDhms), FBSDeviceIp);
 			}
-			comm_res = true;
+			//comm_res = true;
 		} catch (Exception e) {
-			// TODO Auto-generated catch block
 			logger.error(e.toString(), e);
 			
 			m_FBS_VCData.m_SysState.setErrCommCountInc(0);
@@ -1788,6 +1825,39 @@
 		}
 		return success;
 	}
+	
+	//鍒ゆ柇鎿嶄綔楠岀杩斿洖缁撴灉
+	public boolean checkSysRestartState() {		
+		boolean success = false;
+		try {
+			Thread.sleep(500);
+		} catch (InterruptedException e1) {
+			logger.error(e1.toString(), e1);
+		}
+		int okcount = 0;
+		for (int i = 0; i < 55; i++) {
+			int value = (int) (readInt64NodeData(FBSDeviceName + "/btgGGIO1.signOpRes.mag.i", Fc.MX));
+			System.out.println("signOpRes====="+value);
+			if (value == 1) {
+				//logger.error(m_FBS_SysParam.dev_id+":"+count+"鎿嶄綔缁撴灉锛�" + value+"==="+MyUtil.power(2, count)+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
+				okcount++;
+				if (okcount >= 3) {
+					// System.out.println("鏍¢獙鎴愬姛===="+i);
+					success = true;
+					break;
+				}
+			} else {
+				okcount = 0;
+			}
+			try {
+				sleep(100);
+			} catch (InterruptedException e) {
+				logger.error(e.toString(), e);
+			}
+		}
+		return success;
+	}
+	
 
 	// int min = Arrays.stream(m_FBS_VCData.vol).min().getAsInt();
 	// System.out.println(min);

--
Gitblit v1.9.1