Browse Source

Fixes Connections not being able to send packets in first ms

Andreas T. Meyer-Berg 5 years ago
parent
commit
e6d6f11425

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/ConnectionPerformance.java

@@ -100,7 +100,7 @@ public class ConnectionPerformance implements Connection {
 				returnPackets.addAll(protocol.generateNextPakets(p, (long) (startTime+p.getJitter()*Math.random()),Math.random()<packetLossRate));
 			}
 			while(p.getLastTrigger()+p.getTriggerInterval()<startTime+duration &&p.getStatus()==Port.SENDING)
-				returnPackets.addAll(protocol.generateNextPakets(p, (long) Math.max((p.getLastTrigger()+p.getTriggerInterval()+p.getJitter()*(Math.random())),p.getLastTrigger()+p.getTriggerInterval()+1),Math.random()<packetLossRate));
+				returnPackets.addAll(protocol.generateNextPakets(p, (long) Math.max((p.getLastTrigger()+p.getTriggerInterval()+p.getJitter()*(Math.random())),p.getLastTrigger()+p.getTriggerInterval()),Math.random()<packetLossRate));
 		}
 		returnPackets.sort((a,b)->(Long.compare(a.getTimestamp(),b.getTimestamp())));
 		return returnPackets;

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/ConnectionPrecision.java

@@ -81,7 +81,7 @@ public class ConnectionPrecision extends ConnectionPerformance {
 					/**
 					 * Generate first package in the simulation interval (not before startTime though), and at least 1ms after the last Trigger Time
 					 */
-					returnPackets.addAll(protocol.generateNextPakets(p, (long)Math.max( p.getLastTrigger()+p.getTriggerInterval()+p.getJitter()*Math.random(),Math.max(p.getLastTrigger()+1,startTime)),Math.random()<packetLossRate));
+					returnPackets.addAll(protocol.generateNextPakets(p, (long)Math.max( p.getLastTrigger()+p.getTriggerInterval()+p.getJitter()*Math.random(),Math.max(p.getLastTrigger(),startTime)),Math.random()<packetLossRate));
 					/**
 					 * If Port should simulate again in this interval -> add back to the tree
 					 */

+ 1 - 1
src/main/java/de/tu_darmstadt/tk/SmartHomeNetworkSim/core/SimulationManager.java

@@ -179,7 +179,7 @@ public class SimulationManager extends Observable {
 	 * 
 	 * @param timestep new timestep of ports after the reset
 	 */
-	public void resetSimulation(long timestep) {
+	private void resetSimulation(long timestep) {
 		for (SmartDevice d : model.getDevices())
 			for (Port p : d.getPorts())
 				if (p.getLastTrigger() > timestep)