whyclj
2019-09-24 6dbd13c3e334fbdb7b351f9aa0aad00b9933677b
添加离线养护功能并且添加设备重启功能
4个文件已修改
257 ■■■■ 已修改文件
src/com/dec/fbs9100/BTS_61850_SocketClient.java 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/FBS9100_ComBase.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/FBS9100_ParamDischarge.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/BTS_61850_SocketClient.java
@@ -183,7 +183,35 @@
                            if(true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetIpNow)) {
                                m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetIpAck;
                            }
                        }
                        }else if(FBS9100_ComBase.CMD_GetOffLineYHParam == m_FBS_DiscParam.op_cmd) {
                            //读取离线养护参数
                            if(true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_GetOffLineYHParam)) {
                                m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK;
                                FBS9100_Task_Thread_SQL.updateFbs9100SetParamOffLineYHParamBydev_id(m_ConnPool, m_StatAndParam);
                                System.out.println("读取离线养护参数成功");
                            }
                        }else if(FBS9100_ComBase.CMD_SetOffLineYHParam == m_FBS_DiscParam.op_cmd) {
                            //设置离线养护参数
                            if(true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetOffLineYHParam)) {
                                m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetOffLineYHParam_ACK;
                            }
                        }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 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 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;
                            }
                        }
                        FBS9100_Task_Thread_SQL.updateFbs9100SetParamCmdBydev_id(m_ConnPool, m_StatAndParam);
                    }
                    
@@ -301,13 +329,14 @@
             //DataSet ds = serverModel.getDataSet("ZJDYBTSE/ncdGGIO1.Para6.setMag.f");            
            FcModelNode fcModelNode = (FcModelNode)m_ServerModel.findModelNode(reference, Fc.fromString(fc_str));
            if(null == fcModelNode) {
            System.err.println("error, no modenode was found.....");
            return;
                System.err.println("error, no modenode was found.....");
                return;
            }
            //System.out.println("Sending SetDataValues request...");
            try {
                //System.out.println("model ="+fcModelNode);
                BasicDataBind<?> data = new Float32DataBind((BdaFloat32)fcModelNode);
                JTextField tf_t = (JTextField)data.getValueField();
                String parm = String.valueOf(disCurr);
                tf_t.setText(parm);
@@ -934,26 +963,26 @@
                StringBuffer StringipWG = new StringBuffer();
                StringBuffer StringipYM = new StringBuffer();
                //System.out.println(Arrip.length);
                   for (int i=0;i<Arrip.length;i++) {
                        if (Arrip[i].trim().length()<3) {
                            int length=Arrip[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                Arrip[i]="0"+Arrip[i].trim();
                            }
                        }
                        if (ArripWG[i].trim().length()<3) {
                            int length=ArripWG[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                ArripWG[i]="0"+ArripWG[i].trim();
                            }
                        }
                        if (ArripYM[i].trim().length()<3) {
                            int length=ArripYM[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                ArripYM[i]="0"+ArripYM[i].trim();
                            }
                        }
                    }
                for (int i=0;i<Arrip.length;i++) {
                    if (Arrip[i].trim().length()<3) {
                        int length=Arrip[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            Arrip[i]="0"+Arrip[i].trim();
                        }
                    }
                    if (ArripWG[i].trim().length()<3) {
                        int length=ArripWG[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            ArripWG[i]="0"+ArripWG[i].trim();
                        }
                    }
                    if (ArripYM[i].trim().length()<3) {
                        int length=ArripYM[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            ArripYM[i]="0"+ArripYM[i].trim();
                        }
                    }
                }
                for(int i=0;i<Arrip.length;i++) {
                    Stringip.append(Arrip[i]);
                    StringipWG.append(ArripWG[i]);
@@ -961,14 +990,14 @@
                }
                String a = Stringip.toString();
            long     ipYM =  Long.parseLong(StringipYM.toString());
            long     ip =  Long.parseLong(Stringip.toString());
            long     ipWG =  Long.parseLong(StringipWG.toString());
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para7.setMag.i", "SP", ip);
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para8.setMag.i", "SP", ipWG);
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para9.setMag.i", "SP", ipYM);
            comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO4.Oper", true);
            //comm_res = ;
                long ipYM =  Long.parseLong(StringipYM.toString());
                long ip =  Long.parseLong(Stringip.toString());
                long ipWG =  Long.parseLong(StringipWG.toString());
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para7.setMag.i", "SP", ip);
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para8.setMag.i", "SP", ipWG);
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para9.setMag.i", "SP", ipYM);
                comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO4.Oper", true);
                //comm_res = ;
            }else if (FBS9100_ComBase.CMD_SetIpNow == cmd) {
                setip();
                DecimalFormat df=new DecimalFormat("000");
@@ -981,26 +1010,26 @@
                StringBuffer StringipWG = new StringBuffer();
                StringBuffer StringipYM = new StringBuffer();
                //System.out.println(Arrip.length);
                   for (int i=0;i<Arrip.length;i++) {
                        if (Arrip[i].trim().length()<3) {
                            int length=Arrip[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                Arrip[i]="0"+Arrip[i].trim();
                            }
                        }
                        if (ArripWG[i].trim().length()<3) {
                            int length=ArripWG[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                ArripWG[i]="0"+ArripWG[i].trim();
                            }
                        }
                        if (ArripYM[i].trim().length()<3) {
                            int length=ArripYM[i].trim().length();
                            for (int j = 1; j <= 3-length; j++) {
                                ArripYM[i]="0"+ArripYM[i].trim();
                            }
                        }
                    }
                for (int i=0;i<Arrip.length;i++) {
                    if (Arrip[i].trim().length()<3) {
                        int length=Arrip[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            Arrip[i]="0"+Arrip[i].trim();
                        }
                    }
                    if (ArripWG[i].trim().length()<3) {
                        int length=ArripWG[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            ArripWG[i]="0"+ArripWG[i].trim();
                        }
                    }
                    if (ArripYM[i].trim().length()<3) {
                        int length=ArripYM[i].trim().length();
                        for (int j = 1; j <= 3-length; j++) {
                            ArripYM[i]="0"+ArripYM[i].trim();
                        }
                    }
                }
                for(int i=0;i<Arrip.length;i++) {
                    Stringip.append(Arrip[i]);
                    StringipWG.append(ArripWG[i]);
@@ -1008,18 +1037,18 @@
                }
                String a = Stringip.toString();
            long     ipYM =  Long.parseLong(StringipYM.toString());
            long     ip =  Long.parseLong(Stringip.toString());
            long     ipWG =  Long.parseLong(StringipWG.toString());
//            System.err.println(ip);
//            System.err.println(ipWG);
//            System.err.println(ipYM);
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para7.setMag.i", "SP", ip);
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para8.setMag.i", "SP", ipWG);
            writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para9.setMag.i", "SP", ipYM);
            comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO4.Oper", false);
            //System.out.println("SUCCESS");
            //comm_res = true;
                long     ipYM =  Long.parseLong(StringipYM.toString());
                long     ip =  Long.parseLong(Stringip.toString());
                long     ipWG =  Long.parseLong(StringipWG.toString());
//                System.err.println(ip);
//                System.err.println(ipWG);
//                System.err.println(ipYM);
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para7.setMag.i", "SP", ip);
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para8.setMag.i", "SP", ipWG);
                writeNodeDataInt(FBSDeviceName+"/ncdGGIO1.Para9.setMag.i", "SP", ipYM);
                comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO4.Oper", false);
                //System.out.println("SUCCESS");
                //comm_res = true;
            }else if(FBS9100_ComBase.CMD_ReadFodParam == cmd) {
                DataSet ds = null;
                ds = m_ServerModel.getDataSet(FBSDeviceName+"/LLN0.dsDevState");    
@@ -1177,12 +1206,49 @@
                    comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO10.Oper", true);
                    break;
                case 3:
                    comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCS11.Oper", true);
                    comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO11.Oper", true);
                    break;
                case 4:    
                    comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO12.Oper", true);
                    comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"2.Oper", true);
                    break;
                }
            }else if(FBS9100_ComBase.CMD_GetOffLineYHParam == cmd) {
                //System.err.println("读取离线养护参数");
                //读取离线养护参数
                //获取单体温度上限阀值
                m_FBS_DiscParamFromDev.MonomerTmp_High    = readFloatNodeData(FBSDeviceName+"/ncdGGIO1.HiCelTemp.mag.f", Fc.MX);
                //获取离线养护周期
                m_FBS_DiscParamFromDev.OffLineYH_Cycle     = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn111.mag.f", Fc.MX);;
                //获取在线电压低阀值
                m_FBS_DiscParamFromDev.OnLineVol_Low     = readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn112.mag.f", Fc.MX);;
                comm_res = true;
            }else if(FBS9100_ComBase.CMD_SetOffLineYHParam == cmd) {
                //System.err.println("设置离线养护参数");
                //设置离线养护参数
                boolean write_res_t = true;
                if(true == write_res_t) {
                    //单体温度上限
                    writeNodeData(FBSDeviceName+"/ncdGGIO1.Para4.setMag.f", "SP",(float)m_StatAndParam.m_FBS_DiscParam.MonomerTmp_High);
                    //离线养护周期
                    writeNodeData(FBSDeviceName+"/ncdGGIO1.Para34.setMag.f", "SP", (float)m_StatAndParam.m_FBS_DiscParam.OffLineYH_Cycle);
                    //在线压低
                    writeNodeData(FBSDeviceName+"/ncdGGIO1.Para35.setMag.f", "SP",(float)m_StatAndParam.m_FBS_DiscParam.OnLineVol_Low);
                    sleep(1500);
                }
                comm_res = true;
            }else if(FBS9100_ComBase.CMD_StartOffLineYH == cmd) {
                //启动离线养护
                //System.err.println("启动离线养护");
                comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO13.Oper", true);
            }else if(FBS9100_ComBase.CMD_StopOffLineYH == cmd) {
                //System.err.println("停止离线养护");
                //停止离线养护
                comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO13.Oper", false);
            }else if(FBS9100_ComBase.CMD_ResetSystem == cmd) {
                //System.err.println("重启系统");
                comm_res = BTS_IEC61850_Write_CO_Node(FBSDeviceName+"/ncdGGIO1.SPCSO14.Oper", true);
            }
            comm_res = true;
        } catch (IOException e) {
src/com/dec/fbs9100/FBS9100_ComBase.java
@@ -9,6 +9,7 @@
    //----------------------------------------------------------------------------
    //------------ ������������FBS9100������ ------------------------------------------------
    public static final int     CMD_ResetSystem                    =     0x10;
    public static final int     CMD_ResetSystemAck                =     0x0F;//15
    //------------ ������������FBS9100��������� ------------------------------------------------
    public static final int     CMD_SystemUpdate                =    0x11;
    //----------------------------------------------------------------------------
@@ -143,6 +144,18 @@
    public static final int        CMD_Stop_FOD_testSus            =    0xAB;
    public static final int        CMD_ReadFodValueSus                =    0xAC;
    //------------------------------------------------------------------------------
    //------------ 离线养护功能参数 ---------------------------------
    public static final int        CMD_GetOffLineYHParam            =    0xB0;
    public static final int        CMD_GetOffLineYHParam_ACK        =    0xB1;
    public static final int        CMD_SetOffLineYHParam            =    0xB2;
    public static final int        CMD_SetOffLineYHParam_ACK        =    0xB3;
    public static final int        CMD_StartOffLineYH                =   0xB4;
    public static final int        CMD_StartOffLineYH_ACK            =   0xB5;
    public static final int        CMD_StopOffLineYH                 =   0xB6;
    public static final int        CMD_StopOffLineYH_ACK             =   0xB7;
    //------------------------------------------------------------------------------
    public static byte changeIntToByte(int data)
    {
src/com/dec/fbs9100/FBS9100_ParamDischarge.java
@@ -26,6 +26,8 @@
    public double ChargeCurrSet = 0;
    public int bakeup3 = 0;
    public double MonomerTmp_High = 0;
    public double OnLineVol_Low = 0;        //在线电压低阀值
    public int OffLineYH_Cycle = 0;            //离线养护周期
    
    public int bakeup5 = 0;
    public int bakeup6 = 0;
@@ -69,6 +71,8 @@
        ChargeCurrSet = 0;
        bakeup3 = 0;
        MonomerTmp_High = 0;
        OnLineVol_Low = 0;                //在线电压低阀值
        OffLineYH_Cycle = 0;            //离线养护周期
        
        bakeup5 = 0;
        bakeup6 = 0;
src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
@@ -703,6 +703,10 @@
                    param.m_FBS_DiscParam.OnlineVolLowAction = res.getInt("OnlineVolLowAction");
                    param.m_FBS_DiscParam.DCVolHighLimit = res.getFloat("DCVolHighLimit");
                    param.m_FBS_DiscParam.ChargeCurrSet = res.getFloat("ChargeCurrSet");
                    param.m_FBS_DiscParam.OffLineYH_Cycle = res.getInt("OffLineYH_Cycle");
                    param.m_FBS_DiscParam.OnLineVol_Low = res.getFloat("OnLineVol_Low");
                }
            }
        } catch (SQLException e) {
@@ -839,7 +843,11 @@
        if((param.op_cmd == FBS9100_ComBase.CMD_StartAck) 
                || (param.op_cmd == FBS9100_ComBase.CMD_StopAck) 
                || (param.op_cmd == FBS9100_ComBase.CMD_SetDischargeParmAck)
                || (param.op_cmd == FBS9100_ComBase.CMD_SetIpAck))
                || (param.op_cmd == FBS9100_ComBase.CMD_SetIpAck)
                || (param.op_cmd == FBS9100_ComBase.CMD_SetOffLineYHParam_ACK)
                || (param.op_cmd == FBS9100_ComBase.CMD_StartOffLineYH_ACK)
                || (param.op_cmd == FBS9100_ComBase.CMD_StopOffLineYH_ACK)
                || (param.op_cmd == FBS9100_ComBase.CMD_ResetSystemAck))
        {
            String sql_str_base = Sql_Mysql.FBS9100SetParam_Table + " SET "
                                + "dev_id=" + param.dev_id + ", "
@@ -1166,4 +1174,38 @@
        }
    }
    /**
     *     修改设备得离线养护参数
     * @param m_ConnPool
     * @param m_StatAndParam
     */
    public static void updateFbs9100SetParamOffLineYHParamBydev_id(MysqlConnPool con_pool,
            FBS9100_StatAndParam param) {
        // TODO Auto-generated method stub
        if(param.op_cmd == FBS9100_ComBase.CMD_GetOffLineYHParam_ACK)
        {
            String sql_str_base = Sql_Mysql.FBS9100SetParam_Table
                            + " SET "
                            + " dev_id=" + param.dev_id + ", "
                            + " op_cmd=" + FBS9100_ComBase.CMD_GetOffLineYHParam_ACK + ", "
                            + " MonomerTmp_High =" + param.m_FBS_DiscParamFromDev.MonomerTmp_High + ", "
                            + " OnLineVol_Low =" + param.m_FBS_DiscParamFromDev.OnLineVol_Low  + ", "
                            + " OffLineYH_Cycle=" + param.m_FBS_DiscParamFromDev.OffLineYH_Cycle
                            + " where dev_id = " + param.dev_id;
            String sql_str_update = "UPDATE " + sql_str_base;
            Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
            try {
                //System.out.println(sql_str_replace);
                sql.sqlMysqlExecute(sql_str_update);
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                sql.close_con();
            }
            param.m_FBS_DiscParam.op_cmd = FBS9100_ComBase.CMD_GetOffLineYHParam_ACK;
            param.op_cmd = FBS9100_ComBase.CMD_NULL;
        }
    }
}