Beispiel #1
0
        public void CSPBus_Process_ValidAddress_PartTransmit()
        {
            //rate = 1000
            CSPBus bus = new CSPBus("testBus", 1000);
            //size = 5000
            CSPPacket packet1 = new CSPPacket(31457280, 5000, ModuleCommand.SEND);
            //Address = 30
            Module module1 = new Module("Module", 30);

            short expectedTransmit = 2000;

            module1.ConnectBus(bus);
            bus.EnqueuePacket(packet1);

            String expectedLog = "New packet transmitting on bus " + bus.Name + ": " + packet1.ToString();

            bus.Process(1);

            Assert.AreEqual(expectedLog, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.INFO, EventLog.EventList.Last().Severity);

            bus.Process(2);

            Assert.AreEqual(expectedTransmit, packet1.PartTransmitted);
            Assert.AreEqual(packet1, bus.CurrentPacket);
        }
Beispiel #2
0
        public void CSPPacket_CompareTo()
        {
            //priority = 1
            CSPPacket packet1 = new CSPPacket(2147483647, 10000, ModuleCommand.SEND);
            //priority = 3, Address = 31
            CSPPacket packet2 = new CSPPacket(-1, 10000, ModuleCommand.SEND);
            //priority = 3, Address = 0
            CSPPacket packet3 = new CSPPacket(-1073741824, 10000, ModuleCommand.SEND);
            //priority = 4, Address = 0, Destination = 2
            CSPPacket packet4 = new CSPPacket(-1071644672, 10000, ModuleCommand.SEND);

            int actual;

            //Test - lower
            actual = packet1.CompareTo(packet2);
            Assert.AreEqual(-1, actual);

            //Test - Higher
            actual = packet2.CompareTo(packet1);
            Assert.AreEqual(1, actual);

            //Test - Equal 3to2
            actual = packet3.CompareTo(packet2);
            Assert.AreEqual(-1, actual);

            //Test - Equal 2to3
            actual = packet2.CompareTo(packet3);
            Assert.AreEqual(1, actual);

            //Test - 3 to 4
            actual = packet3.CompareTo(packet4);
            Assert.AreEqual(0, actual);
        }
        public void PriorityQueue_CSPPacket_EnqueueEmptyDequeue()
        {
            PriorityQueue <CSPPacket> queue = new PriorityQueue <CSPPacket>();
            CSPPacket packet = new CSPPacket(0, 10000, ModuleCommand.SEND);

            queue.Enqueue(packet);
            queue.Dequeue();
            queue.Dequeue();
        }
        public void PriorityQueue_CSPPacket_Dequeue()
        {
            PriorityQueue <CSPPacket> queue = new PriorityQueue <CSPPacket>();
            CSPPacket packet = new CSPPacket(0, 10000, ModuleCommand.SEND);

            queue.Enqueue(packet);
            queue.Dequeue();
            int actualCount = queue.Count;

            Assert.AreEqual(0, actualCount);
        }
Beispiel #5
0
        public void TestSetGetDataSize()
        {
            int         headerVal = 25;
            short       exdataS   = 5000;
            BitVector32 exheader  = new BitVector32(headerVal);

            CSPPacket newCSPPacket = new CSPPacket(headerVal, exdataS, ModuleCommand.SEND);

            short actualDataSize = newCSPPacket.DataSize;

            Assert.AreEqual(exdataS, actualDataSize);
        }
Beispiel #6
0
        public void TestSetGetHeader()
        {
            int         headerVal = 25;
            short       exdataS   = 5000;
            BitVector32 exheader  = new BitVector32(headerVal);

            CSPPacket newCSPPacket = new CSPPacket(exheader, exdataS, ModuleCommand.SEND);

            BitVector32 actualHeader = newCSPPacket.Header;

            Assert.AreEqual(exheader, actualHeader);
        }
Beispiel #7
0
        public void Module_ReceiveCSPPacket()
        {
            Module    module1 = new Module("Module", 41);
            CSPPacket packet  = new CSPPacket(-1, 10000, ModuleCommand.SEND);
            CSPBus    bus1    = new CSPBus("Bus1");

            String expected1 = "Module " + module1.Name + " received packet: " + packet.ToString();

            module1.ReceiveCSPPacket(packet, bus1);

            Assert.AreEqual(expected1, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.INFO, EventLog.EventList.Last().Severity);
        }
Beispiel #8
0
        public void TestSetGetPartTransmitted()
        {
            int         headerVal = 25;
            short       exdataS   = 5000;
            BitVector32 exheader  = new BitVector32(headerVal);
            short       ExpectedPartTransmitted = 1500;

            CSPPacket newCSPPacket = new CSPPacket(headerVal, exdataS, ModuleCommand.SEND);

            newCSPPacket.PartTransmitted = ExpectedPartTransmitted;

            short actualPart = newCSPPacket.PartTransmitted;

            Assert.AreEqual(ExpectedPartTransmitted, actualPart);
        }
Beispiel #9
0
        public void CSPBus_Process_InvalidAddress()
        {
            //rate = 1000
            CSPBus bus = new CSPBus("testBus", 1000);
            //size = 5000
            CSPPacket packet1 = new CSPPacket(-1, 5000, ModuleCommand.SEND);

            bus.EnqueuePacket(packet1);

            bus.Process(1);

            String expected = "Packet was dropped because it has no valid destination: " + packet1.ToString();

            Assert.AreEqual(expected, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.WARNING, EventLog.EventList.Last().Severity);

            Assert.AreEqual(null, bus.CurrentPacket);
        }
Beispiel #10
0
        public void CSPBus_Process_ValidAddress_FullTransmit()
        {
            //rate = 1000
            CSPBus bus = new CSPBus("testBus", 5000);
            //size = 5000
            CSPPacket packet1 = new CSPPacket(31457280, 5000, ModuleCommand.SEND);
            //Address = 30
            Module module1 = new Module("Module", 30);

            module1.ConnectBus(bus);
            bus.EnqueuePacket(packet1);

            bus.Process(1);
            String expected1 = "Module " + module1.Name + " received packet: " + packet1.ToString();

            Assert.AreEqual(EventLog.EventList.Last().Log, expected1);
            Assert.AreEqual(EventLog.EventList.Last().Severity, CubeSatCommSim.Model.EventSeverity.INFO);

            Assert.AreEqual(null, bus.CurrentPacket);
        }
Beispiel #11
0
        public void CSPPacket_FromValue_ToString()
        {
            short size = 32000;

            CSPPacket packet = new CSPPacket(-997195777, size, ModuleCommand.SEND);

            String expected = "Header={" + 3
                              + " " + 2
                              + " " + 8
                              + " " + 63
                              + " " + 63
                              + " " + 15
                              + " " + 1
                              + " " + 1
                              + " " + 1
                              + " " + 1
                              + "},Tx/Size=" + packet.PartTransmitted + "/" + size;
            String actual = packet.ToString();

            Assert.AreEqual(expected, actual);
        }
Beispiel #12
0
        public void Module_SendCSPPacket()
        {
            Module module1 = new Module("Module", 41);
            CSPBus bus     = new CSPBus("Bus");

            byte  destination_addr = 40;
            byte  destination_port = 100;
            byte  source_port      = 101;
            byte  priority         = 2;
            short dataSize         = 5000;

            BitVector32 packetHeader = new BitVector32(0x00000000);

            packetHeader[CSPPacket.SourceAddress]      = module1.Address;
            packetHeader[CSPPacket.DestinationAddress] = destination_addr;
            packetHeader[CSPPacket.SourcePort]         = source_port;
            packetHeader[CSPPacket.DestinationPort]    = destination_port;
            packetHeader[CSPPacket.Priority]           = priority;
            CSPPacket packet = new CSPPacket(packetHeader, dataSize, ModuleCommand.SEND);

            //Log failed send
            module1.SendCSPPacket(bus, destination_addr, destination_port, source_port, priority, dataSize, ModuleCommand.SEND);
            String expected1 = "Module " + module1.Name + " failed to send packet " + packet.ToString() +
                               " because it is not connected to bus " + bus.Name;

            Assert.AreEqual(expected1, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.ERROR, EventLog.EventList.Last().Severity);

            //Connect bus to module
            module1.ConnectBus(bus);

            //Log sending packet
            module1.SendCSPPacket(bus, destination_addr, destination_port, source_port, priority, dataSize, ModuleCommand.SEND);

            String expected2 = "Module " + module1.Name + " sends packet " + packet.ToString() + " to bus " + bus.Name;

            Assert.AreEqual(expected2, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.INFO, EventLog.EventList.Last().Severity);
        }
Beispiel #13
0
        public void CSPBus_Process_ValidAddress_InterruptPacket()
        {
            //rate = 1000
            CSPBus bus = new CSPBus("testBus", 1000);
            //Priority = 2, Address = 30, Size = 5000
            CSPPacket packet1 = new CSPPacket(-2116026368, 5000, ModuleCommand.SEND);
            //Priority = 1, Address = 30, Size = 1000
            CSPPacket packet2 = new CSPPacket(1105199104, 1000, ModuleCommand.SEND);
            //Address = 30
            Module module1 = new Module("Module", 30);

            module1.ConnectBus(bus);

            //Part Transmit packet1 2000/5000
            bus.EnqueuePacket(packet1);
            bus.Process(1);
            bus.Process(2);

            //Expected Packet Interrupted Log
            String expectedLog1 = "Packet " + packet1.ToString() +
                                  " was interrupted by packet " + packet2.ToString() +
                                  " on bus " + bus.Name;

            //Fully Transmit packet2
            bus.EnqueuePacket(packet2);
            bus.Process(3);

            Assert.AreEqual(null, bus.CurrentPacket);

            Assert.AreEqual(expectedLog1, EventLog.EventList.ElementAt(EventLog.EventList.Count - 2).Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.INFO, EventLog.EventList.ElementAt(EventLog.EventList.Count - 2).Severity);

            //Expected Received Packet Log
            String expectedLog2 = "Module " + module1.Name + " received packet: " + packet2.ToString();

            Assert.AreEqual(expectedLog2, EventLog.EventList.Last().Log);
            Assert.AreEqual(CubeSatCommSim.Model.EventSeverity.INFO, EventLog.EventList.Last().Severity);
        }
Beispiel #14
0
        public void CSPPacket_FromVector_ToString()
        {
            short       size   = 32000;
            BitVector32 header = new BitVector32(-997195777);

            CSPPacket packet = new CSPPacket(header, size, ModuleCommand.SEND);
            //76546047
            //-1040187392
            String expected = "Header={" + 3
                              + " " + 2
                              + " " + 8
                              + " " + 63
                              + " " + 63
                              + " " + 15
                              + " " + 1
                              + " " + 1
                              + " " + 1
                              + " " + 1
                              + "},Tx/Size=" + packet.PartTransmitted + "/" + size;
            String actual = packet.ToString();

            Assert.AreEqual(expected, actual);
        }