diff --git a/examples/nbproject/project.properties b/examples/nbproject/project.properties index 17414dd8367f0ee3faccc308ef8f10ccaa13eb13..4ba018850011b38a3df5af3b5203f96f028330e7 100644 --- a/examples/nbproject/project.properties +++ b/examples/nbproject/project.properties @@ -33,7 +33,9 @@ dist.jar=${dist.dir}/Networked_Graphics_MV3500_examples.jar dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= +file.reference.commons-io-2.6.jar=../lib/commons-io-2.6.jar file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar +file.reference.guava-28.0-jre.jar=../lib/guava-28.0-jre.jar file.reference.open-dis7-entities-all.jar=../lib/open-dis7-entities-all.jar file.reference.open-dis7-java.jar=../lib/open-dis7-java.jar file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar @@ -43,7 +45,9 @@ javac.classpath=\ ${file.reference.open-dis7-java.jar}:\ ${file.reference.open-dis7-entities-all.jar}:\ ${file.reference.open-dis_4.16.jar}:\ - ${file.reference.dis-enums-1.3.jar} + ${file.reference.dis-enums-1.3.jar}:\ + ${file.reference.commons-io-2.6.jar}:\ + ${file.reference.guava-28.0-jre.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/examples/pduLog/Pdusave.dislog b/examples/pduLog/Pdusave.dislog new file mode 100644 index 0000000000000000000000000000000000000000..81140ef3100f6aaca866bdc3497891e35851454c --- /dev/null +++ b/examples/pduLog/Pdusave.dislog @@ -0,0 +1,74 @@ +!Begin!Beginning of DIS capture file, Pdusave.dislog. +AAAAAAAAAAA=,BwABAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AAAAAAAABAAAAAAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGR1U2VuZGVyAAAAAAAA +AAAAAAYnFzQ=,BwACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAw5/E8=,BwADAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAABKCawU=,BwAEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAABiMUWQ=,BwAFAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAB6asAg=,BwAGAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAACSXtxQ=,BwAHAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAACqX8i4=,BwAIAwAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAADDRnIQ=,BwAJAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAADb3s8o=,BwAKAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAADzy22g=,BwALBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAELsRqI=,BwAMBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAEkaZQA=,BwANBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAE8Zchw=,BwAOBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAFUU0zM=,BwAPBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA= +AAAAAFsSSvE=,BwAQBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAGE0Lkc=,BwARBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAGc7eF0=,BwASBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAG03klE=,BwATBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAHNuKsw=,BwAUBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAHl5GbY=,BwAVBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAH91lnQ=,BwAWBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAIV3UWE=,BwAXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAIuOHwY=,BwAYBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAJGdNv0=,BwAZBAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAJfnTYY=,BwAaBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAJ4RUCo=,BwAbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAKQazdY=,BwAcBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAKoegIg=,BwAdBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAALAdxIU=,BwAeBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAALZLcJ8=,BwAfBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAALxLoN0=,BwAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAMJ9SG8=,BwAhBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAMjEzAs=,BwAiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAM7mLcU=,BwAjBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAANThoJ8=,BwAkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAANryOl0=,BwAlCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAOEzux4=,BwAmCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAOc9h5g=,BwAnCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAO18gEQ=,BwAoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAPOvR4k=,BwApCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAPn3c9k=,BwAqCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAP//c20=,BwArCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAQYmvvs=,BwAsCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAQxQNCE=,BwAtCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAARKDbMU=,BwAuCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAARiLxXs=,BwAvCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAR6npnw=,BwAwCwAAAAAAAAAAAAAAAAAAAA== +AAAAASSkFmg=,BwAxCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAASrpb2I=,BwAyCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAATDlQzc=,BwAzCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAATcMq64=,BwA0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAT1C2gg=,BwA1CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAUNKcTk=,BwA2CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAUlFpjk=,BwA3CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAA= +AAAAAU97BG8=,BwA4CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAVWi3zA=,BwA5CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAVudhts=,BwA6CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAWGYUyo=,BwA7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAWeRZGM=,BwA8CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAW2UY50=,BwA9CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAXOOj50=,BwA+CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAXmm8+A=,BwA/CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAX+h584=,BwBACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAYXHvNI=,BwBBCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAYvN+fw=,BwBCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAZHltOI=,BwBDAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAZfoBJ0=,BwBEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAZ4pFTg=,BwBFAgAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAaRMhhA=,BwBGDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +AAAAAapH1Hk=,BwBHDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== +AAAAAbBCcZM=,BwBIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6QAAAAA= +!End!End of DIS capture file, Pdusave.dislog. diff --git a/examples/src/OpenDis7Examples/PduListenerSaver.java b/examples/src/OpenDis7Examples/PduListenerSaver.java new file mode 100644 index 0000000000000000000000000000000000000000..88be82c203c1ab9e3a70a53c5cee01b4c3378a30 --- /dev/null +++ b/examples/src/OpenDis7Examples/PduListenerSaver.java @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2008-2019, MOVES Institute, Naval Postgraduate School. All rights reserved. + * This work is licensed under the BSD open source license, available at https://www.movesinstitute.org/licenses/bsd.html + */ +package OpenDis7Examples; + +import edu.nps.moves.dis7.util.playerrecorder.Recorder; +import java.io.IOException; +import java.util.Scanner; + +/** + * PduSaver.java created on Aug 21, 2019 + * MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu + * + * @author Mike Bailey, jmbailey@nps.edu + * @version $Id$ + */ +public class PduListenerSaver +{ + private final static String DEFAULT_OUTPUTDIR = "./pduLog"; + private final static String MCAST_ADDR = "239.1.2.3"; + private final static int DIS_PORT = 3000; + + private enum mystate + { + RUNNING, + PAUSED; + } + + public static void main(String[] args) + { + String outDir = DEFAULT_OUTPUTDIR; + String mcast = MCAST_ADDR; + int port = DIS_PORT; + + switch (args.length) { + case 0: + break; + case 1: + outDir = args[0]; + break; + case 3: + outDir = args[0]; + mcast = args[1]; + port = Integer.parseInt(args[2]); + break; + default: + System.err.println("Usage: PduListener() or PduListener(\"outputdir\") or PduListener(\"outputdir\",\"multicast address\", ipPort"); + System.exit(1); + } + + System.out.println("Beginning pdu save to directory " + outDir); + try { + Recorder recorder = new Recorder(outDir, mcast, port); + + recorder.startResume(); + mystate state = mystate.RUNNING; + Scanner scan = new Scanner(System.in); + + while (true) { + System.out.println("Type p/enter to pause, r/enter to resume, q/enter to quit"); + String line = scan.nextLine(); + if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) { + recorder.stopPause(); + state = mystate.PAUSED; + } + else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) { + recorder.startResume(); + state = mystate.RUNNING; + } + else if (line.equalsIgnoreCase("q")) { + recorder.end(); + break; + } + } + System.out.println("Ending pdu save to "+recorder.getLogFile()); + } + catch (IOException ex) { + System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()); + } + } +} diff --git a/examples/src/OpenDis7Examples/PduReaderPlayer.java b/examples/src/OpenDis7Examples/PduReaderPlayer.java new file mode 100644 index 0000000000000000000000000000000000000000..17bf5d89710d59fd5ca196a786f956f30c444f1e --- /dev/null +++ b/examples/src/OpenDis7Examples/PduReaderPlayer.java @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2008-2019, MOVES Institute, Naval Postgraduate School. All rights reserved. + * This work is licensed under the BSD open source license, available at https://www.movesinstitute.org/licenses/bsd.html + */ +package OpenDis7Examples; + +import edu.nps.moves.dis7.util.playerrecorder.Player; +import java.io.File; +import java.io.IOException; +import java.util.Scanner; + +/** + * PduSaver.java created on Aug 21, 2019 + * MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu + * + * @author Mike Bailey, jmbailey@nps.edu + * @version $Id$ + */ +public class PduReaderPlayer +{ + private final static String DEFAULT_OUTPUTDIR = "./pduLog"; + private final static String MCAST_ADDR = "239.1.2.3"; + private final static int DIS_PORT = 3000; + + private enum mystate + { + RUNNING, + PAUSED; + } + + public static void main(String[] args) + { + String outDir = DEFAULT_OUTPUTDIR; + String mcast = MCAST_ADDR; + int port = DIS_PORT; + + switch (args.length) { + case 0: + break; + case 1: + outDir = args[0]; + break; + case 3: + outDir = args[0]; + mcast = args[1]; + port = Integer.parseInt(args[2]); + break; + default: + System.err.println("Usage: PduReaderPlayer() or PduReaderPlayer(\"outputdir\") or PduReaderPlayer(\"outputdir\",\"multicast address\", ipPort"); + System.exit(1); + } + + System.out.println("Beginning pdu playback from directory " + outDir); + try { + Player player = new Player(mcast, port, new File(outDir).toPath()); + player.startResume(); + mystate state = mystate.RUNNING; + Scanner scan = new Scanner(System.in); + + while (true) { + System.out.println("Type p/enter to pause, r/enter to resume, q/enter to quit"); + String line = scan.nextLine(); + if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) { + player.stopPause(); + state = mystate.PAUSED; + } + else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) { + player.startResume(); + state = mystate.RUNNING; + } + else if (line.equalsIgnoreCase("q")) { + player.end(); + break; + } + } + System.out.println("Ending pdu playback from "+outDir); + } + catch (IOException ex) { + System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()); + } + } +} diff --git a/examples/src/OpenDis7Examples/PduSender.java b/examples/src/OpenDis7Examples/PduSender.java index 72116cf4f53fe0cda5a6da13cf4432f2834d92bf..6208555f3504b3b291f451d8d8c4f2d2c86fdaad 100755 --- a/examples/src/OpenDis7Examples/PduSender.java +++ b/examples/src/OpenDis7Examples/PduSender.java @@ -410,6 +410,7 @@ public class PduSender buffer = baos.toByteArray(); DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); socket.send(packet); + try{Thread.sleep(100L);}catch(InterruptedException ex){} System.out.println("Sent PDU " + aPdu.getPduType().getValue() + " " + aPdu.getPduType() + " of type " + aPdu.getClass().getName()); } // write the PDUs out to an XML file. diff --git a/lib/commons-io-2.6.jar b/lib/commons-io-2.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..00556b119d45dd85a3c3073b1826916c3c60b9c4 Binary files /dev/null and b/lib/commons-io-2.6.jar differ diff --git a/lib/guava-28.0-jre.jar b/lib/guava-28.0-jre.jar new file mode 100644 index 0000000000000000000000000000000000000000..f254aae7680a1a64f886b826a7e1fc25ebdaef1f Binary files /dev/null and b/lib/guava-28.0-jre.jar differ diff --git a/lib/open-dis7-java.jar b/lib/open-dis7-java.jar index b31431d8377121fbe32943a856b4fcc8d08950f2..309c3e05ad8bc8d80f3507c5f4fcc2454e16d45c 100644 Binary files a/lib/open-dis7-java.jar and b/lib/open-dis7-java.jar differ diff --git a/lib/open-dis7-javadoc.jar b/lib/open-dis7-javadoc.jar index 2cbaa00e9da1a1aff16d6e6a8cfbeb8b8cdbc710..3d07ea8d481e5be6b333fa1f4e9403596a6ef803 100644 Binary files a/lib/open-dis7-javadoc.jar and b/lib/open-dis7-javadoc.jar differ diff --git a/lib/open-dis7-source.jar b/lib/open-dis7-source.jar index 3b81e0b7650af01b1d359d72cd3ca4e035481a32..d506c26477c9f11f7b1ec99e65533566c45282f8 100644 Binary files a/lib/open-dis7-source.jar and b/lib/open-dis7-source.jar differ