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 TestSetGetConnectedModules()
        {
            Bus    testBus    = new CSPBus("test bus");
            Module testModule = new Module("Test", 100);

            testBus.ConnectModule(testModule);
            Assert.IsTrue(testBus.ConnectedModules.Contains(testModule));
        }
Beispiel #3
0
        public void TestIdleBus()
        {
            Bus testBus = new CSPBus("test bus");

            testBus.Idle = true;
            Boolean idle = testBus.Idle;

            Assert.AreEqual(true, idle);
        }
Beispiel #4
0
        public void TestSetGetName()
        {
            Bus bus1 = new CSPBus("bus1");

            bus1.Name = "bus2";
            String actual = bus1.Name;

            Assert.AreEqual("bus2", actual);
        }
Beispiel #5
0
        public void CSPBus_Process_Nothing()
        {
            //rate = 1000
            CSPBus bus = new CSPBus("testBus", 1000);

            int expected = EventLog.EventList.Count;

            bus.Process(1);

            Assert.AreEqual(expected, EventLog.EventList.Count);
        }
Beispiel #6
0
        public void CSPBus_SetGetName()
        {
            CSPBus newBus = new CSPBus("BadTest");

            string expectedName = "Name";

            newBus.Name = expectedName;

            string actualName = newBus.Name;

            Assert.AreEqual(expectedName, actualName);
        }
Beispiel #7
0
        public void TestConnectAndDisconnectModules()
        {
            Module testModule = new Module("test module", 1);
            Bus    testBus    = new CSPBus("test bus");

            testBus.ConnectModule(testModule);
            ObservableCollection <Module> modules = testBus.ConnectedModules;
            Boolean test = testBus.ConnectedModules.Contains(testModule);

            Assert.AreEqual(test, true);
            testBus.DisconnectModule(testModule);
            Assert.AreEqual(modules, testBus.ConnectedModules);
        }
Beispiel #8
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);
        }
        public void AddBus()
        {
            CSPBus       b   = new CSPBus("New bus", 1);
            CSPBusVM     vm  = new CSPBusVM(b);
            AddBusDialog dlg = new AddBusDialog();

            dlg.DataContext = vm;

            if (dlg.ShowDialog() == true)
            {
                md.Buses.Add(b);
                EventLog.AddLog(new SimEvent("A new bus was added: '" + b.Name + "'", EventSeverity.INFO));
            }
        }
Beispiel #10
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 #11
0
        public void Module_DisconnectBus()
        {
            Bus    bus1    = new CSPBus("Bus1");
            CSPBus bus2    = new CSPBus("Bus2");
            Module module1 = new Module("Module", 100);

            module1.ConnectBus(bus1);
            module1.ConnectBus(bus2);

            module1.DisconnectBus(bus1);

            Bus     actualBus   = module1.BusConnections[0];
            Boolean checkBus    = module1.BusConnections.Contains(bus1);
            Boolean checkModule = bus1.ConnectedModules.Contains(module1);

            Assert.AreEqual(bus2, actualBus);
            Assert.AreEqual(false, checkBus);
            Assert.AreEqual(false, checkModule);
        }
Beispiel #12
0
        public void Module_ConnectBus()
        {
            Bus    bus1    = new CSPBus("Bus1");
            CSPBus bus2    = new CSPBus("Bus2");
            Module module1 = new Module("Module", 100);

            module1.ConnectBus(bus1);
            module1.ConnectBus(bus2);

            Module actualModule = bus1.ConnectedModules[0];
            Bus    actualBus    = module1.BusConnections[0];

            Assert.AreEqual(module1, actualModule);
            Assert.AreEqual(bus1, actualBus);

            actualBus = module1.BusConnections[1];

            Assert.AreEqual(bus2, actualBus);
        }
Beispiel #13
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 #14
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 #15
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 #16
0
 public CSPBusVM(CSPBus model)
 {
     md = model;
 }