liurunyu
2025-01-21 95e2f4d9b37f4fd7e99d67976a811fba79427a3e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.dy.common.mw.protocol;
 
/**
 * 向RTU发送数据
 */
public class MidResultToRtu implements MidResult{
 
    public static final long serialVersionUID;
    static {
        serialVersionUID = 201606271057003L;
    }
 
    public String rtuResultSendWebUrl ;//rtu返回命令结果 发向目的地web URL
    public String protocolName ;//协议名称
    public Short protocolVersion ;//协议版本号
    public String rtuAddr ;//Rtu地址
    public String commandId ;//命令ID,发起命令的客户端(web端)生成,以匹配命令结果
    public String downCode ;//下行命令功能码;
    public String downCodeName ;//下行命令功能码名称;
    public byte[] downBuffer ;//下行命令数据
    public String downBufHex ;//下行命令数据十六进制形式
    public boolean hasResponse ;//是否有应答
    public Byte maxSendTimes ;//命令最大发送次数(当收不到应答时,将重发),如果不设置,命令缓存器进行补充设置
    public boolean isCachForOffLine ;//RTU不在线,命令是否缓存
    
    public boolean isSendFirst;//优先其他发送,例如各命令的应答
    public boolean isQuickSend;//速发命令,即不受下发数据时间间隔限制(通信中间件为低功耗时起作用)
    public boolean isFastCom;//快速命令,下发数据时间间隔受小值(配置文件中fastCommandSendInterval)限制(如升级命令)
 
    //public Object param ;//缓存一些数据,例如为兼容王工(江海)协议与靳总协议(虚拟IC卡编号长度不一致),把不兼容的虚拟IC卡编号的前半部分放入此处
 
    public MidResultToRtu(){
        hasResponse = true ;
        isCachForOffLine = false ;
        isSendFirst = false ;
        isQuickSend = false ;
        isFastCom = false ;
    }
 
    @Override
    public void action() {
        ProtocolUnit.getInstance().adapter.getSingleActionToRtu(this.protocolName).doAction(this); 
    }
 
}