Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
NetworkedGraphicsMV3500
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Savage
NetworkedGraphicsMV3500
Commits
3113e4fe
Commit
3113e4fe
authored
4 years ago
by
brutzman
Browse files
Options
Downloads
Patches
Plain Diff
added real-time delay within simulation loop
parent
65788f03
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
examples/src/OpenDis7Examples/ExampleSimulationProgram.java
+44
-19
44 additions, 19 deletions
examples/src/OpenDis7Examples/ExampleSimulationProgram.java
examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt
+24
-51
24 additions, 51 deletions
...s/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt
with
68 additions
and
70 deletions
examples/src/OpenDis7Examples/ExampleSimulationProgram.java
+
44
−
19
View file @
3113e4fe
...
...
@@ -13,6 +13,8 @@ import edu.nps.moves.dis7.pdus.Pdu;
import
edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface
;
import
edu.nps.moves.dis7.utilities.PduFactory
;
import
java.util.ArrayList
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
public
class
ExampleSimulationProgram
{
...
...
@@ -199,14 +201,20 @@ public class ExampleSimulationProgram
* Support include DIS EntityStatePdu, FirePdu and CommentPdu all available for
* modification and sending in a simulation loop.
*/
@SuppressWarnings
(
"SleepWhileInLoop"
)
public
void
runSimulation
()
{
final
int
MAX_LOOP_COUNT
=
10
;
int
loopCount
=
0
;
VariableRecordType
narrativeType
=
VariableRecordType
.
OTHER
;
boolean
simulationComplete
=
false
;
// termination condition
try
{
final
double
LOOP_DURATION_SECONDS
=
1.0
;
// seconds
final
int
MAX_LOOP_COUNT
=
10
;
int
loopCount
=
0
;
VariableRecordType
narrativeType
=
VariableRecordType
.
OTHER
;
// of potential use
boolean
simulationComplete
=
false
;
// sentinel variable as termination condition
// your model setup: who's who in this zoo?
// create PDU objects and set their values
// model setup
EntityID
entityID_1
=
new
EntityID
();
entityID_1
.
setSiteID
(
1
).
setApplicationID
(
2
).
setEntityID
(
3
);
// made-up example ID
...
...
@@ -221,38 +229,55 @@ public class ExampleSimulationProgram
// initialize loop variables
loopCount
++;
// ===============================
// your own simulation code here!
// ===============================
==============================================================
// your own simulation code
starts
here!
// compute a track, update an ESPDU
// compute a track, update an ESPDU
, whatever it is that your model is doing...
entityStatePdu
.
getEntityLocation
().
setX
(
entityStatePdu
.
getEntityLocation
().
getX
()
+
1.0
);
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!
// etc.
// etc. etc. your code goes here
//
your
narrative code for CommentPdu here
,
set all to empty strings to avoid sending
//
make your reports:
narrative code for CommentPdu here
(
set all to empty strings to avoid sending
)
narrativeMessage1
=
"MV3500 ExampleSimulationProgram"
;
narrativeMessage2
=
"runSimulation() loop "
+
loopCount
;
narrativeMessage3
=
""
;
// intentionally blank for testing
// ===============================
// your loop termination condition
if
(
loopCount
>
4
)
// for example
{
simulationComplete
=
true
;
System
.
out
.
println
(
"*** termination condition met, simulationComplete="
+
simulationComplete
);
}
// loop now finished so terminate if simulation complete, otherwise send latest PDUs and continue
if
(
simulationComplete
)
break
;
}
// your own simulation code is finished here!
// =============================================================================================
// keep track of timestep: wait duration for elapsed time in this loop
Thread
.
sleep
((
long
)(
LOOP_DURATION_SECONDS
*
1000
));
// seconds * (1000 msec/sec) = seconds
System
.
out
.
println
(
"... Pausing for "
+
LOOP_DURATION_SECONDS
+
" seconds"
);
// send the status PDUs for this loop and continue
System
.
out
.
println
(
"sending PDUs for simulation step "
+
loopCount
+
", monitor loopback to confirm sent"
);
sendAllPdus
(
entityStatePdu
,
firePdu
,
null
,
narrativeMessage1
,
narrativeMessage2
,
narrativeMessage3
);
System
.
out
.
println
(
"... PDUs successfully sent"
);
}
// ===============================
// loop now finished, thus terminate if simulation complete, otherwise send latest PDUs and continue
if
(
simulationComplete
||
(
loopCount
>
10000
))
// for example; including fail-safe condition is good
{
System
.
out
.
println
(
"... Termination condition met, simulationComplete="
+
simulationComplete
);
break
;
}
}
// end of while loop
}
catch
(
Exception
ex
)
// handle any exception that your code might choose to provoke!
{
Logger
.
getLogger
(
ExampleSimulationProgram
.
class
.
getName
()).
log
(
Level
.
SEVERE
,
null
,
ex
);
}
}
}
This diff is collapsed.
Click to expand it.
examples/src/OpenDis7Examples/ExampleSimulationProgramOutput.txt
+
24
−
51
View file @
3113e4fe
...
...
@@ -10,62 +10,35 @@ compile-single:
run-single:
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] Using network interface Intel(R) Dual Band Wireless-AC 8260
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
14:23:57
, size 144 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 2. received DISPDUType 2 FIRE (timestamp
14:24:01
, size 96 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 3. received DISPDUType 22 COMMENT (timestamp
14:28:0
2, size
96
bytes)
[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:1
2, 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
14:23:57
, size 144 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 5. received DISPDUType 2 FIRE (timestamp
14:24:01
, size 96 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 6. received DISPDUType 22 COMMENT (timestamp
14:34
:0
6
, size
96
bytes)
[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
:0
7
, 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
14:23:57
, size 144 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 8. received DISPDUType 2 FIRE (timestamp
14:24:01
, size 96 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 9. received DISPDUType 22 COMMENT (timestamp
14
:4
0
:0
6
, size
96
bytes)
[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
:4
6
:0
2
, 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
14:23:57
, size 144 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 11. received DISPDUType 2 FIRE (timestamp
14:24:01
, size 96 bytes)
[edu.nps.moves.dis7.utilities.DisThreadedNetworkInterface] 12. received DISPDUType 22 COMMENT (timestamp
14:46:06
, size
96
bytes)
[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)
... PDUs successfully sent
*** termination condition met, simulationComplete=true
BUILD SUCCESSFUL (total time: 3 seconds)
======================================
Example output log from AllPduReceiver:
ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/AllPduReceiver.java -Drun.class=OpenDis7Examples.AllPduReceiver run-single
init:
Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
deps-jar:
Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties
Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 8
Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\AllPduReceiver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\AllPduReceiver.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
compile-single:
run-single:
OpenDis7Examples.AllPduReceiver started...
Usage: AllPduReceiver <multicast group> <port>
Default: AllPduReceiver 239.1.2.3 3000
14:23:57 received DIS PDU DISPDUType 1 ENTITY_STATE (DISProtocolFamily 1 ENTITY_INFORMATION_INTERACTION)
14:24:01 received DIS PDU DISPDUType 2 FIRE (DISProtocolFamily 2 WARFARE)
14:28:02 received DIS PDU DISPDUType 22 COMMENT (DISProtocolFamily 5 SIMULATION_MANAGEMENT)
messages: "MV3500 ExampleSimulation" "runSimulation loop 1"
14:23:57 received DIS PDU DISPDUType 1 ENTITY_STATE (DISProtocolFamily 1 ENTITY_INFORMATION_INTERACTION)
14:24:01 received DIS PDU DISPDUType 2 FIRE (DISProtocolFamily 2 WARFARE)
14:34:06 received DIS PDU DISPDUType 22 COMMENT (DISProtocolFamily 5 SIMULATION_MANAGEMENT)
messages: "MV3500 ExampleSimulation" "runSimulation loop 2"
14:23:57 received DIS PDU DISPDUType 1 ENTITY_STATE (DISProtocolFamily 1 ENTITY_INFORMATION_INTERACTION)
14:24:01 received DIS PDU DISPDUType 2 FIRE (DISProtocolFamily 2 WARFARE)
14:40:06 received DIS PDU DISPDUType 22 COMMENT (DISProtocolFamily 5 SIMULATION_MANAGEMENT)
messages: "MV3500 ExampleSimulation" "runSimulation loop 3"
14:23:57 received DIS PDU DISPDUType 1 ENTITY_STATE (DISProtocolFamily 1 ENTITY_INFORMATION_INTERACTION)
14:24:01 received DIS PDU DISPDUType 2 FIRE (DISProtocolFamily 2 WARFARE)
14:46:06 received DIS PDU DISPDUType 22 COMMENT (DISProtocolFamily 5 SIMULATION_MANAGEMENT)
messages: "MV3500 ExampleSimulation" "runSimulation loop 4"
... 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)
... PDUs successfully sent
... Termination condition met, simulationComplete=true
BUILD SUCCESSFUL (total time: 8 seconds)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment