1、协议命令生成器增量开发,增加实现几个设置与对应的查询命令;
2、修改陈旧bug。
5 文件已复制
5 文件已重命名
4个文件已修改
5个文件已添加
640 ■■■■ 已修改文件
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_21_Down.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_21_Down.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IPUtils.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/console/Command.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd02.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd10.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd21.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd37.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd3C.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd50.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd65.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd66.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd67.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd91.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd92.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd93.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Deal.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/说明.txt 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1/parse/Cd_21_Down.java
@@ -97,12 +97,12 @@
            ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
            index = 0 ;
            byte[] bs = new byte[13] ;
            String[] ipPorts = cvo.ip.split(".") ;
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[0]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[1]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[2]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[3]), index++);
            byte[] bs = new byte[14] ;
            String[] ip = cvo.ip.split("\\.") ;
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[0]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[1]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[2]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[3]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.port, index);
            index += 2 ;
            GlCreate.createPw(bs, index);
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V2/parse/Cd_21_Down.java
@@ -90,12 +90,12 @@
            ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
            index = 0 ;
            byte[] bs = new byte[13] ;
            String[] ipPorts = cvo.ip.split(".") ;
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[0]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[1]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[2]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, (byte) Integer.parseInt(ipPorts[3]), index++);
            byte[] bs = new byte[14] ;
            String[] ip = cvo.ip.split("\\.") ;
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[0]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[1]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[2]), index++);
            ByteUtilUnsigned.byte2Byte(bs, (byte) Integer.parseInt(ip[3]), index++);
            ByteUtilUnsigned.short2Bytes_LE(bs, cvo.port, index);
            index += 2 ;
            GlCreate.createPw(bs, index);
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IPUtils.java
@@ -338,4 +338,11 @@
    public static int length(final CharSequence cs) {
        return cs == null ? 0 : cs.length();
    }
    public static void main(String[] args) {
        String ip = "1.2.3.4";
        if(internalIp(ip)){
            System.out.println("内部IP");
        }
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/console/Command.java
@@ -3,14 +3,9 @@
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 {
@@ -20,6 +15,7 @@
        commands = new String[]{
                "config æŸ¥çœ‹é…ç½®ä¿¡æ¯",    
                "XY ... åè®®å‘½ä»¤",
                "XY -h åè®®å‘½ä»¤å¸®åŠ©",
                "exit é€€å‡º",
        };
    }
@@ -35,13 +31,17 @@
        }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){
@@ -56,89 +56,8 @@
        }
        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){
@@ -149,7 +68,7 @@
        }
        prtWrt.println("");
    }
    private static void outConfig(PrintWriter prtWrt){
    public static void outConfig(PrintWriter prtWrt){
        prtWrt.println("");
        prtWrt.println("预先设置");
        prtWrt.println("  åè®®ï¼š" + ServerProperties.protocolName);
@@ -159,18 +78,16 @@
        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) {
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd.java
@@ -9,11 +9,14 @@
 * @Date: 2025/5/7 8:43
 * @Description
 */
public abstract class Cd {
public abstract class P206V1Cd {
    protected static final byte CTRL = (byte)0xB0 ;//控制域
    public abstract String checkParams(String ...params) ;
    public abstract String helpInfo() ;
    public abstract String hex(String rtuAddr, String ...params) throws Exception ;
    public abstract byte[] bs(String rtuAddr, String ...params) throws Exception ;
    public byte[] createHead(String rtuAddr, String code, byte ctrl)throws Exception {
        byte[] bsHead = new byte[ProtocolConstantV206V1.lenHead2Code] ;
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd02.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -8,20 +8,24 @@
 * @Date: 2025/5/7 8:42
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd02 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](心跳命令应答(链路维持报应答))" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,8 +35,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte[] bs = new byte[1] ;
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd10.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd10.java
@@ -9,7 +9,7 @@
 * @Date: 2025/5/7 9:30
 * @Description
 */
public class Cd10 extends Cd {
public class P206V1Cd10 extends P206V1Cd {
    public static final String ComCode = "10" ;
@@ -24,6 +24,9 @@
            return "控制器地址参数必须是12位数字" ;
        }
        return null ;
    }
    public String helpInfo() {
        return ComCode + " *...*[Enter](设置控制器地址)" ;
    }
    /**
     * æž„造心跳数据
@@ -42,7 +45,7 @@
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0;
        byte[] bs = new byte[13];
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd21.java
New file
@@ -0,0 +1,87 @@
package com.dy.pipirrComCreator.p206V1;
import com.dy.common.mw.protocol.p206V1.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.ByteUtilUnsigned;
import com.dy.common.util.IPUtils;
import com.dy.common.util.NumUtil;
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 11:25
 * @Description
 */
public class P206V1Cd21 extends P206V1Cd {
    public static final String ComCode = "21" ;
    public String checkParams(String ...params){
        if(params.length != 2){
            return "只有IP和端口两个参数" ;
        }
        if(!IPUtils.ipValid(params[0])){
            return "IP地址不正确" ;
        }
        if(IPUtils.internalIp(params[0])){
            return "IP地址必须是外网IP" ;
        }
        if(!NumUtil.isPlusIntNumber(params[1])){
            return "端口号必须是正整数" ;
        }
        int port = Integer.parseInt(params[1]) ;
        if(port < 1 || port > 65535){
            return "端口号必须在1-65535之间" ;
        }
        return null ;
    }
    public String helpInfo() {
        return ComCode + " *...* *...*[Enter](设置服务端IP和端口)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0 ;
        byte[] bs = new byte[14] ;
        String[] ip = params[0].split("\\.") ;
        ByteUtilUnsigned.byte2Byte(bs, Byte.parseByte(ip[0]), n++);
        ByteUtilUnsigned.byte2Byte(bs, Byte.parseByte(ip[1]), n++);
        ByteUtilUnsigned.byte2Byte(bs, Byte.parseByte(ip[2]), n++);
        ByteUtilUnsigned.byte2Byte(bs, Byte.parseByte(ip[3]), n++);
        ByteUtilUnsigned.short2Bytes_LE(bs, Short.parseShort(params[1]), n);
        n += 2 ;
        GlCreate.createPw(bs, n);
        n += 2 ;
        GlCreate.createTp(bs, n);
        bytes = ByteUtil.bytesMerge(bytes, bs);
        GlCreate.createLen(bytes);//长度放字节数组中
        byte[] bsTail = GlCreate.createCrcTail4P206(bytes) ;//CRC和尾叠加字节数组中
        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
        return bytes ;
    }
    public static void main(String[] args) throws Exception {
        String[] ps = new String[]{"1.2.3.4", "123"} ;
        new P206V1Cd21().hex("530115059980", ps) ;
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd37.java
New file
@@ -0,0 +1,75 @@
package com.dy.pipirrComCreator.p206V1;
import com.dy.common.mw.protocol.p206V1.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.ByteUtilUnsigned;
import com.dy.common.util.NumUtil;
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 14:42
 * @Description
 */
public class P206V1Cd37 extends P206V1Cd {
    public static final String ComCode = "37" ;
    public String checkParams(String ...params){
        if(params.length != 1){
            return "只有流量采集周期一个参数" ;
        }
        if(!NumUtil.isPlusIntNumber(params[0])){
            return "流量采集周期必须是正整数" ;
        }
        int cycle = Integer.parseInt(params[0]) ;
        if(cycle < 1 || cycle > 32767){
            return "流量采集周期必须在1-32767之间" ;
        }
        return null ;
    }
    public String helpInfo() {
        return ComCode + " *...*[Enter](设置流量采集周期)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0 ;
        byte[] bs = new byte[10];
        ByteUtilUnsigned.short2Bytes_LE(bs, Short.parseShort(params[0]), n);
        n += 2;
        GlCreate.createPw(bs, n);
        n += 2;
        GlCreate.createTp(bs, n);
        bytes = ByteUtil.bytesMerge(bytes, bs);
        GlCreate.createLen(bytes);//长度放字节数组中
        byte[] bsTail = GlCreate.createCrcTail4P206(bytes) ;//CRC和尾叠加字节数组中
        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
        return bytes ;
    }
    public static void main(String[] args) throws Exception {
        String[] ps = new String[]{"1.2.3.4", "123"} ;
        new P206V1Cd3C().hex("530115059980", ps) ;
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd3C.java
New file
@@ -0,0 +1,76 @@
package com.dy.pipirrComCreator.p206V1;
import com.dy.common.mw.protocol.p206V1.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.ByteUtilUnsigned;
import com.dy.common.util.IPUtils;
import com.dy.common.util.NumUtil;
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 11:25
 * @Description
 */
public class P206V1Cd3C extends P206V1Cd {
    public static final String ComCode = "3C" ;
    public String checkParams(String ...params){
        if(params.length != 1){
            return "只有自报周期一个参数" ;
        }
        if(!NumUtil.isPlusIntNumber(params[0])){
            return "自报周期必须是正整数" ;
        }
        int cycle = Integer.parseInt(params[0]) ;
        if(cycle < 1 || cycle > 32767){
            return "自报周期必须在1-32767之间" ;
        }
        return null ;
    }
    public String helpInfo() {
        return ComCode + " *...*[Enter](设置自报周期)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0 ;
        byte[] bs = new byte[10];
        ByteUtilUnsigned.short2Bytes_LE(bs, Short.parseShort(params[0]), n);
        n += 2;
        GlCreate.createPw(bs, n);
        n += 2;
        GlCreate.createTp(bs, n);
        bytes = ByteUtil.bytesMerge(bytes, bs);
        GlCreate.createLen(bytes);//长度放字节数组中
        byte[] bsTail = GlCreate.createCrcTail4P206(bytes) ;//CRC和尾叠加字节数组中
        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
        return bytes ;
    }
    public static void main(String[] args) throws Exception {
        String[] ps = new String[]{"1.2.3.4", "123"} ;
        new P206V1Cd3C().hex("530115059980", ps) ;
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd50.java
copy from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java copy to pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd50.java
File was copied from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -5,23 +5,26 @@
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 8:42
 * @Date: 2025/5/7 14:08
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd50 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public static final String ComCode = "50" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](查询控制器地址)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,14 +34,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0xF2 ;//数据域: 1 ä¸ªå­—节,F0 ç™»å½•, F1 é€€å‡ºç™»å½•,F2 åœ¨çº¿ä¿æŒã€‚
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        GlCreate.createLen(bytes);//长度放字节数组中
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd65.java
copy from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java copy to pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd65.java
File was copied from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -5,23 +5,26 @@
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 8:42
 * @Date: 2025/5/7 14:08
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd65 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public static final String ComCode = "65" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](查询自报周期)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,14 +34,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0xF2 ;//数据域: 1 ä¸ªå­—节,F0 ç™»å½•, F1 é€€å‡ºç™»å½•,F2 åœ¨çº¿ä¿æŒã€‚
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        GlCreate.createLen(bytes);//长度放字节数组中
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd66.java
copy from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java copy to pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd66.java
File was copied from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -5,23 +5,26 @@
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 8:42
 * @Date: 2025/5/7 14:08
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd66 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public static final String ComCode = "66" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](查询服务端IP和端口)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,14 +34,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0xF2 ;//数据域: 1 ä¸ªå­—节,F0 ç™»å½•, F1 é€€å‡ºç™»å½•,F2 åœ¨çº¿ä¿æŒã€‚
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        GlCreate.createLen(bytes);//长度放字节数组中
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd67.java
copy from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java copy to pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd67.java
File was copied from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -5,23 +5,26 @@
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 8:42
 * @Date: 2025/5/7 14:08
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd67 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public static final String ComCode = "67" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](查询查询流量采集周期)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,14 +34,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0xF2 ;//数据域: 1 ä¸ªå­—节,F0 ç™»å½•, F1 é€€å‡ºç™»å½•,F2 åœ¨çº¿ä¿æŒã€‚
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        GlCreate.createLen(bytes);//长度放字节数组中
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd91.java
copy from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java copy to pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd91.java
File was copied from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd02.java
@@ -5,23 +5,26 @@
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 8:42
 * @Date: 2025/5/7 14:08
 * @Description
 */
public class Cd02 extends Cd {
public class P206V1Cd91 extends P206V1Cd {
    public static final String ComCode = "02" ;
    public static final String ComCode = "91" ;
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](清空历史记录)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -31,14 +34,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0xF2 ;//数据域: 1 ä¸ªå­—节,F0 ç™»å½•, F1 é€€å‡ºç™»å½•,F2 åœ¨çº¿ä¿æŒã€‚
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        GlCreate.createLen(bytes);//长度放字节数组中
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd92.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd92.java
@@ -8,7 +8,7 @@
 * @Date: 2025/5/7 10:36
 * @Description
 */
public class Cd92 extends Cd {
public class P206V1Cd92 extends P206V1Cd {
    public static final String ComCode = "92" ;
@@ -20,13 +20,16 @@
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](平台远程开启阀门)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr,params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -36,8 +39,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0 ;
        byte[] bs = new byte[9] ;
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Cd93.java
File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/Cd93.java
@@ -8,7 +8,7 @@
 * @Date: 2025/5/7 10:38
 * @Description
 */
public class Cd93 extends Cd {
public class P206V1Cd93 extends P206V1Cd {
    public static final String ComCode = "93" ;
@@ -20,13 +20,16 @@
    public String checkParams(String ...params){
        return null ;
    }
    public String helpInfo() {
        return ComCode + "[Enter](平台远程关闭阀门)" ;
    }
    /**
     * æž„造心跳数据
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public String hex(String rtuAddr) throws Exception {
        byte[] bytes = bs(rtuAddr) ;
    public String hex(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = bs(rtuAddr, params) ;
        String hex = ByteUtil.bytes2Hex(bytes, false) ;
        return hex ;
    }
@@ -36,8 +39,8 @@
     * @return å­—节数组
     * @throws Exception å¼‚常
     */
    public byte[] bs(String rtuAddr) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, Cd.CTRL);
    public byte[] bs(String rtuAddr, String ...params) throws Exception {
        byte[] bytes = createHead(rtuAddr, ComCode, P206V1Cd.CTRL);
        byte n = 0 ;
        byte[] bs = new byte[9] ;
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/src/main/java/com/dy/pipirrComCreator/p206V1/P206V1Deal.java
New file
@@ -0,0 +1,96 @@
package com.dy.pipirrComCreator.p206V1;
import com.dy.common.mw.protocol.p206V1.CodeV1;
import com.dy.pipirrComCreator.ServerProperties;
import com.dy.pipirrComCreator.console.Command;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
/**
 * @Author: liurunyu
 * @Date: 2025/5/7 11:17
 * @Description
 */
public class P206V1Deal {
    public 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: cdWithoutParam(new P206V1Cd02(), comList, prtWrt); break;
            case CodeV1.cd_10: cdWithParam(new P206V1Cd10(), comList, prtWrt); break;
            case CodeV1.cd_21: cdWithParam(new P206V1Cd21(), comList, prtWrt); break;
            case CodeV1.cd_37: cdWithParam(new P206V1Cd37(), comList, prtWrt); break;
            case CodeV1.cd_3C: cdWithParam(new P206V1Cd3C(), comList, prtWrt); break;
            case CodeV1.cd_50: cdWithoutParam(new P206V1Cd50(), comList, prtWrt); break;
            case CodeV1.cd_65: cdWithoutParam(new P206V1Cd65(), comList, prtWrt); break;
            case CodeV1.cd_66: cdWithoutParam(new P206V1Cd66(), comList, prtWrt); break;
            case CodeV1.cd_67: cdWithoutParam(new P206V1Cd67(), comList, prtWrt); break;
            case CodeV1.cd_91: cdWithoutParam(new P206V1Cd91(), comList, prtWrt); break;
            case CodeV1.cd_92: cdWithoutParam(new P206V1Cd92(), comList, prtWrt); break;
            case CodeV1.cd_93: cdWithoutParam(new P206V1Cd93(), comList, prtWrt); break;
            default: Command.outNoIdentify(prtWrt); break;
        }
    }
    private static void cd02(List<String> comList, PrintWriter prtWrt)throws Exception{
        P206V1Cd cd = new P206V1Cd02() ;
        if(comList.size() > 1){
            String p = comList.get(1);
            if(p.equals("-h")){
                prtWrt.println(cd.helpInfo());
            }else{
                Command.outNoIdentify(prtWrt) ;
            }
        }else{
            Command.out(cd.hex(ServerProperties.rtuAddr), prtWrt);
        }
    }
   private static void cdWithoutParam(P206V1Cd cd, List<String> comList, PrintWriter prtWrt)throws Exception{
        if(comList.size() > 1){
            String p = comList.get(1);
            if(p.equals("-h")){
                prtWrt.println(cd.helpInfo());
            }else{
                Command.outNoIdentify(prtWrt) ;
            }
        }else{
            Command.out(cd.hex(ServerProperties.rtuAddr), prtWrt);
        }
    }
    private static void cdWithParam(P206V1Cd cd, List<String> comList, PrintWriter prtWrt)throws Exception{
        if(comList.size() > 1){
            String p1 = comList.get(1);
            if(p1.equals("-h")){
                prtWrt.println(cd.helpInfo());
            }else{
                String[] ps = params2Grp(comList) ;
                String msg = cd.checkParams(ps) ;
                if(msg == null){
                    Command.out(cd.hex(ServerProperties.rtuAddr, ps), prtWrt);
                }else{
                    Command.out(msg, prtWrt);
                }
            }
        }else{
            Command.outNoParams(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 ;
    }
}
pipIrr-platform/pipIrr-mw/pipIrr-com-creator/˵Ã÷.txt
New file
@@ -0,0 +1 @@
协议命令生成器,生成远程命令(HEX)串,以方便下发透传命令