New file |
| | |
| | | package com.dy.testServer.console; |
| | | |
| | | import java.io.PrintWriter; |
| | | import java.net.InetAddress; |
| | | import java.net.UnknownHostException; |
| | | import java.util.Iterator; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | import com.dy.common.mw.channel.rmi.RmiConfigVo; |
| | | import com.dy.common.mw.channel.rmi.RmiUnit; |
| | | import com.dy.testServer.ServerProperties; |
| | | import com.dy.testServer.forRmi.MwTestClientStatus; |
| | | import com.dy.testServer.forRmi.Manager; |
| | | |
| | | public class Command { |
| | | |
| | | private static final String[] commands ; |
| | | static{ |
| | | commands = new String[]{ |
| | | "config 查看配置信息", |
| | | "show 显示mwTest情况", |
| | | "start 启动mwTest建立TCP连接数据", |
| | | "report 启动mwTest RTU上报数据", |
| | | "exit 退出", |
| | | }; |
| | | } |
| | | |
| | | |
| | | public static boolean dealCommand(String command, PrintWriter prtWrt){ |
| | | boolean exit = false ; |
| | | if (command.equals("help")) { |
| | | outCommand(prtWrt); |
| | | } else if (command.equals("config")) { |
| | | config(prtWrt); |
| | | } else if (command.equals("show")) { |
| | | show(prtWrt); |
| | | } else if (command.equals("start")) { |
| | | startNetConnect(prtWrt); |
| | | } else if (command.equals("report")) { |
| | | startRtuReport(prtWrt); |
| | | } else if(command.equals("exit")){ |
| | | exit = true ; |
| | | } else { |
| | | outError(prtWrt); |
| | | } |
| | | return exit ; |
| | | } |
| | | private static void outCommand(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println("命令"); |
| | | for(String s : commands){ |
| | | prtWrt.println(" " + s); |
| | | } |
| | | prtWrt.println(""); |
| | | } |
| | | private static void outError(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println("命令不可识别!"); |
| | | prtWrt.println(""); |
| | | } |
| | | |
| | | private static void config(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println("相关mwTest的配置"); |
| | | prtWrt.println(" 模拟客户的RtuAddr起始号:" + ServerProperties.rtuAddrStart); |
| | | prtWrt.println(" 模拟客户的RtuAddr截止号:" + ServerProperties.rtuAddrEnd); |
| | | prtWrt.println(" 每个mwTest分配的RtuAddr数:" + ServerProperties.rtuAddrPerMwTest); |
| | | prtWrt.println(" 通信中间件IP:" + ServerProperties.tcpServerIp); |
| | | prtWrt.println(" 通信中间件端口:" + ServerProperties.tcpServerPort); |
| | | prtWrt.println(" mwTest发送数据间隔(秒):" + ServerProperties.sendInterval); |
| | | prtWrt.println(" mwTest每RtuAddr号发送数据次数:" + ServerProperties.sendTimes); |
| | | prtWrt.println(" mwTest每一轮次发送数据,其中包括心跳发送次数:" + ServerProperties.heartbeatTimes); |
| | | prtWrt.println("本服务RMI Server配置"); |
| | | String ip = null ; |
| | | try { |
| | | ip = InetAddress.getLocalHost().getHostAddress(); |
| | | } catch (UnknownHostException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | RmiConfigVo confVo = RmiUnit.getInstance().getAdapter().getConfig() ; |
| | | if(ip != null){ |
| | | prtWrt.println(" RMI Server:" + ip + ":" + confVo.port + "/" + confVo.context); |
| | | }else{ |
| | | prtWrt.println(" RMI Server:[ip]:" + confVo.port + "/" + confVo.context); |
| | | } |
| | | prtWrt.println(""); |
| | | } |
| | | |
| | | private static void show(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println("当前已注册mwTest客户端数量:" + Manager.id2TokenMap.size()); |
| | | if(Manager.id2TokenMap.size() > 0){ |
| | | prtWrt.println("mwTest客户端及其工作信息"); |
| | | Set<Map.Entry<String, MwTestClientStatus>> set = Manager.token2ClientMap.entrySet() ; |
| | | Iterator<Map.Entry<String, MwTestClientStatus>> it = set.iterator() ; |
| | | Map.Entry<String, MwTestClientStatus> ent ; |
| | | while(it.hasNext()){ |
| | | ent = it.next() ; |
| | | prtWrt.println(" mwTest客户端(token=" + ent.getKey() + ")"); |
| | | MwTestClientStatus sta = ent.getValue() ; |
| | | if(sta != null){ |
| | | if(sta.confVo != null){ |
| | | prtWrt.println(" rtuAddr范围:" + sta.confVo.rtuAddrStart + "--" + sta.confVo.rtuAddrEnd); |
| | | } |
| | | if(sta.startVo != null){ |
| | | prtWrt.println(" TCP连接:" + (sta.startVo.start?"已经开始":"未开始")); |
| | | }else{ |
| | | prtWrt.println(" TCP连接:未开始") ; |
| | | } |
| | | if(sta.reportVo != null){ |
| | | prtWrt.println(" RTU上报数据:" + (sta.reportVo.report?"已经开始":"未开始")); |
| | | }else{ |
| | | prtWrt.println(" RTU上报数据:未开始") ; |
| | | } |
| | | if(sta.count != null){ |
| | | prtWrt.println(" 已经上报数据:" + sta.count + "条"); |
| | | } |
| | | if(sta.overCount != null){ |
| | | prtWrt.println(" 已经完成上报数据:" + sta.overCount + "台RTU"); |
| | | } |
| | | if(sta.over != null && sta.over){ |
| | | prtWrt.println(" 上报数据已经完成,共用时:" + sta.seconds + "秒"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | prtWrt.println(""); |
| | | } |
| | | |
| | | private static void startNetConnect(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println(" 已经允许mwTest建立TCP连接"); |
| | | prtWrt.println(""); |
| | | Manager.enablemwTestStartTcpConnect = true ; |
| | | } |
| | | |
| | | private static void startRtuReport(PrintWriter prtWrt){ |
| | | prtWrt.println(""); |
| | | prtWrt.println(" 已经允许mwTest RTU上报数据了"); |
| | | prtWrt.println(""); |
| | | Manager.enablemwTestStartRtuReport = true ; |
| | | } |
| | | |
| | | |
| | | } |