Skip to content
Snippets Groups Projects
Commit a369e6c8 authored by J. M. Bailey's avatar J. M. Bailey
Browse files

Support pdu listener/saver and pdu reader/sender

parent f4565706
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,9 @@ dist.jar=${dist.dir}/Networked_Graphics_MV3500_examples.jar ...@@ -33,7 +33,9 @@ dist.jar=${dist.dir}/Networked_Graphics_MV3500_examples.jar
dist.javadoc.dir=${dist.dir}/javadoc dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath= endorsed.classpath=
excludes= 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.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-entities-all.jar=../lib/open-dis7-entities-all.jar
file.reference.open-dis7-java.jar=../lib/open-dis7-java.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 file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar
...@@ -43,7 +45,9 @@ javac.classpath=\ ...@@ -43,7 +45,9 @@ javac.classpath=\
${file.reference.open-dis7-java.jar}:\ ${file.reference.open-dis7-java.jar}:\
${file.reference.open-dis7-entities-all.jar}:\ ${file.reference.open-dis7-entities-all.jar}:\
${file.reference.open-dis_4.16.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 # Space-separated list of extra javac options
javac.compilerargs= javac.compilerargs=
javac.deprecation=false javac.deprecation=false
......
!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.
/**
* 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());
}
}
}
/**
* 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());
}
}
}
...@@ -410,6 +410,7 @@ public class PduSender ...@@ -410,6 +410,7 @@ public class PduSender
buffer = baos.toByteArray(); buffer = baos.toByteArray();
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); DatagramPacket packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT);
socket.send(packet); 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()); System.out.println("Sent PDU " + aPdu.getPduType().getValue() + " " + aPdu.getPduType() + " of type " + aPdu.getClass().getName());
} }
// write the PDUs out to an XML file. // write the PDUs out to an XML file.
......
File added
File added
No preview for this file type
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment