Пример #1
0
        /// <summary>
        /// 使用恋空控制域和链路地址,获取固定长度帧
        /// </summary>
        /// <param name="lc"></param>
        /// <param name="linkAddr"></param>
        /// <returns></returns>
        public static byte[] GetBufferFix(LinkControl lc, int linkAddr)
        {
            byte[] buf = new byte[6];
            buf[0] = 0x10;
            buf[5] = 0x16;

            //链路控制域和链路地址赋值
            buf[1] = lc.getValue();
            buf[2] = (byte)(linkAddr % 0x100);
            buf[3] = (byte)(linkAddr / 0x100);

            //计算校验和
            byte checksum = 0;

            checksum += buf[1];
            checksum += buf[2];
            checksum += buf[3];

            buf[4] = checksum;

            return(buf);
        }
Пример #2
0
 /// <summary>
 /// 使用链路控制域和连接参数设置一个帧(连接参数中有链路地址)
 /// </summary>
 /// <param name="lc"></param>
 /// <param name="para"></param>
 public T102Frame(LinkControl lc, ConnectionParameters para)
     : this(lc, para.LinkAddress)
 {
 }
Пример #3
0
 /// <summary>
 /// 使用链路控制域和链路地址设置一个帧
 /// </summary>
 /// <param name="lc"></param>
 /// <param name="linkAddr"></param>
 public T102Frame(LinkControl lc, int linkAddr)
     : this(lc)
 {
     SetLinkAddress(linkAddr);
 }
Пример #4
0
 /// <summary>
 /// 使用链路控制域创建一个帧
 /// </summary>
 /// <param name="lc"></param>
 public T102Frame(LinkControl lc)
     : this()
 {
     SetLinkControl(lc);
 }
Пример #5
0
 /// <summary>
 /// 发送前调用,更新报文长度,还有校验和,报文结束标志,还有链路控制域和链路地址
 /// </summary>
 /// <param name="lc"></param>
 /// <param name="linkAddr"></param>
 public override void PrepareToSend(LinkControl lc, int linkAddr)
 {
     SetLinkAddress(linkAddr);
     PrepareToSend(lc);
 }
Пример #6
0
 /// <summary>
 /// 发送前调用,更新报文长度,还有校验和,报文结束标志,还有链路控制域
 /// <para>这里没有设置链路地址,如果初始化的时候没搞定的话,必须再调用这个函数之前手动处理一下</para>
 /// </summary>
 /// <param name="lc"></param>
 public override void PrepareToSend(LinkControl lc)
 {
     SetLinkControl(lc);
     PrepareToSend();
 }
Пример #7
0
 /// <summary>
 /// 设置链路控制域
 /// </summary>
 /// <param name="lc"></param>
 public void SetLinkControl(LinkControl lc)
 {
     this.lc   = lc;
     buffer[4] = lc.getValue();
 }
Пример #8
0
 /// <summary>
 /// 发送前调用,更新报文长度,还有校验和,报文结束标志,还有链路控制域和链路地址
 /// </summary>
 /// <param name="lc"></param>
 /// <param name="linkAddr"></param>
 public abstract void PrepareToSend(LinkControl lc, int linkAddr);
Пример #9
0
 /// <summary>
 /// 发送前调用,更新报文长度,还有校验和,报文结束标志,还有链路控制域
 /// <para>这里没有设置链路地址,如果初始化的时候没搞定的话,必须再调用这个函数之前手动处理一下</para>
 /// </summary>
 /// <param name="lc"></param>
 public abstract void PrepareToSend(LinkControl lc);