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 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); }
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); }
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); }
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 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); }
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 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 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); }
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 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); }