liurunyu
2024-07-22 5902545a506691139ecc1d1d9930cd357fd87b3c
1、完善RTU模拟器;
2、RTU模拟器增加38上报数据。
8个文件已修改
1个文件已添加
116 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/Server.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/ServerProperties.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpClUnit.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd38.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/Server.java
@@ -92,6 +92,7 @@
            // ///////////////
            // 基础配置
            ServerProperties.rtuAddr = conf.getSetAttrTxt(doc, "config.base", "rtuAddr", null, false, null);
            ServerProperties.onlyOneHeartBeat = conf.getSetAttrBoolean(doc, "config.base", "onlyOneHeartBeat",  null, null);
            ServerProperties.icCardAddr = conf.getSetAttrTxt(doc, "config.base", "icCardAddr", null, false, null);
            ServerProperties.icCardNo = conf.getSetAttrTxt(doc, "config.base", "icCardNo", null, false, null);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/ServerProperties.java
@@ -7,6 +7,7 @@
 */
public class ServerProperties {
    public static String rtuAddr ;
    public static Boolean onlyOneHeartBeat ;
    public static String icCardAddr ;
    public static String icCardNo ;
}
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/p206V1_0_0/RtuP206V1_0_0Ctrl.java
@@ -1,6 +1,7 @@
package com.dy.pipIrrMwTestRtu.p206V1_0_0;
import com.dy.common.webUtil.BaseResponse;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd38;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Close;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd83Open;
import com.dy.pipIrrMwTestRtu.tcpClient.upData.UpCd84;
@@ -23,11 +24,13 @@
    @GetMapping(path = "test")
    public BaseResponse<String> test(String com) {
        if(com.equals("83Open")){
            UpCd83Open.upCd83Data();
            UpCd83Open.upData();
        }else if(com.equals("83Close")){
            UpCd83Close.upCd83Data();
            UpCd83Close.upData();
        }else if(com.equals("84")){
            UpCd84.upCd84Data();
            UpCd84.upData();
        }else if(com.equals("38")){
            UpCd38.upData();
        }
        BaseResponse<String> rt = new BaseResponse<String>() ;
        rt.setCode("001") ;
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpClUnit.java
@@ -108,13 +108,22 @@
        new Thread(new Runnable(){
            @Override
            public void run() {
                while(true){
                if(ServerProperties.onlyOneHeartBeat){
                    try {
                        UpHeartBeat.upCd02Data(ServerProperties.rtuAddr);
                        Thread.sleep(30000L);
                        //Thread.sleep(30000000L);
                    }catch (Exception e){
                        continue;
                    }
                }else{
                    while(true){
                        try {
                            UpHeartBeat.upCd02Data(ServerProperties.rtuAddr);
                            Thread.sleep(30000L);
                            //Thread.sleep(30000000L);
                        }catch (Exception e){
                            continue;
                        }
                    }
                }
            }
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd38.java
New file
@@ -0,0 +1,80 @@
package com.dy.pipIrrMwTestRtu.tcpClient.upData;
import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.DateTime;
import com.dy.pipIrrMwTestRtu.ServerProperties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
 * @Author: liurunyu
 * @Date: 2024/7/22 15:01
 * @Description
 */
public class UpCd38 extends UpData {
    private static final Logger log = LogManager.getLogger(UpCd38.class);
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
                UpData.upSend(bs);
            } else {
                log.error("未连接通信中间件,不能发送数据");
            }
        } catch (Exception e) {
            log.error("向通信中间件发送数据产生异常", e);
        }
    }
    /**
     * 构造数据
     *
     * @return 字节数组
     * @throws Exception 异常
     */
    private static byte[] createData(String rtuAddr) throws Exception {
        byte[] bytes = creatHead(rtuAddr, "38", (byte)0xB0);
        byte[] bs = new byte[1] ;
        bs[0] = (byte)0x00 ;//报警金额高位
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;
        ByteUtil.int2BCD_LE(40, bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//秒钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.ss()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//分钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.mm()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//时钟
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.HH()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[1] ;//日
        ByteUtil.int2BCD_LE(Integer.parseInt(DateTime.dd()), bs, 0);
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        bs = new byte[]{(byte)0x0A} ;//
        bytes = ByteUtil.bytesMerge(bytes, bs) ;
        GlCreate.createLen(bytes);//长度放字节数组中
        byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC和尾叠加字节数组中
        bytes = ByteUtil.bytesMerge(bytes, bsTail) ;
        return bytes ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Close.java
@@ -15,7 +15,7 @@
    private static final Logger log = LogManager.getLogger(UpCd83Close.class);
    public static void upCd83Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd83Open.java
@@ -16,7 +16,7 @@
    private static final Logger log = LogManager.getLogger(UpCd83Open.class);
    public static void upCd83Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/upData/UpCd84.java
@@ -15,7 +15,7 @@
    private static final Logger log = LogManager.getLogger(UpCd84.class);
    public static void upCd84Data() {
    public static void upData() {
        try {
            if (UpData.session != null && UpData.session.isConnected()) {
                byte[] bs = createData(ServerProperties.rtuAddr);
@@ -30,7 +30,7 @@
    /**
     * 构造心跳数据
     * 构造数据
     *
     * @return 字节数组
     * @throws Exception 异常
pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/resources/Config.xml
@@ -2,7 +2,7 @@
<config>
    <server name="RTU模拟器" showStartInfo="true" company="http://www.dyjs.com"/>
    <base rtuAddr="532328059995" icCardAddr="3B7D1E1A" icCardNo="61181622830147821"></base>
    <base rtuAddr="532328059995" onlyOneHeartBeat="true" icCardAddr="3B7D1E1A" icCardNo="61181622830147821"></base>
    <!-- -->
    <tcpCl mwServerIp="127.0.0.1" mwServerPort="60000" connectTimeout="3000" />
    <tcpCl mwServerIp="192.168.40.182" mwServerPort="60000" connectTimeout="3000" />
</config>