|  |  |  | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V1.CodeV1; | 
|---|
|  |  |  | import com.dy.common.mw.protocol.p206V1.ProtocolConstantV206V1; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.ServerProperties; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.p206V1.Cd02; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.p206V1.Cd10; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.p206V1.Cd92; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.p206V1.Cd93; | 
|---|
|  |  |  | import com.dy.pipirrComCreator.p206V1.P206V1Deal; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.io.PrintWriter; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public class Command { | 
|---|
|  |  |  | 
|---|
|  |  |  | static{ | 
|---|
|  |  |  | commands = new String[]{ | 
|---|
|  |  |  | "config 查看配置信息", | 
|---|
|  |  |  | "XY ... 协议命令", | 
|---|
|  |  |  | "XY ... 协议命令(3C、10、21、37、50、65、66、67、91、92、93、97、98、99、A0、A1、A2)", | 
|---|
|  |  |  | "XY -h 协议命令帮助", | 
|---|
|  |  |  | "exit 退出", | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }else if(command.equals("exit")){ | 
|---|
|  |  |  | exit = true ; | 
|---|
|  |  |  | }else if(isProtocolCom(command)){ | 
|---|
|  |  |  | dealProtocolCom(command, prtWrt); | 
|---|
|  |  |  | if(ServerProperties.protocolName.equals(ProtocolConstantV206V1.protocolName)){ | 
|---|
|  |  |  | P206V1Deal.dealProtocolCom(command, prtWrt); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | out("当前不支持协议" + ServerProperties.protocolName, prtWrt)  ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | outNoIdentify(prtWrt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return exit ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static boolean isProtocolCom(String command){ | 
|---|
|  |  |  | public static boolean isProtocolCom(String command){ | 
|---|
|  |  |  | if(ServerProperties.protocolName.equals(ProtocolConstantV206V1.protocolName)){ | 
|---|
|  |  |  | String[] coms = command.split(" "); | 
|---|
|  |  |  | for (String com : coms){ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void dealProtocolCom(String command, PrintWriter prtWrt) throws Exception{ | 
|---|
|  |  |  | String[] coms = command.split(" "); | 
|---|
|  |  |  | List<String> comList = new ArrayList<>(); | 
|---|
|  |  |  | for (String com : coms){ | 
|---|
|  |  |  | if(!com.equals("")){ | 
|---|
|  |  |  | comList.add(com) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String com = comList.get(0) ; | 
|---|
|  |  |  | switch (com) { | 
|---|
|  |  |  | case CodeV1.cd_02: cd02(comList, prtWrt); break; | 
|---|
|  |  |  | case CodeV1.cd_10: cd10(comList, prtWrt); break; | 
|---|
|  |  |  | case CodeV1.cd_92: cd92(comList, prtWrt); break; | 
|---|
|  |  |  | case CodeV1.cd_93: cd93(comList, prtWrt); break; | 
|---|
|  |  |  | default: outNoIdentify(prtWrt); break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static void cd02(List<String> comList, PrintWriter prtWrt)throws Exception{ | 
|---|
|  |  |  | if(comList.size() > 1){ | 
|---|
|  |  |  | String p = comList.get(1); | 
|---|
|  |  |  | if(p.equals("-h")){ | 
|---|
|  |  |  | prtWrt.println("02[Enter](心跳命令应答(链路维持报应答))"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | outNoIdentify(prtWrt) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | out(new Cd02().hex(ServerProperties.rtuAddr), prtWrt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void cd10(List<String> comList, PrintWriter prtWrt)throws Exception{ | 
|---|
|  |  |  | if(comList.size() > 1){ | 
|---|
|  |  |  | String p1 = comList.get(1); | 
|---|
|  |  |  | if(p1.equals("-h")){ | 
|---|
|  |  |  | prtWrt.println("10 *...*[Enter](设置控制器地址)"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | String[] ps = params2Grp(comList) ; | 
|---|
|  |  |  | Cd10 cd = new Cd10() ; | 
|---|
|  |  |  | String msg = cd.checkParams(ps) ; | 
|---|
|  |  |  | if(msg == null){ | 
|---|
|  |  |  | out(new Cd10().hex(ServerProperties.rtuAddr, ps), prtWrt); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | out(msg, prtWrt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | outNoParams(prtWrt); ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void cd92(List<String> comList, PrintWriter prtWrt)throws Exception{ | 
|---|
|  |  |  | if(comList.size() > 1){ | 
|---|
|  |  |  | String p = comList.get(1); | 
|---|
|  |  |  | if(p.equals("-h")){ | 
|---|
|  |  |  | prtWrt.println("92[Enter](平台远程开启阀门)"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | outNoIdentify(prtWrt) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | out(new Cd92().hex(ServerProperties.rtuAddr), prtWrt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void cd93(List<String> comList, PrintWriter prtWrt)throws Exception{ | 
|---|
|  |  |  | if(comList.size() > 1){ | 
|---|
|  |  |  | String p = comList.get(1); | 
|---|
|  |  |  | if(p.equals("-h")){ | 
|---|
|  |  |  | prtWrt.println("93[Enter](平台远程关闭阀门)"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | outNoIdentify(prtWrt) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | out(new Cd93().hex(ServerProperties.rtuAddr), prtWrt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static String[] params2Grp(List<String> comList){ | 
|---|
|  |  |  | String[] ps = new String[comList.size()-1] ; | 
|---|
|  |  |  | for(int i = 1; i < comList.size(); i++){ | 
|---|
|  |  |  | ps[i-1] = comList.get(i) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ps ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static void out(String str, PrintWriter prtWrt){ | 
|---|
|  |  |  | public static void out(String str, PrintWriter prtWrt){ | 
|---|
|  |  |  | prtWrt.println(str==null?"":str); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void outHelp(PrintWriter prtWrt){ | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void outConfig(PrintWriter prtWrt){ | 
|---|
|  |  |  | public static void outConfig(PrintWriter prtWrt){ | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | prtWrt.println("预先设置"); | 
|---|
|  |  |  | prtWrt.println("  协议:" + ServerProperties.protocolName); | 
|---|
|  |  |  | 
|---|
|  |  |  | prtWrt.println("  IC卡编号:" + ServerProperties.icCardNo); | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void outNoIdentify(PrintWriter prtWrt){ | 
|---|
|  |  |  | public static void outNoIdentify(PrintWriter prtWrt){ | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | prtWrt.println("命令不可识别!"); | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private static void outNoParams(PrintWriter prtWrt){ | 
|---|
|  |  |  | public static void outNoParams(PrintWriter prtWrt){ | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | prtWrt.println("请输入命令参数!"); | 
|---|
|  |  |  | prtWrt.println(""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static void main(String[] args) { | 
|---|