DELL
2024-03-29 73eab4bcadb946276108ee29a3837c7c35fd8867
电科院测试代码
1个文件已添加
1166 ■■■■■ 已修改文件
iec61850_forFoShanAES_Model/src/org/openmuc/openiec61850/MyClient.java 1166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iec61850_forFoShanAES_Model/src/org/openmuc/openiec61850/MyClient.java
New file
@@ -0,0 +1,1166 @@
//package com.beanit.test;
//
//import com.alibaba.fastjson.JSON;
//import com.beanit.openiec61850.*;
//import com.beanit.rabbitmq.Producer;
//import com.beanit.socket.Client;
//import com.beanit.test.utils.*;
//import com.beanit.test.view.MyTableRenderer;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import sun.misc.BASE64Encoder;
//
//import javax.swing.*;
//import javax.swing.event.TableModelEvent;
//import javax.swing.event.TableModelListener;
//import javax.swing.table.DefaultTableModel;
//import java.awt.*;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import java.awt.event.WindowAdapter;
//import java.awt.event.WindowEvent;
//import java.io.IOException;
//import java.net.InetAddress;
//import java.net.UnknownHostException;
//import java.util.*;
//import java.util.List;
//import java.util.Timer;
////电科院送检测试类
///**
// * @author LiBiChao
// * @create 2019-08-06
// * @update 2020-10-20
// */
//public class MyClient {
//
//    private static final Logger logger = LoggerFactory.getLogger(MyClient.class);
//
//    private Producer producer;
//
//    private JTable mainTable;
//    private DefaultTableModel tableModel;
//    private String[] columnTitles = { "变电站", "IP地址", "端口", "上次采集时间"};
//    private JScrollPane jsPane;
//    private Thread threads[];
//    private Timer timers[];
//    private Timer monitorTimer;
//    private Timer wakeUpTimer;
//    private Timer networkReviewTimer;
//    private JLabel labelTips;
//    private JTextField txtCollectDelay;
//    private JTextField txtSubstationDelay;
//    private JTextField txtSubstationList;
//    private JRadioButton radioCollectData = new JRadioButton("是");
//    private JRadioButton radioNotCollectData = new JRadioButton("否");
//    private JRadioButton radioCollectFile = new JRadioButton("是");
//    private JRadioButton radioNotCollectFile = new JRadioButton("否");
//    private JRadioButton radioDeleteRemote = new JRadioButton("是");
//    private JRadioButton radioNotDeleteRemote = new JRadioButton("否");
//    private boolean isCollectRemoteData = true;
//    private boolean isCollectRemoteFile = false;
//    private boolean isDeleteRemoteFile = false;
//    private static int CollectIntervalTimes = 1000 * 60 * 60 * 2; //同一站点采集两个小时
//    private static int SubstaionIntervalTimes = 1000 * 60 * 3; //站点间采集间隔3分钟
//    private JButton btnSetting;
//    private JButton btnStart;
//    private JButton btnDetail;
//    private boolean isRunning  = false;
//
//    private static String sendMessageMethod = "mq";   //可选mq和areaIII
//    private static Client client;
//
//    public void ClientMain(){
//
//        logger.debug("ClientMain init...");
//
//        JFrame frm = new JFrame();
//        frm.setLocation(100, 100);
//        frm.setSize(680, 610);
//        //frm.setBounds(100, 100, 300, 300);  // 功能与上面相同
//        frm.setTitle("云南电网变电在线监测采集系统 -【二区主站】");
//        Container c = frm.getContentPane(); // frm中包含一个内容窗格, 需要获取内容窗格,再设置背景颜色,直接设置frm的背景颜色会被内容窗格挡住
//        c.setBackground(new Color(230, 230, 230));
//        frm.setLayout(null);                // 如过不设置为null默认,按钮会充满整个内容框,挡住背景颜色
//
//        //配置信息-采集间隔
//        JLabel labelCollect = new JLabel("采集间隔:");
//        labelCollect.setLocation(50, 10);
//        labelCollect.setSize(70, 25);
//        frm.add(labelCollect);
//        txtCollectDelay = new JTextField();
//        txtCollectDelay.setLocation(120, 10);
//        txtCollectDelay.setSize(50, 25);
//        txtCollectDelay.setText("120");
//        txtCollectDelay.setEditable(false);
//        frm.add(txtCollectDelay);
//        JLabel collectUnit = new JLabel("分钟");
//        collectUnit.setLocation(170, 10);
//        collectUnit.setSize(80, 25);
//        frm.add(collectUnit);
//        //配置信息-站点间隔
//        JLabel labelSubstation = new JLabel("站点间隔:");
//        labelSubstation.setLocation(220, 10);
//        labelSubstation.setSize(70, 25);
//        frm.add(labelSubstation);
//        txtSubstationDelay = new JTextField();
//        txtSubstationDelay.setLocation(290, 10);
//        txtSubstationDelay.setSize(50, 25);
//        txtSubstationDelay.setText("5");
//        txtSubstationDelay.setEditable(false);
//        frm.add(txtSubstationDelay);
//        JLabel substationUnit = new JLabel("分钟");
//        substationUnit.setLocation(340, 10);
//        substationUnit.setSize(80, 25);
//        frm.add(substationUnit);
//        //配置信息-采集列表
//        JLabel labelSubstationList = new JLabel("列表配置:");
//        labelSubstationList.setLocation(390, 10);
//        labelSubstationList.setSize(70, 25);
//        frm.add(labelSubstationList);
//        txtSubstationList = new JTextField();
//        txtSubstationList.setLocation(460, 10);
//        txtSubstationList.setSize(120, 25);
//        txtSubstationList.setText("substation_list.txt");
//        txtSubstationList.setEditable(false);
//        frm.add(txtSubstationList);
//        //配置信息-采集数据
//        JLabel labelCollectData = new JLabel("采集数据:");
//        labelCollectData.setLocation(50, 40);
//        labelCollectData.setSize(70, 25);
//        frm.add(labelCollectData);
//        ButtonGroup collectDataBtnGroup = new ButtonGroup();
//        collectDataBtnGroup.add(radioCollectData);
//        radioCollectData.setLocation(120, 40);
//        radioCollectData.setSize(40, 25);
//        radioCollectData.setSelected(true);
//        radioCollectData.setEnabled(false);
//        frm.add(radioCollectData);
//        collectDataBtnGroup.add(radioNotCollectData);
//        radioNotCollectData.setLocation(160, 40);
//        radioNotCollectData.setSize(40, 25);
//        radioNotCollectData.setEnabled(false);
//        frm.add(radioNotCollectData);
//        //配置信息-采集文件
//        JLabel labelCollectFile = new JLabel("采集谱图:");
//        labelCollectFile.setLocation(220, 40);
//        labelCollectFile.setSize(70, 25);
//        frm.add(labelCollectFile);
//        ButtonGroup collectFileBtnGroup = new ButtonGroup();
//        collectFileBtnGroup.add(radioCollectFile);
//        radioCollectFile.setLocation(290, 40);
//        radioCollectFile.setSize(40, 25);
//        radioCollectFile.setEnabled(false);
//        frm.add(radioCollectFile);
//        collectFileBtnGroup.add(radioNotCollectFile);
//        radioNotCollectFile.setLocation(330, 40);
//        radioNotCollectFile.setSize(40, 25);
//        radioNotCollectFile.setSelected(true);
//        radioNotCollectFile.setEnabled(false);
//        frm.add(radioNotCollectFile);
//        //配置信息-删除远端文件
//        JLabel labelDeleteRemote = new JLabel("采完删除:");
//        labelDeleteRemote.setLocation(390, 40);
//        labelDeleteRemote.setSize(70, 25);
//        frm.add(labelDeleteRemote);
//        ButtonGroup deleteBtnGroup = new ButtonGroup();
//        deleteBtnGroup.add(radioDeleteRemote);
//        radioDeleteRemote.setLocation(460, 40);
//        radioDeleteRemote.setSize(40, 25);
//        radioDeleteRemote.setEnabled(false);
//        frm.add(radioDeleteRemote);
//        deleteBtnGroup.add(radioNotDeleteRemote);
//        radioNotDeleteRemote.setLocation(500, 40);
//        radioNotDeleteRemote.setSize(40, 25);
//        radioNotDeleteRemote.setSelected(true);
//        radioNotDeleteRemote.setEnabled(false);
//        frm.add(radioNotDeleteRemote);
//
//        //配置按钮
//        btnSetting = new JButton("配置");
//        btnSetting.setLocation(550, 80);
//        btnSetting.setSize(90, 30);
//        btnSetting.setBackground(new Color(224, 234, 244));
//        btnSetting.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                //logger.debug(e.getActionCommand());
//                if(isRunning){
//                    //logger.debug("请先停止采集再进行配置!#_#");
//                    labelTips("请先停止采集再进行配置!", "warning");
//                    return;
//                }
//                if(txtCollectDelay.isEditable()){
//                    int intCollectIntervalMinute = Integer.valueOf(txtCollectDelay.getText());
//                    CollectIntervalTimes = intCollectIntervalMinute * 60 * 1000;
//                    int intSubstationIntervalMinute = Integer.valueOf(txtSubstationDelay.getText());
//                    SubstaionIntervalTimes = intSubstationIntervalMinute * 60 * 1000;
//                    if(radioCollectData.isSelected()){
//                        isCollectRemoteData = true;
//                    }else {
//                        isCollectRemoteData = false;
//                    }
//                    if(radioCollectFile.isSelected()){
//                        isCollectRemoteFile = true;
//                    }else {
//                        isCollectRemoteFile = false;
//                    }
//                    if(radioDeleteRemote.isSelected()){
//                        isDeleteRemoteFile = true;
//                    }else{
//                        isDeleteRemoteFile = false;
//                    }
//                    txtCollectDelay.setEditable(false);
//                    txtSubstationDelay.setEditable(false);
//                    txtSubstationList.setEditable(false);
//                    radioCollectData.setEnabled(false);
//                    radioNotCollectData.setEnabled(false);
//                    radioCollectFile.setEnabled(false);
//                    radioNotCollectFile.setEnabled(false);
//                    radioDeleteRemote.setEnabled(false);
//                    radioNotDeleteRemote.setEnabled(false);
//                    //重新加载站点列表
//                    dataLoad();
//                    btnSetting.setText("配置");
//                    labelTips("配置保存成功!", "");
//                }else {
//                    txtCollectDelay.setEditable(true);
//                    txtSubstationDelay.setEditable(true);
//                    txtSubstationList.setEditable(true);
//                    radioCollectData.setEnabled(true);
//                    radioNotCollectData.setEnabled(true);
//                    radioCollectFile.setEnabled(true);
//                    radioNotCollectFile.setEnabled(true);
//                    radioDeleteRemote.setEnabled(true);
//                    radioNotDeleteRemote.setEnabled(true);
//                    btnSetting.setText("保存");
//                    txtCollectDelay.requestFocus();
//                    labelTips("编辑配置...", "");
//                }
//            }
//        });
//        frm.add(btnSetting);
//        //采集详情
//        btnDetail = new JButton("采集详情");
//        btnDetail.setLocation(150, 80);
//        btnDetail.setSize(90, 30);
//        btnDetail.setBackground(new Color(224, 234, 244));
//        btnDetail.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                logger.debug(e.getActionCommand());
//                int rowIndex = mainTable.getSelectedRow();
//                if(rowIndex < 0){
//                    //logger.debug("未选择站点!#_#");
//                    labelTips("未选择站点!", "warning");
//                    return;
//                }
//                MyClientGui myClientGui = new MyClientGui();
//                myClientGui.setIpTextField(tableModel.getValueAt(rowIndex, 1).toString());
//                myClientGui.setPortTextField(tableModel.getValueAt(rowIndex, 2).toString());
//                //myClientGui.dispose();
//            }
//        });
//        frm.add(btnDetail);
//
//        //确定按钮
//        btnStart = new JButton("开始采集");
//        btnStart.setLocation(50, 80);
//        btnStart.setSize(90, 30);
//        btnStart.setBackground(new Color(224, 234, 244));
//        btnStart.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                if(tableModel.getRowCount() <= 0){
//                    //logger.warn("采集列表为空!");
//                    labelTips("采集列表为空!", "warning");
//                    return;
//                }
//                if(txtCollectDelay.isEditable()){
//                    //logger.warn("请先保存配置!");
//                    labelTips("请先保存配置!", "warning");
//                    return;
//                }
//
//                if (ConfigUtil.isNetworkReview){
//                    if (!isRunning) {
//                        startNetworkReview();
//                        isRunning = true;
//                        btnStart.setText("停止检查");
//                    }else{
//                        networkReviewTimer.cancel();
//                        isRunning = false;
//                        btnStart.setText("开始检查");
//                    }
//                    return;
//                }
//
//                if(!isRunning) {
//                    //启动状态监视器
//                    monitorSchedule();
//                    //重连定时器
//                    wakeUpSchedule();
//                    isRunning = true;
//                    btnStart.setText("停止采集");
//                    collectStart();
//                }else{
//                    collectStop();
//                    //停止监视器
//                    monitorTimer.cancel();
//                    logger.debug("状态监视器已停止。");
//                    //停止重连器
//                    wakeUpTimer.cancel();
//                    logger.debug("重连定时器已停止。");
//                    isRunning = false;
//                    btnStart.setText("开始采集");
//                }
//            }
//        });
//        frm.add(btnStart);
//        //站点增加按钮
//        JButton btnAddRow = new JButton("增加站点");
//        btnAddRow.setLocation(250, 80);
//        btnAddRow.setSize(90, 30);
//        btnAddRow.setBackground(new Color(224, 234, 244));
//        btnAddRow.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                if(isRunning){
//                    logger.warn("采集中不能增加站点!");
//                    return;
//                }
//                //tableModel.setRowCount(tableModel.getDataVector().size() + 1);
//                tableModel.setRowCount(tableModel.getRowCount() + 1);
//                tableModel.setValueAt("null", tableModel.getRowCount() - 1, 0);
//                mainTable.changeSelection(tableModel.getRowCount() - 1, 0, true, false);
//            }
//        });
//        frm.add(btnAddRow);
//
//        //删除增加按钮
//        JButton btnDelRow = new JButton("删除站点");
//        btnDelRow.setLocation(350, 80);
//        btnDelRow.setSize(90, 30);
//        btnDelRow.setBackground(new Color(224, 234, 244));
//        btnDelRow.addActionListener(new ActionListener() {
//            @Override
//            public void actionPerformed(ActionEvent e) {
//                if(isRunning){
//                    logger.warn("采集中不能删除站点!");
//                    labelTips("采集中不能删除站点!", "warning");
//                    return;
//                }
//                int rowIndex = mainTable.getSelectedRow();
//                if(rowIndex < 0){
//                    logger.debug("未选择站点!#_#");
//                    labelTips("未选择站点#_#!", "warning");
//                    return;
//                }
//                boolean flag = ConfigUtil.delSubstation(txtSubstationList.getText(), rowIndex);
//                if (flag) {
//                    tableModel.removeRow(rowIndex);
//                }
//                logger.debug("--------------- 删除:" + flag + "--------------------");
//            }
//        });
//        frm.add(btnDelRow);
//
//        //JTable
//        tableModel = new DefaultTableModel(columnTitles, 0);
//        tableModel.addTableModelListener(new TableModelListener() {
//            @Override
//            public void tableChanged(TableModelEvent e) {
//
//                if(e.getType() == TableModelEvent.UPDATE){
//                    if(e.getLastRow() >= 0){
//                        int rowIndex = e.getLastRow();
//                        int colIndex = e.getColumn();
//                        String strValue = tableModel.getValueAt(rowIndex, colIndex).toString();
//                        //System.out.println(" setSubstationValue: [" + rowIndex + ", " + colIndex + "]=>" + strValue);
//                        boolean flag = ConfigUtil.setSubstationValue(txtSubstationList.getText(), rowIndex, colIndex, strValue);
//                        //System.out.println(flag + " setSubstationValue: [" + rowIndex + ", " + colIndex + "]=>" + strValue);
//                    }
//                }
//            }
//        });
//
//        mainTable = new JTable(tableModel);
//        //mainTable.getColumnModel().getColumn(1).setCellEditor(new MyRender());//设置编辑器
//        //mainTable.getColumnModel().getColumn(1).setCellRenderer(new MyRender() );
//        jsPane = new JScrollPane(mainTable);
//        jsPane.setSize(600, 400);
//        jsPane.setLocation(30, 130);
//        frm.add(jsPane);
//        mainTable.setDefaultRenderer(Object.class, new MyTableRenderer());
//
//        //底部提示信息
//        JLabel labelTipsTitle = new JLabel("提示信息:");
//        labelTipsTitle.setLocation(50, 530);
//        labelTipsTitle.setSize(70, 25);
//        frm.add(labelTipsTitle);
//        labelTips = new JLabel("welcome!");
//        labelTips.setLocation(120, 530);
//        labelTips.setSize(500, 25);
//        frm.add(labelTips);
//
//        dataLoad();
//
//        //frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//        frm.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
//        frm.addWindowListener(new WindowAdapter() {
//            @Override
//            public void windowClosing(WindowEvent e) {
//                super.windowClosing(e);
//                int result = JOptionPane.showConfirmDialog(null, "确认退出?", "确认",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE);
//                if (result == JOptionPane.OK_OPTION) {
//                    // 退出
//                    System.exit(0);
//                }
//            }
//        });
//
//        if (ConfigUtil.isNetworkReview){
//            btnStart.setText("开始检查");
//            btnAddRow.setEnabled(false);
//            btnDelRow.setEnabled(false);
//            btnDetail.setEnabled(false);
//            btnSetting.setEnabled(false);
//        }
//
//        frm.setVisible(true);
//
//        // 三区服务连接
//        //client = new Client();
//        //client.init();
//        //client.conn();
//
//
//        //初始化消息队列
//        if(ConfigUtil.isDebug){
//            return;
//        }
//        try {
//            producer = new Producer("ztjc");
//            logger.debug("消息队列初始化完成!^_^");
//        } catch (IOException e) {
//            System.out.println("消息队列初始化失败!@_@");
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 状态监视器
//     */
//    private void monitorSchedule(){
//        monitorTimer = new Timer();
//        monitorTimer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                //刷新mainTabled的数据状态,可发送心跳
//                //System.out.print("*");
//                int rowIndex = mainTable.getSelectedRow();
//                int colIndex = mainTable.getSelectedColumn();
//                //logger.debug(rowIndex + " - " + colIndex);
//                mainTable.changeSelection(rowIndex, colIndex, true, false);
//                mainTable.changeSelection(rowIndex, colIndex, true, false);
//            }
//        }, 1000, 3000);
//        logger.debug("状态监视器已启动。");
//    }
//
//    /**
//     * 定时唤醒任务
//     */
//    private void wakeUpSchedule(){
//        wakeUpTimer = new Timer();
//        int substationCount = mainTable.getRowCount();
//        long startTime = substationCount * SubstaionIntervalTimes;
//        wakeUpTimer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                logger.debug("重连定时器开始执行...");
//                for (int i = 0; i < substationCount; i++){
//                    String name = tableModel.getValueAt(i,0).toString();
//                    String ip = tableModel.getValueAt(i,1).toString();
//                    int port = Integer.valueOf(tableModel.getValueAt(i,2).toString());
//                    String lastTime = tableModel.getValueAt(i,3).toString();
//                    if(lastTime != null && lastTime.length() == 19){
//                        long millisTime = SimpleUtils.DateTimeToMillisTime(lastTime);
//                        if((System.currentTimeMillis() - 3 * 60 * 60 * 1000) > millisTime){
//                            logger.debug("重连定时器【" + (i + 1) + " - " + name + "】 开始连接至变电站 => " + ip + ":" + port
//                                    + " [" + SimpleUtils.CurrentDateTime() + "]");
//                            collectToSubstation(ip, port, i);
//                        }else{
//                            continue;
//                        }
//                    }else{
//                        logger.debug("重连定时器【" + (i + 1) + " - " + name + "】 开始连接至变电站 => " + ip + ":" + port
//                                + " [" + SimpleUtils.CurrentDateTime() + "]");
//                        collectToSubstation(ip, port, i);
//                    }
//                }
//            }
//        }, startTime, 5 * 60 * 1000);
//        logger.debug("重连定时器" + Math.floor((startTime/60)/1000) + "分钟后启动。");
//    }
//
//    protected void collectToSubstation(String ip, int port, int rowIndex){
//        String subStationName = mainTable.getValueAt(rowIndex, 0).toString();
//        ClientSap clientSap = new ClientSap();
//        //clientSap.setMaxMmsPduSize(6500000);
//        //logger.debug("MaxMmsPduSize: " + clientSap.getMaxMmsPduSize());
//        InetAddress address;
//        try {
//            address = InetAddress.getByName(ip);
//        } catch (UnknownHostException e1) {
//            logger.error("【" + subStationName + "】 IP地址错误: " + "ip Address ERROR"   );
//            labelTips("【" + subStationName + "】 IP地址错误!", "error");
//            e1.printStackTrace();
//            return;
//        }
//        try {
//            if (port < 1 || port > 0xFFFF) {
//                throw new NumberFormatException("端口超出范围: " + "port must be in range [1, 65535]");
//            }
//        } catch (NumberFormatException e) {
//            logger.error("【" + subStationName + "】 端口异常: " + "port ERROR");
//            labelTips("【" + subStationName + "】 端口异常!", "error");
//            e.printStackTrace();
//            return;
//        }
//
//        //clientSap.setTSelLocal(settingsFrame.getTselLocal());
//        //clientSap.setTSelRemote(settingsFrame.getTselRemote());
//
//        ClientAssociation association;
//        try {
//            association = clientSap.associate(address, port, null, null);
//        } catch (IOException e) {
//            logger.debug("【" + subStationName + "】 连接失败: " + e.getMessage());
//            labelTips("【" + subStationName + "】 连接失败!", "error");
////            if(ConfigUtil.isNetworkReview) {
////                checkNet(ip, port);
////            }
//            sendErrorLog(subStationName, ip, e.getMessage());
//            checkNet(subStationName, ip, port);
//            return;
//        }
//
//        //数据读取
//        if(isCollectRemoteData) {
//            boolean flag = readData(association, ip, subStationName);
//            if(flag){
//                String strDate = SimpleUtils.CurrentDateTime();
//                tableModel.setValueAt(strDate, rowIndex, 3);
//                boolean flag2 = ConfigUtil.setSubstationValue(txtSubstationList.getText(), rowIndex, 3, strDate);
//                logger.debug("【" + subStationName + "】 本次采集任务完成!");
//                labelTips("【" + subStationName + "】 完成一次采集任务!", "");
//            }else{
//                logger.debug("【" + subStationName + "】 本次采集任务结束,但存在异常*_*!");
//                labelTips("【" + subStationName + "】 采集任务结束,存在异常!", "error");
//                checkNet(subStationName, ip, port);
//            }
//        }
//
//        if(!isCollectRemoteFile){
//            association.disconnect();
//            association.close();
//            //logger.debug(association.isOpen() + "");
//            return;
//        }
//        //文件读取
//        String dirName = "";
//        List fileList = null;
//        try {
//            fileList = association.getFileDirectory(dirName);
//        } catch (ServiceError serviceError) {
//            serviceError.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        for(int i = 0; i < fileList.size(); i++){
//            FileInformation remoteFile = (FileInformation)fileList.get(i);
//            String fileName = remoteFile.getFilename();
//            if(fileName.contains("COMTRADE")){
//                dirName = fileName;
//                try {
//                    fileList = association.getFileDirectory(dirName);
//                } catch (ServiceError serviceError) {
//                    serviceError.printStackTrace();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//                break;
//            }
//        }
//        if(fileList == null){
//            logger.debug("【" + subStationName + "】 远程文件目录读取失败");
//            labelTips("【" + subStationName + "】 远程文件目录读取失败!", "error");
//        }
//        //定义文件临时存储目录
//        final String tempSavePath = "temp/tempSavePath/" + ip;
//        FileOption.creatDir(tempSavePath); //创建目录
//        //定义文件采集日志目录
//        final String tempLogFile = "log.txt";
//        String lastLog = FileOption.readFileLastLine(tempSavePath, tempLogFile);
//        if(!FileOption.fileExist(tempSavePath + "/" + tempLogFile)){
//            FileOption.createFile(tempSavePath, tempLogFile); //创建文件
//            lastLog = "[sendCount:0, deleteCount:0]-Time " + "2019-09-01 00:00:00";
//            FileOption.writeFile(lastLog, tempSavePath, tempLogFile);
//        }
//        logger.debug("【" + subStationName + "】 读取上次谱图采集日志: " + lastLog);
//        logger.debug("【" + subStationName + "】 读取远程文件数量: " + fileList.size());
//        labelTips("【" + subStationName + "】 读取远程文件数量: " + fileList.size(), "");
//        int sendCount = 0;
//        List<String> deleteList = new ArrayList();
//        for(int i = 0; i < fileList.size(); i++){
//            //if(i > 2) continue;
//            //限制单次采集不超过5000个文件
//            if(sendCount >= 5000){
//                continue;
//            }
//            sendCount ++;
//            FileInformation remoteFile = (FileInformation)fileList.get(i);
////            long fileMillisTime = remoteFile.getLastModified().getTimeInMillis();
////            //文件时间小于上次采集的时间则忽略
////            if(fileMillisTime < startDate){
////                continue;
////            }
//            final String fileName = remoteFile.getFilename();
//            //清理已存在的临时文件
//            FileOption.deleteFile(tempSavePath, fileName);
//            logger.debug("\n开始采集文件:" + System.currentTimeMillis() + " => file-" + (i + 1) + ": " + fileName
//                    + " Size: " + remoteFile.getFileSize());
//            try {
//                association.getFile(fileName, new GetFileListener() {
//                    @Override
//                    public boolean dataReceived(byte[] fileData, boolean moreFollows) {
//                        //logger.debug("开始写入临时文件前时间:" + System.currentTimeMillis());
//                        boolean isSaved = FileOption.writeBinaryFile(tempSavePath, fileName, fileData, true);
//                        //logger.debug("完成写入临时文件后时间:" + System.currentTimeMillis());
//                        //logger.debug(tempSavePath + fileName + " save: " + isSaved);
//                        //logger.debug("moreFollows:" + moreFollows);
//                        while (moreFollows){
//                            return true;
//                        }
//                        //文件传输完成,打包文件
//                        //logger.debug("单个文件传输完成时间:" + System.currentTimeMillis());
//                        String strData = getFileCompressBase64(tempSavePath, fileName);
//                        //logger.debug("生成数据时间:" + System.currentTimeMillis());
//                        //logger.debug("temp file temp saved: " + fileName);
//                        //打包完成,删除文件
//                        boolean deleteFlag = FileOption.deleteFile(tempSavePath, fileName);
//                        //boolean deleteFlag = false;
//                        if(!deleteFlag){
//                            logger.debug("temp file delete: " + "failure");
//                        }
//                        boolean complete = sendFileDate(ip, fileName, strData);
//                        if(complete){
//                            deleteList.add(fileName);
//                        }
//                        return false;
//                    }
//                });
//            } catch (ServiceError serviceError) {
//                serviceError.printStackTrace();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//        //记录执行日志
//        String newLogStr = "\n" + "[sendCount:" + sendCount + ", deleteCount:" + deleteList.size() + "]-Time "
//                + SimpleUtils.MillisToDateTime(System.currentTimeMillis());
//        //更新采集时间
//        String strDate = SimpleUtils.CurrentDateTime();
//        tableModel.setValueAt(strDate, rowIndex, 3);
//        //记录采集日志
//        FileOption.writeFile(newLogStr, tempSavePath, tempLogFile, true);
//        logger.debug("【" + subStationName + "】 谱图采集完成!");
//        labelTips("【" + subStationName + "】 本次谱图采集完成!", "");
//        if(!isDeleteRemoteFile){
//            association.disconnect();
//            association.close();
//            return;
//        }
//        //删除远程文件
//        for(int i = 0; i < deleteList.size(); i++){
//            try {
//                association.deleteFile(deleteList.get(i));
//                logger.debug("remote file delete: " + deleteList.get(i));
//            } catch (ServiceError serviceError) {
//                serviceError.printStackTrace();
//                logger.debug("remote file delete: " + "failure");
//            } catch (IOException e) {
//                e.printStackTrace();
//                logger.debug("remote file delete: " + "failure");
//            }
//        }
//        logger.debug("【" + subStationName + "】 远程谱图文件删除完成!");
//        association.disconnect();
//        association.close();
//        //logger.debug(association.isOpen() + "");
//        //logger.debug("恭喜你!本次采集完成了!!!");
//    }
//
//    private boolean readData(ClientAssociation association, String ipAddress, String subStationName){
//        ServerModel serverModel;
//        try {
//            logger.debug("【" + subStationName + "】 开始读取数据模型...");
//            labelTips("【" + subStationName + "】 开始读取数据模型...", "");
//            serverModel = association.retrieveModel();
//            logger.debug("【" + subStationName + "】 数据模型读取成功^_^");
//            logger.debug("【" + subStationName + "】 开始采集数据...");
//            labelTips("【" + subStationName + "】 开始采集数据^_^...", "");
//            association.getAllDataValues();
//
//            for(ModelNode modelNodeLD : serverModel.getChildren()) {
//                LogicalDevice logicalDevice = (LogicalDevice)modelNodeLD;
//                if (logicalDevice.getReference().toString().contains("_LD0")) {//过滤综合数据处理单元LD0
//                    continue;
//                }
//                for (ModelNode modelNodeLN : logicalDevice.getChildren()) {
//                    LogicalNode logicalNode = (LogicalNode)modelNodeLN;
//                    int start = logicalNode.getReference().toString().indexOf('/');
//                    String lnReference = logicalNode.getReference().toString().substring(start);
//                    if(lnReference.contains("LLN0")// 综合数据处理单元LD下面LLN0
//                            | lnReference.contains("GGIO")// 综合数据处理单元LD下面GGIO
//                            | lnReference.contains("LPHD")// 综合数据处理单元LD下面LPHD
//                            | lnReference.contains("RDRE")) {// 综合数据处理单元LD下面RDRE
//                        continue;
//                    }
//
//                    logger.debug(logicalNode.getName());
//                    List<String> doKeyList = new ArrayList<>();
//                    for (ModelNode modelNodeDO : logicalNode.getChildren()) {
//                        if (!doKeyList.contains(modelNodeDO.getName())) {
//                            doKeyList.add(modelNodeDO.getName());
//                        } else {
//                            continue;
//                        }
//                    }
//
//                    if(!doKeyList.contains("NamPlt")){
//                        String errorMsg = "【" + subStationName + "】 " + logicalNode.getReference().toString() + "配置文件铭牌定义错误";
//                        logger.error(logicalNode.getReference().toString() + " not contain NamPlt!!!!");
//                        labelTips(errorMsg, "error");
//                        sendErrorLog(subStationName, ipAddress, errorMsg);
//                        continue;
//                    }
//                    doKeyList.remove("NamPlt");
//
//                    //Map<String, Object> mapId = new HashMap<>();
//                    ModelNode modelNodeId = logicalNode.getChild("NamPlt", Fc.DC);
//                    Map<String, Object> mapId = getChildrenData(modelNodeId);
//                    String strNamPltValue = ((Map<String, Object>)mapId.get("dU")).get("value").toString();
//                    //byte[] byteNamPltValue = strNamPltValue.getBytes();
//                    //String packageType = "Linux";
//                    //packageType = "Windows";
//                    //if(packageType.equals("Windows")){
//                        //strNamPltValue = new String(byteNamPltValue, "UTF-8");
//                    //}
//                    String[] strNamPltValues = strNamPltValue.split("\\|");
//                    //logger.debug("" + NamPltValues.length);
//
//                    if(strNamPltValues.length < 5){
//                        String errorMsg = "【" + subStationName + "】 NamPlt:dU=>" + strNamPltValue + " ;描述错误!";
//                        logger.error(errorMsg);
//                        labelTips("【" + subStationName + "】 配置文件铭牌dU值定义错误", "error");
//                        sendErrorLog(subStationName, ipAddress, errorMsg);
//                        //continue;
//                    }
//                    //logger.debug(strNamPltValues[4].length() + "");
//                    if(strNamPltValues.length >= 5 && strNamPltValues[4].length() < 2){
//                        String errorMsg = "【" + subStationName + "】 NamPlt:dU=>" + strNamPltValue + " ;相位描述不完整!";
//                        logger.error(errorMsg);
//                        labelTips("【" + subStationName + "】 配置文件铭牌dU值相位描述不完整", "error");
//                        sendErrorLog(subStationName, ipAddress, errorMsg);
//                        //continue;
//                    }
//                    //logger.debug(JSON.toJSONString(mapId));
//                    logger.debug("【" + subStationName + "】 ------ [" + strNamPltValue + "] " + logicalNode.getReference().toString() + " 开始打包发送数据: " + doKeyList.size() +" 条 ------");
//                    for (String doKey : doKeyList){
//                        Map<String, Object> mapDo = new HashMap<>();
//                        for (Fc fc: SimpleUtils.FcList()){
//                            ModelNode modelNodeDo = logicalNode.getChild(doKey, fc);
//                            if(modelNodeDo == null){
//                                continue;
//                            }
//                            Map<String, Object> mapDataChildren = getChildrenData(modelNodeDo);
//                            if(mapDataChildren.get("t") != null){
//                                Map<String, Object> mapDataTime = (HashMap)mapDataChildren.get("t");
//                                long dataTime = SimpleUtils.DateTimeToMillisTime(mapDataTime.get("value").toString(), "yyyyMMddHHmmss");
//                                if(System.currentTimeMillis() - dataTime > 2 * 24 * 60 * 60 * 1000){
//                                    //logger.debug(mapDataTime.get("value").toString());
//                                    sendErrorLog(subStationName, ipAddress, logicalNode.getChild(doKey).getReference().toString() + ":" + mapDataTime.get("value").toString());
//                                }
//                            }
//                            mapDo.put(fc.toString(), getChildrenData(modelNodeDo));
//                        }
//                        mapDo.put("ID", mapId);
//                        Map<String, Object> mapData = new HashMap<>();
//                        mapData.put("type", "GC");
//                        if (ConfigUtil.isDebug) {
//                            logger.debug(doKey);
//                            logger.debug(logicalNode.getChild(doKey).getReference().toString());
//                        }
//                        mapData.put(ipAddress + "$" + logicalNode.getChild(doKey).getReference().toString(), mapDo);
//                        String data = JSON.toJSONString(mapData);
//                        //logger.debug(data);
//                        sendDataToMQ(data);
//                        //sendDataToIII(data);
//                        System.out.println(data);
//                    }
//                }
//            }
//        } catch (ServiceError e) {
//            System.out.println("Service Error requesting model." + e.getMessage());
//            String errorMsg = "Service Error requesting model." + e.getMessage().toString();
//            sendErrorLog(subStationName, ipAddress, errorMsg);
//            association.close();
//            return false;
//        } catch (IOException e) {
//            System.out.println("Fatal IOException requesting model." + e.getMessage());
//            String errorMsg = "Fatal IOException requesting model." + e.getMessage().toString();
//            sendErrorLog(subStationName, ipAddress, errorMsg);
//            return false;
//        }
//
//        //ServerModelParser parser = new ServerModelParser(serverModel);
//        return true;
//    }
//
//    private Map<String, Object> getChildrenData(ModelNode modelNode){
//        //logger.debug(modelNode.getName());
//        Map<String, Object> mapData = new HashMap<>();
//        if(modelNode.getChildren() == null){
//            try{
//                mapData = getBasicData(modelNode);
//            }catch (Exception e){
//                logger.error("数据解析出错!");
//                e.printStackTrace();
//            }
//            return mapData;
//        }
//        for (ModelNode modelNodeChild : modelNode.getChildren()) {
//            mapData.put(modelNodeChild.getName(), getChildrenData(modelNodeChild));
//        }
//        return mapData;
//    }
//
//    private Map<String, Object> getBasicData(ModelNode modelNode){
//        Map<String, Object> map = new HashMap<>();
//        BasicDataAttribute dataAttribute = (BasicDataAttribute)modelNode;
//        String dataReference = dataAttribute.getReference().toString();
//        map.put("basicType", dataAttribute.getBasicType().toString());
//        map.put("dchg", dataAttribute.getDchg());
//        map.put("qchg", dataAttribute.getQchg());
//        map.put("dupd", dataAttribute.getDupd());
//        //logger.debug((dataAttribute).toString());
////        if((dataReference.length() + 2) == dataAttribute.toString().length()){
////            map.put("value", null);
////            return map;
////        }
//        switch (dataAttribute.getBasicType()) {
//            case BOOLEAN:
//                map.put("value", ((BdaBoolean)dataAttribute).getValue());
//                break;
//            case ENTRY_TIME:
//                map.put("value", SimpleUtils.DataTimeParse(((BdaEntryTime)dataAttribute).getValueString()));
//                break;
//            case FLOAT32:
//                map.put("value", ((BdaFloat32)dataAttribute).getFloat().toString());
//                break;
//            case FLOAT64:
//                map.put("value", ((BdaFloat64)dataAttribute).getDouble().toString());
//                break;
//            case INT16:
//                map.put("value", ((BdaInt16)dataAttribute).getValue());
//                break;
//            case INT16U:
//                map.put("value", ((BdaInt16U)dataAttribute).getValue());
//                break;
//            case INT32:
//                map.put("value", ((BdaInt32)dataAttribute).getValue());
//                break;
//            case INT32U:
//                map.put("value", ((BdaInt32U)dataAttribute).getValue());
//                break;
//            case INT64:
//                map.put("value", ((BdaInt64)dataAttribute).getValue());
//                break;
//            case INT8:
//                map.put("value", ((BdaInt8)dataAttribute).getValue());
//                break;
//            case INT8U:
//                map.put("value", ((BdaInt8U)dataAttribute).getValue());
//                break;
//            case OCTET_STRING:
//                map.put("maxLength", ((BdaOctetString)dataAttribute).getMaxLength());
//                map.put("value", new String(((BdaOctetString)dataAttribute).getValue()));
//                break;
//            case TIMESTAMP:
//                map.put("value", SimpleUtils.DataTimeParse(((BdaTimestamp)dataAttribute).getValueString()));
//                break;
//            case UNICODE_STRING:
//                //logger.debug(((BdaUnicodeString)dataAttribute).toString());
//                //logger.debug(new String(((BdaUnicodeString)dataAttribute).getValue()));
//                map.put("maxLength", ((BdaUnicodeString)dataAttribute).getMaxLength());
//                map.put("value", new String(((BdaUnicodeString)dataAttribute).getValue()));
//                break;
//            case VISIBLE_STRING:
//                map.put("maxLength", ((BdaVisibleString)dataAttribute).getMaxLength());
//                        map.put("value", new String(((BdaVisibleString)dataAttribute).getValue()));
//                break;
//            case CHECK:
//                map.put("maxNumBits", ((BdaCheck)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaCheck)dataAttribute).getValueString());
//                break;
//            case DOUBLE_BIT_POS:
//                map.put("maxNumBits", ((BdaOptFlds)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaDoubleBitPos)dataAttribute).getDoubleBitPos().toString());
//                break;
//            case OPTFLDS:
//                map.put("maxNumBits", ((BdaOptFlds)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaOptFlds)dataAttribute).getValueString());
//                break;
//            case QUALITY:
//                //logger.debug(((BdaQuality)dataAttribute).toString());
//                //logger.debug(((BdaQuality)dataAttribute).getValue().toString());
//                //logger.debug(((BdaQuality)dataAttribute).getValidity().toString());
//                //logger.debug(((BdaQuality)dataAttribute).getValidity().getIntValue() + "");
//                map.put("maxNumBits", ((BdaQuality)dataAttribute).getMaxNumBits());
//                if((dataReference.length() + 2) == dataAttribute.toString().length()) {
//                    map.put("value", BdaQuality.Validity.GOOD);
//                    break;
//                }
//                map.put("value", ((BdaQuality)dataAttribute).getValidity().toString());
//                break;
//            case REASON_FOR_INCLUSION:
//                map.put("maxNumBits", ((BdaReasonForInclusion)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaReasonForInclusion)dataAttribute).getValueString());
//                break;
//            case TAP_COMMAND:
//                map.put("maxNumBits", ((BdaTapCommand)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaTapCommand)dataAttribute).getTapCommand().toString());
//                break;
//            case TRIGGER_CONDITIONS:
//                map.put("maxNumBits", ((BdaTriggerConditions)dataAttribute).getMaxNumBits());
//                map.put("value", ((BdaTriggerConditions)dataAttribute).getValueString());
//                break;
//            default:
//                logger.debug("BasicType " + dataAttribute.getBasicType() + " unknown");
//                //map.put("value", ((BdaEntryTime)dataAttribute).getValue());
//                //throw new IllegalArgumentException("BasicType " + dataAttribute.getBasicType() + " unknown");
//        }
//        return map;
//    }
//
//    private boolean sendDataToMQ(String data){
//        if (ConfigUtil.isDebug) {
//            logger.debug("发送数据:" + data);
//        }
//        if(producer == null){
//            if(!ConfigUtil.isDebug) {
//                //logger.error("消息队列初始化未完成");
//            }
//            return false;
//        }
//        try {
//            producer.sendMessage(data);
//        } catch (IOException e) {
//            e.printStackTrace();
//            return false;
//        }
//        return true;
//    }
//
//    private boolean sendDataToIII(String data){
//        // 检查/唤醒连接
//        client.conn();
//        try {
//            System.out.println("try socket client send");
//            client.sendData(data);
//        } catch (Exception e) {
//            e.printStackTrace();
//            return false;
//        }
//        return true;
//    }
//
//    private boolean sendErrorLog(String substationName, String ipAddress, String data){
//        Map<String, Object> errorMsgMap = new HashMap<>();
//        if(ipAddress == null || ipAddress.length() < 7){
//            return false;
//        }
//        errorMsgMap.put("type", "ERR_MSG");
//        errorMsgMap.put("name", substationName);
//        errorMsgMap.put("ip", ipAddress);
//        errorMsgMap.put("data", data);
//        errorMsgMap.put("datetime", SimpleUtils.CurrentDateTime());
//        sendDataToMQ(JSON.toJSONString(errorMsgMap));
//        return true;
//    }
//
//    private boolean sendFileDate(String ip, String fileName, String fileData) {
//        //logger.debug(fileName);
//        Map<String, Object> mapData = new HashMap<>();
//        mapData.put("type", "WF");//type目前有GC、ZT、ZH,增加一个WF标记为谱图
//        Map<String, Object> mapSubData = new HashMap<>();
//        Map<String, Object> mapSubSubData = new HashMap<>();
//        mapSubSubData.put("fileName", FileOption.trimPath(fileName));
//        mapSubData.put("ID", mapSubSubData);
//        mapSubData.put("FD", fileData);
//        //mapData.put(ip + "$" + "BSCYB01HNZF2_ZT2202/PTRSIML1" + "." + "WaveFileNum", mapSubData);
//        mapData.put(ip + "$" + "WaveFileNum", mapSubData);
//        String data = JSON.toJSONString(mapData);
//        //logger.debug(jsonObject.toString());
//        return sendDataToMQ(data);
//    }
//
//    /**
//     * 读取文件进行压缩并编码
//     * @param filePath
//     * @param fileName
//     * @return
//     */
//    private String getFileCompressBase64(String filePath, String fileName) {
//        byte[] fileBytes = FileOption.readFileByByte(filePath, fileName);
//        //logger.debug("二进制长度 = " + fileBytes.length);
//        //压缩
//        //logger.debug("压缩前时间:" + System.currentTimeMillis());
//        byte[] compressBytes = GZIPUtils.compress(fileBytes);
//        //logger.debug("压缩后时间:" + System.currentTimeMillis());
//        //logger.debug("二进制压缩后长度 = " + compressBytes.length);
//        //编码
//        final BASE64Encoder encoder = new BASE64Encoder();
//        //logger.debug("编码前时间:" + System.currentTimeMillis());
//        final String encodedStr = encoder.encode(compressBytes);
//        //logger.debug("编码后时间:" + System.currentTimeMillis());
//        //logger.debug("编码后字符串长度 = " + encodedStr.length());
//        return encodedStr;
//    }
//
//    protected void collectStart() {
//        threads = new Thread[tableModel.getRowCount()];
//        timers = new Timer[tableModel.getRowCount()];
//        logger.debug("初始化 " + tableModel.getRowCount() + " 个站点!");
//        for(int i = 0; i < tableModel.getRowCount(); i++){
////            if(i != 0){
////                continue;
////            }
//            final String name = tableModel.getValueAt(i,0).toString();
//            final String ip = tableModel.getValueAt(i,1).toString();
//            final int port = Integer.valueOf(tableModel.getValueAt(i,2).toString());
//            final int threadIndex = i;
//            threads[i] = new Thread(new Runnable() {
//                @Override
//                public void run() {
//                    timers[threadIndex] = new Timer();
//
//                    TimerTask timerTask = new TimerTask() {
//                        @Override
//                        public void run() {
//                            logger.debug("定时任务【" + (threadIndex + 1) + " - " + name + "】 开始连接至变电站 => " + ip + ":" + port
//                                    + " [" + SimpleUtils.CurrentDateTime() + "]");
//                            collectToSubstation(ip, port, threadIndex);
//                        }
//                    };
//                    timers[threadIndex].schedule(timerTask, threadIndex * SubstaionIntervalTimes, CollectIntervalTimes);
//                }
//            });
//            threads[i].start();
//        }
//    }
//
//    protected void collectStop(){
//        for(int i = 0; i < timers.length; i++){
//            //logger.debug(threads[i].isAlive() + "");
//            timers[i].cancel();
//        }
//        logger.debug("停止 " + timers.length + " 个采集任务!");
//        labelTips("停止 " + timers.length + " 个采集任务!", "");
//    }
//
//    protected void dataLoad(){
//        tableModel.setDataVector(ConfigUtil.readSubstation(txtSubstationList.getText()), columnTitles);
//        //logger.debug("-- 站点列表加载完成 --");
//        labelTips("站点列表加载完成^_^!", "");
//    }
//
//    private void labelTips(String msg, String msgType){
//        msg = msg + "[" + SimpleUtils.CurrentDateTime() + "]";
//        switch (msgType){
//            case "error":
//                labelTips.setText(msg);
//                labelTips.setForeground(Color.RED);
//                break;
//            case "warning":
//                labelTips.setText(msg);
//                labelTips.setForeground(Color.PINK);
//                break;
//            default:
//                labelTips.setText(msg);
//                labelTips.setForeground(Color.BLACK);
//        }
//    }
//
//    public void checkNet(String substationName, String ipAddress, int port){
//        Map<String, Object> networkMsg = new HashMap<>();
//        boolean pingResult = NetworkUtils.pingByLinuxCmd(ipAddress, 5 * 1000);
//        boolean telnetResult = NetworkUtils.telnet(ipAddress, port, 5 * 1000);
//        networkMsg.put("type", "NET");
//        networkMsg.put("name", substationName);
//        networkMsg.put("ip", ipAddress);
//        networkMsg.put("port", 102);
//        networkMsg.put("ping", pingResult);
//        networkMsg.put("telnet", telnetResult);
//        networkMsg.put("datetime", SimpleUtils.CurrentDateTime());
//        sendDataToMQ(JSON.toJSONString(networkMsg));
//    }
//
//    public void startNetworkReview(){
//        networkReviewTimer = new Timer();
//        networkReviewTimer.schedule(new TimerTask() {
//            @Override
//            public void run() {
//                logger.debug("开始检测网络...");
//                String ipListFileStr = FileOption.readFileByString("myconfig/ip_list.txt", "UTF-8");
//                String newIpListFileStr = "";
//                String[] ipList = ipListFileStr.split("\n");
//                for (String ip: ipList) {
//                    logger.debug(ip);
//                    Map<String, Object> networkMsg = new HashMap<>();
//                    if(ip == null || ip.length() < 7){
//                        continue;
//                    }
//                    String[]  ipInfo = ip.split("-");
//                    if(ipInfo[1] == null){
//                        continue;
//                    }
//                    boolean pingResult = NetworkUtils.pingByLinuxCmd(ipInfo[1], 5 * 1000);
//                    boolean telnetResult = NetworkUtils.telnet(ipInfo[1], 102, 5 * 1000);
//                    //newIpListFileStr += ipInfo[0] + "-" + ipInfo[1] + "-" + pingResult + "-" + telnetResult + "-" + SimpleUtils.CurrentDateTime() + "\n";
//                    newIpListFileStr += ipInfo[1] + "-" + pingResult + "-" + telnetResult + "-" + SimpleUtils.CurrentDateTime() + "\n";
//                    networkMsg.put("type", "NET");
//                    networkMsg.put("name", ipInfo[0]);
//                    networkMsg.put("ip", ipInfo[1]);
//                    networkMsg.put("port", 102);
//                    networkMsg.put("ping", pingResult);
//                    networkMsg.put("telnet", telnetResult);
//                    networkMsg.put("datetime", SimpleUtils.CurrentDateTime());
//                    sendDataToMQ(JSON.toJSONString(networkMsg));
//                    logger.debug(JSON.toJSONString(networkMsg));
//                    FileOption.writeFile(newIpListFileStr, "myconfig", "ip_list_result.txt");
//                }
//                //FileOption.writeFile(newIpListFileStr, "myconfig", "ip_list_result.txt");
//                logger.debug("检测完成!");
//            }
//        }, 1000, 10 * 60 * 1000);
//    }
//
//    public static void main(String[] args) {
//
//        logger.debug("System starting...");
//        MyClient clientGui = new MyClient();
//        clientGui.ClientMain();
//    }
//}