コード例 #1
0
ファイル: SeqNoManagerTest.cs プロジェクト: ldw880212/RsspII
        public void Test_IsExpected()
        {
            uint initialValue = 0;
            uint maxValue     = 255;

            var mgr = new SeqNoManager(initialValue, maxValue, 3);

            mgr.UpdateAckSeq(0);

            var actual = mgr.IsExpected(1);

            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(2);
            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(3);
            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(4);
            Assert.AreEqual(false, actual);
            actual = mgr.IsExpected(5);
            Assert.AreEqual(false, actual);


            mgr.UpdateAckSeq(254);
            actual = mgr.IsExpected(255);
            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(0);
            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(1);
            Assert.AreEqual(true, actual);
            actual = mgr.IsExpected(2);
            Assert.AreEqual(false, actual);
        }
コード例 #2
0
ファイル: SaiConnection.cs プロジェクト: heng222/RsspII
 private bool CheckFrame(SaiFrame saiFrame)
 {
     if (this.Connected)
     {
         return(_seqNoManager.IsExpected(saiFrame.SequenceNo));
     }
     else
     {
         if (saiFrame.FrameType == SaiFrameType.EC_Start ||
             saiFrame.FrameType == SaiFrameType.TTS_OffsetStart ||
             saiFrame.FrameType == SaiFrameType.TTS_OffsetAnswer1)
         {
             return(true);
         }
         else
         {
             return(_seqNoManager.IsExpected(saiFrame.SequenceNo));
         }
     }
 }
コード例 #3
0
ファイル: AleConnection.cs プロジェクト: ldw880212/RsspII
        private bool CheckFrame(AleFrame theFrame)
        {
            // 1. 检查帧类型。
            // CR帧与CC帧固定有效。
            if (theFrame.FrameType == AleFrameType.ConnectionRequest ||
                theFrame.FrameType == AleFrameType.ConnectionConfirm)
            {
                return(true);
            }

            // 2. 检查序列号。
            // D类服务中序号才有效,A类服务中的序号都是0。
            if (_rsspEndPoint.ServiceType == ServiceType.A)
            {
                return(true);
            }
            else
            {
                return(_seqNoManager.IsExpected(theFrame.SequenceNo));
            }
        }