liurunyu
5 天以前 7aab004601e77890b158f19d1735594a8326feaa
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/MidResultToRtu.java
New file
@@ -0,0 +1,48 @@
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);
   }
}