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);