diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java index 01a87086023dcf8840f80c020e6217371a46763a..19263d3685b695a5b6d5f3bfd4623f74fb06543b 100644 --- a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java +++ b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java @@ -33,7 +33,7 @@ public class ExampleSimulationProgram */ public ExampleSimulationProgram() { - // Under consideration. + // Under consideration. Constructor is not currently needed. } /** @@ -197,7 +197,7 @@ public class ExampleSimulationProgram } /** - * User-modifiable method for defining and running a simulation. + * Programmer-modifiable method for defining and running a new simulation of interest. * Support include DIS EntityStatePdu, FirePdu and CommentPdu all available for * modification and sending in a simulation loop. */ @@ -212,6 +212,8 @@ public class ExampleSimulationProgram VariableRecordType narrativeType = VariableRecordType.OTHER; // of potential use boolean simulationComplete = false; // sentinel variable as termination condition + // TODO reset clock to zero each time for consistent outputs. + // your model setup: who's who in this zoo? // create PDU objects and set their values @@ -222,8 +224,9 @@ public class ExampleSimulationProgram entityStatePdu.setEntityID(entityID_1); FirePdu firePdu = pduFactory.makeFirePdu(); + // should we customize this munition? what is it for your simulation? - while (loopCount < MAX_LOOP_COUNT) // loop while allowed, can set additional conditions to break + while (loopCount < MAX_LOOP_COUNT) // loop the simulation while allowed, can set additional conditions to break { String narrativeMessage1, narrativeMessage2, narrativeMessage3; // initialize loop variables @@ -234,6 +237,7 @@ public class ExampleSimulationProgram // compute a track, update an ESPDU, whatever it is that your model is doing... + // Where is my entity? entityStatePdu.getEntityLocation().setX(entityStatePdu.getEntityLocation().getX() + 1.0); // 1m per timestep // decide whether to fire, and then update the firePdu. Hmmm, you might want a target to shoort at! @@ -249,7 +253,7 @@ public class ExampleSimulationProgram narrativeMessage2 = "runSimulation() loop " + loopCount; narrativeMessage3 = ""; // intentionally blank for testing - // your loop termination condition + // your loop termination condition goes here if (loopCount > 4) // for example { simulationComplete = true; @@ -258,7 +262,8 @@ public class ExampleSimulationProgram // ============================================================================================= // keep track of timestep: wait duration for elapsed time in this loop - Thread.sleep((long)(LOOP_DURATION_SECONDS * 1000)); // seconds * (1000 msec/sec) = seconds + // Thread.sleep needs a (long) parameter for milliseconds, which are clumsy to use sometimes + Thread.sleep((long)(LOOP_DURATION_SECONDS * 1000)); // seconds * (1000 msec/sec) = milliseconds System.out.println ("... Pausing for " + LOOP_DURATION_SECONDS + " seconds"); // send the status PDUs for this loop and continue diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt b/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt index 00e0c4cbe566d804449aaeea805249868136ad29..4b655f0b2cbea5e7117351b7f87e2ae96ff9b7b2 100644 --- a/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt +++ b/examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt @@ -12,33 +12,33 @@ run-single: Network confirmation: address=239.1.2.3 port=3000 ... Pausing for 1.0 seconds sending PDUs for simulation step 1, monitor loopback to confirm sent -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 1. received DISPDUType 1 ENTITY_STATE (timestamp 05:30:08, size 144 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DISPDUType 2 FIRE (timestamp 05:30:12, size 96 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DISPDUType 22 COMMENT (timestamp 05:54:12, size 104 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 1. received DISPDUType 1 ENTITY_STATE (timestamp 19:36:11, size 144 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DISPDUType 2 FIRE (timestamp 19:36:18, size 96 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DISPDUType 22 COMMENT (timestamp 20:00:13, size 104 bytes) ... PDUs successfully sent ... Pausing for 1.0 seconds sending PDUs for simulation step 2, monitor loopback to confirm sent -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 4. received DISPDUType 1 ENTITY_STATE (timestamp 05:30:08, size 144 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DISPDUType 2 FIRE (timestamp 05:30:12, size 96 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DISPDUType 22 COMMENT (timestamp 06:20:07, size 104 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 4. received DISPDUType 1 ENTITY_STATE (timestamp 19:36:11, size 144 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DISPDUType 2 FIRE (timestamp 19:36:18, size 96 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DISPDUType 22 COMMENT (timestamp 20:26:12, size 104 bytes) ... PDUs successfully sent ... Pausing for 1.0 seconds sending PDUs for simulation step 3, monitor loopback to confirm sent -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 7. received DISPDUType 1 ENTITY_STATE (timestamp 05:30:08, size 144 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DISPDUType 2 FIRE (timestamp 05:30:12, size 96 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DISPDUType 22 COMMENT (timestamp 06:46:02, size 104 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 7. received DISPDUType 1 ENTITY_STATE (timestamp 19:36:11, size 144 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DISPDUType 2 FIRE (timestamp 19:36:18, size 96 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DISPDUType 22 COMMENT (timestamp 20:52:09, size 104 bytes) ... PDUs successfully sent ... Pausing for 1.0 seconds sending PDUs for simulation step 4, monitor loopback to confirm sent -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 10. received DISPDUType 1 ENTITY_STATE (timestamp 05:30:08, size 144 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DISPDUType 2 FIRE (timestamp 05:30:12, size 96 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DISPDUType 22 COMMENT (timestamp 07:11:55, size 104 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 10. received DISPDUType 1 ENTITY_STATE (timestamp 19:36:11, size 144 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DISPDUType 2 FIRE (timestamp 19:36:18, size 96 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DISPDUType 22 COMMENT (timestamp 21:18:03, size 104 bytes) ... PDUs successfully sent ... Pausing for 1.0 seconds sending PDUs for simulation step 5, monitor loopback to confirm sent -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 13. received DISPDUType 1 ENTITY_STATE (timestamp 05:30:08, size 144 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 14. received DISPDUType 2 FIRE (timestamp 05:30:12, size 96 bytes) -[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 15. received DISPDUType 22 COMMENT (timestamp 07:37:49, size 104 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 13. received DISPDUType 1 ENTITY_STATE (timestamp 19:36:11, size 144 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 14. received DISPDUType 2 FIRE (timestamp 19:36:18, size 96 bytes) +[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 15. received DISPDUType 22 COMMENT (timestamp 21:43:59, size 104 bytes) ... PDUs successfully sent ... Termination condition met, simulationComplete=true -BUILD SUCCESSFUL (total time: 8 seconds) +BUILD SUCCESSFUL (total time: 10 seconds)