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); }
public void TestSetGetConnectedModules() { Bus testBus = new CSPBus("test bus"); Module testModule = new Module("Test", 100); testBus.ConnectModule(testModule); Assert.IsTrue(testBus.ConnectedModules.Contains(testModule)); }
public void TestIdleBus() { Bus testBus = new CSPBus("test bus"); testBus.Idle = true; Boolean idle = testBus.Idle; Assert.AreEqual(true, idle); }
public void TestSetGetName() { Bus bus1 = new CSPBus("bus1"); bus1.Name = "bus2"; String actual = bus1.Name; Assert.AreEqual("bus2", actual); }
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); }
public void CSPBus_SetGetName() { CSPBus newBus = new CSPBus("BadTest"); string expectedName = "Name"; newBus.Name = expectedName; string actualName = newBus.Name; Assert.AreEqual(expectedName, actualName); }
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); }
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)); } }
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); }
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); }
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); }
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); }
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); }
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); }
public CSPBusVM(CSPBus model) { md = model; }