Example #1
0
        public void DataQueue_TestAddOverFlowProtection()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket(sampleMotusPayload);
            DataQueue             queue  = new DataQueue();

            for (int i = 0; i < queue.MaxSize; i++)
            {
                Assert.IsTrue(queue.Add(packet));
            }

            Assert.IsFalse(queue.Add(packet));
        }
Example #2
0
 private void FillQueue(DataQueue queue, DataPacket packet)
 {
     for (int i = 0; i < queue.MaxSize; i++)
     {
         queue.Add(packet);
     }
 }
Example #3
0
        public void DataQueue_TestAddPacket()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket(sampleMotusPayload);
            DataQueue             queue  = new DataQueue();

            Assert.IsTrue(queue.Add(packet));
            Assert.IsFalse(queue.IsEmpty());
        }
Example #4
0
        public void DataQueue_TestGet()
        {
            Motus_1_RawDataPacket packet = new Motus_1_RawDataPacket(sampleMotusPayload);
            DataQueue             queue  = new DataQueue();

            queue.Add(packet);

            DataPacket getPacket = queue.Get();

            Assert.AreEqual(packet.Type, getPacket.Type);
            Assert.AreEqual(packet.ExpectedLen, getPacket.ExpectedLen);
            for (int i = 0; i < packet.ExpectedLen; i++)
            {
                Assert.AreEqual(packet.Payload[i], getPacket.Payload[i]);
            }
        }
Example #5
0
        public void SocketWrapper_TestEndToEnd()
        {
            SocketWrapper server = new SocketWrapper(Configuration.server);
            SocketWrapper client = new SocketWrapper(Configuration.client);

            DataQueue knownData = new DataQueue();
            DataQueue toSend    = new DataQueue();
            DataQueue toRecieve = new DataQueue();

            short[] known   = new short[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
            byte[]  payload = new byte[known.Length * 2];
            Buffer.BlockCopy(known, 0, payload, 0, payload.Length);
            Motus_1_RawDataPacket dummyPacket = new Motus_1_RawDataPacket(payload);

            for (int i = 0; i < knownData.MaxSize; i++)
            {
                knownData.Add(dummyPacket);
                toSend.Add(dummyPacket);
            }

            server.StartServer();
            server.ServerSetTxData(toSend);
            Assert.IsTrue(toSend.IsEmpty());

            client.ClientStartRead();
            Thread.Sleep(1000);
            Assert.IsTrue(client.ClientHasData());
            client.ClientGetRxData(toRecieve);
            Assert.AreEqual(toRecieve.Count, toRecieve.MaxSize);
            while (!toRecieve.IsEmpty())
            {
                Motus_1_RawDataPacket packetKnown = new Motus_1_RawDataPacket(knownData.Get());
                Motus_1_RawDataPacket packetTest  = new Motus_1_RawDataPacket(toRecieve.Get());
                short[] payloadKnown = packetKnown.DeSerialize();
                short[] payloadTest  = packetTest.DeSerialize();
                for (int i = 0; i < payloadKnown.Length; i++)
                {
                    Assert.AreEqual(known[i], payloadKnown[i]);
                    Assert.AreEqual(payloadKnown[i], payloadTest[i]);
                }
            }
        }