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 int countdown4Send;////倒计时,当此值为小于等于0时才会下发,否则逐次减1,目的是延迟下发命令,使其他命令可以提前发送 //public Object param ;//缓存一些数据,例如为兼容王工(江海)协议与靳总协议(虚拟IC卡编号长度不一致),把不兼容的虚拟IC卡编号的前半部分放入此处 public MidResultToRtu(){ hasResponse = true ; isCachForOffLine = false ; isSendFirst = false ; isQuickSend = false ; isFastCom = false ; countdown4Send = 0 ; } @Override public void action() { ProtocolUnit.getInstance().adapter.getSingleActionToRtu(this.protocolName).doAction(this); } }