V3.6.103 edit by lijun	@  2024-01-24
1.新增远程重启设备相应判断,判断设备的ukey校验返回结果
2.遥调遥控命令新增失败返回结果,操作失败后op_cmd_ack = -1
13个文件已修改
210 ■■■■■ 已修改文件
iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_ComBase.class 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/BTS_61850_SocketClient.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_ComBase.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class
Binary files differ
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/BTS_61850_SocketClient.class
Binary files differ
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_ComBase.class
Binary files differ
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.class
Binary files differ
iec61850_forFoShanAES_Model/bin/com/dec/fbs9100/main_BTS_APP_IEC61850.class
Binary files differ
iec61850_forFoShanAES_Model/bin/com/version_inf/version_inf.txt
@@ -4,6 +4,10 @@
    注意当前版本在设置紫晶组2的61850协转签名时用的     BTSE/
    
    
V3.6.103 edit by lijun    @  2024-01-24
    1.新增远程重启设备相应判断,判断设备的ukey校验返回结果
    2.遥调遥控命令新增失败返回结果,操作失败后op_cmd_ack = -1
V3.6.102 edit by lijun    @  2023-08-16
    1.修复工厂内部组2读取参数"核容时长"和"组端下限"点位目前仍然读取的组1上的参数切记
    2.新增远程同步时间功能
iec61850_forFoShanAES_Model/bin/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>192.168.10.79</mysql_server_ip>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
iec61850_forFoShanAES_Model/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>192.168.10.79</mysql_server_ip>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
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);
@@ -1789,6 +1826,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);
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_ComBase.java
@@ -6,6 +6,7 @@
    public static final int     MonomerCountMax                    =    480;
    //----------------------------------------------------------------------------
    public static final int     CMD_NULL                        =    0x00;
    public static final int     CMD_FAIL                        =    -1;            //执行失败
    //----------------------------------------------------------------------------
    //------------ ������������FBS9100������ ------------------------------------------------
    public static final int     CMD_ResetSystem                    =     0x10;
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
@@ -914,6 +914,7 @@
                || (param.op_cmd == FBS9100_ComBase.CMD_StopOffLineYH_ACK)
                || (param.op_cmd == FBS9100_ComBase.CMD_ResetSystemAck)
                || (param.op_cmd == FBS9100_ComBase.CMD_UpdateXZTimeAck)
                || (param.op_cmd == FBS9100_ComBase.CMD_FAIL)
        ) 
        {
            String sql_str_base = Sql_Mysql.FBS9100SetParam_Table + " SET "
@@ -945,6 +946,7 @@
                || (param.op_cmd == FBS9100_ComBase.CMD_WriteFodParamSus) 
                || (param.op_cmd == FBS9100_ComBase.CMD_Start_FODCL_testSus    )
                || (param.op_cmd == FBS9100_ComBase.CMD_Start_FODYH_testSus    )
                || (param.op_cmd == FBS9100_ComBase.CMD_FAIL    )
                || (param.op_cmd == FBS9100_ComBase.CMD_Stop_FOD_testSus)) 
        {
            String sql_str_base = Sql_Mysql.FBS9100SetDLParam_Table + " SET "
@@ -1385,6 +1387,7 @@
        if(param.op_cmd == FBS9100_ComBase.CMD_ClearSysAlarm_ACK ||
                param.op_cmd == FBS9100_ComBase.CMD_SetSYSSetParamAck || 
                param.op_cmd == FBS9100_ComBase.CMD_GetJuHengParamAck || 
                param.op_cmd == FBS9100_ComBase.CMD_FAIL ||
                param.op_cmd == FBS9100_ComBase.CMD_SetJuHengParamAck ) 
        {
            String sql_str_base = Sql_Mysql.FBS9100SysParam_Table + " SET "
iec61850_forFoShanAES_Model/src/com/dec/fbs9100/main_BTS_APP_IEC61850.java
@@ -28,7 +28,7 @@
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 6.102;
    public final static double m_VersionNum = 6.103;
    public final static String m_Version = "Welcome To Use BattMonitor_BTS_IEC61850 V" 
                                            + m_VersionNum + " RC_20201003";
    /**************************************************************************/
iec61850_forFoShanAES_Model/src/com/version_inf/version_inf.txt
@@ -4,6 +4,10 @@
    注意当前版本在设置紫晶组2的61850协转签名时用的     BTSE/
    
    
V3.6.103 edit by lijun    @  2024-01-24
    1.新增远程重启设备相应判断,判断设备的ukey校验返回结果
    2.遥调遥控命令新增失败返回结果,操作失败后op_cmd_ack = -1
V3.6.102 edit by lijun    @  2023-08-16
    1.修复工厂内部组2读取参数"核容时长"和"组端下限"点位目前仍然读取的组1上的参数切记
    2.新增远程同步时间功能