diff --git a/build.xml b/build.xml index 69b2030c8900cbdda3bcce2d0cae3776b532e036..87507d6998c87b422709e3fc3623402b5c04f184 100644 --- a/build.xml +++ b/build.xml @@ -78,6 +78,15 @@ test. Running in other ways, such as individually, doesn't seem to work. https://blogs.apache.org/netbeans/entry/junit-5-apache-ant-and --> + + <target name="pduRecord" depends="compile-test,-pre-test-run"> + <echo message="$work.dir=${work.dir}"/> + <java dir="." + classpath="${run.classpath}" + classname="edu.nps.moves.dis7.util.playerrecorder.Recorder"> + <!-- <arg line="*insert filename*"/> TODO in Recorder --> + </java> + </target> <target name="test" depends="compile-test,-pre-test-run"> <echo message="$work.dir=${work.dir}"/> diff --git a/src/edu/nps/moves/dis7/examples/EntityUse.java b/src/edu/nps/moves/dis7/examples/EntityUse.java index d89154f98ada7ac03b73de5cf32373e18b8eaae8..351f5fc673c8ab707619e4753c76ebec7cd11ac8 100644 --- a/src/edu/nps/moves/dis7/examples/EntityUse.java +++ b/src/edu/nps/moves/dis7/examples/EntityUse.java @@ -7,8 +7,8 @@ package edu.nps.moves.dis7.examples; import edu.nps.moves.dis7.EntityStatePdu; import edu.nps.moves.dis7.EntityType; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import edu.nps.moves.dis7.entities.EntityTypeFactory; import edu.nps.moves.dis7.enumerations.DISPDUType; import java.io.IOException; diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiver.java b/src/edu/nps/moves/dis7/examples/EspduReceiver.java index e5ecdcde295b2032b25132f77b63987cf5bc77b3..e1dabd6d1613ce66783c9f357880cea99046b867 100644 --- a/src/edu/nps/moves/dis7/examples/EspduReceiver.java +++ b/src/edu/nps/moves/dis7/examples/EspduReceiver.java @@ -9,7 +9,7 @@ import edu.nps.moves.dis7.EntityID; import edu.nps.moves.dis7.EntityStatePdu; import edu.nps.moves.dis7.Pdu; import edu.nps.moves.dis7.Vector3Double; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.PduFactory; import java.net.DatagramPacket; import java.net.MulticastSocket; import java.util.Iterator; diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java b/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java index c5853bfe0765c5f886fc1cedec1487592db2bd32..f8cb0f51d56137da94c9a4552f375565d33e6a1a 100644 --- a/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java +++ b/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java @@ -5,7 +5,7 @@ package edu.nps.moves.dis7.examples; import edu.nps.moves.dis7.Pdu; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.PduFactory; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; @@ -38,6 +38,7 @@ public class EspduReceiverNIO // Specify the socket to receive data socket = new MulticastSocket(EspduSender.DIS_DESTINATION_PORT); address = InetAddress.getByName(EspduSender.DEFAULT_MULTICAST_GROUP); + // TODO fix deprecation by adding NetworkInterface (hopefully DisThreadedNetworkInterface) socket.joinGroup(address); // Loop infinitely, receiving datagrams diff --git a/src/edu/nps/moves/dis7/examples/EspduSender.java b/src/edu/nps/moves/dis7/examples/EspduSender.java index 16cf91783766318c5ad5cd0f17fdeae20a2a0f24..45c73ae96f0c026edbc1b72ead8af0f763940588 100644 --- a/src/edu/nps/moves/dis7/examples/EspduSender.java +++ b/src/edu/nps/moves/dis7/examples/EspduSender.java @@ -6,7 +6,7 @@ package edu.nps.moves.dis7.examples; import edu.nps.moves.dis7.*; -import edu.nps.moves.dis7.util.CoordinateConversions; +import edu.nps.moves.dis7.utilities.CoordinateConversions; import java.io.*; import java.net.*; import java.util.*; diff --git a/src/edu/nps/moves/dis7/examples/PduListenerSaver.java b/src/edu/nps/moves/dis7/examples/PduListenerSaver.java index eba90c07b80953283df2c395fb9cd38dda4225a6..a4a0fe31fc7861c07b31ac08c75157af48590372 100644 --- a/src/edu/nps/moves/dis7/examples/PduListenerSaver.java +++ b/src/edu/nps/moves/dis7/examples/PduListenerSaver.java @@ -4,7 +4,7 @@ */ package edu.nps.moves.dis7.examples; -import edu.nps.moves.dis7.util.playerrecorder.Recorder; +import edu.nps.moves.dis7.utilities.stream.PduRecorder; import java.io.IOException; import java.util.Scanner; @@ -51,7 +51,7 @@ public class PduListenerSaver System.out.println("Beginning pdu save to directory " + outDir); try { - Recorder recorder = new Recorder(outDir, mcast, port); + PduRecorder recorder = new PduRecorder(outDir, mcast, port); recorder.startResume(); mystate state = mystate.RUNNING; diff --git a/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java b/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java index f8f860d130b63c6a7d8d52f506b6669f076ccbfb..db25342793f56fc99f29b3580279ade0035ac5de 100644 --- a/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java +++ b/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java @@ -4,7 +4,7 @@ */ package edu.nps.moves.dis7.examples; -import edu.nps.moves.dis7.util.playerrecorder.Player; +import edu.nps.moves.dis7.utilities.stream.PduPlayer; import java.io.File; import java.io.IOException; import java.util.Scanner; @@ -52,7 +52,7 @@ public class PduReaderPlayer System.out.println("Beginning pdu playback from directory " + outDir); try { - Player player = new Player(mcast, port, new File(outDir).toPath()); + PduPlayer player = new PduPlayer(mcast, port, new File(outDir).toPath()); player.startResume(); mystate state = mystate.RUNNING; Scanner scan = new Scanner(System.in); diff --git a/src/edu/nps/moves/dis7/examples/ThreadedNetExample.java b/src/edu/nps/moves/dis7/examples/ThreadedNetExample.java index a4be300e49f8a2bdf68dbfb1917c92b929027b48..c9a46394f28fce7ae9bc082895b2b8ebb6a6336b 100644 --- a/src/edu/nps/moves/dis7/examples/ThreadedNetExample.java +++ b/src/edu/nps/moves/dis7/examples/ThreadedNetExample.java @@ -6,8 +6,8 @@ package edu.nps.moves.dis7.examples; import edu.nps.moves.dis7.Pdu; import edu.nps.moves.dis7.enumerations.Country; -import edu.nps.moves.dis7.util.DisThreadedNetIF; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; +import edu.nps.moves.dis7.utilities.PduFactory; /** * ThreadedNetExample.java created on Sep 9, 2019 diff --git a/src/edu/nps/moves/dis7/util/CoordinateConversions.java b/src/edu/nps/moves/dis7/utilities/CoordinateConversions.java similarity index 99% rename from src/edu/nps/moves/dis7/util/CoordinateConversions.java rename to src/edu/nps/moves/dis7/utilities/CoordinateConversions.java index bd70102cc58ec308c6fee5d38901c75115360cbd..4ed7996cb63bfe7ce0b0676832856d86e6f82663 100644 --- a/src/edu/nps/moves/dis7/util/CoordinateConversions.java +++ b/src/edu/nps/moves/dis7/utilities/CoordinateConversions.java @@ -3,7 +3,7 @@ * This work is provided under a BSD open-source license, see project license.html and license.txt */ -package edu.nps.moves.dis7.util; +package edu.nps.moves.dis7.utilities; /** * Converts DIS (x,y,z) rectilinear coordinates (earth-centered RH coordinate system) diff --git a/src/edu/nps/moves/dis7/util/DisNetworking.java b/src/edu/nps/moves/dis7/utilities/DisNetworking.java similarity index 99% rename from src/edu/nps/moves/dis7/util/DisNetworking.java rename to src/edu/nps/moves/dis7/utilities/DisNetworking.java index b91f740dab45d880fe8d2c0552abd7c9a6ccf4b8..4250a07d1ac4ebf2deda266a9fe31e9fa6f7cc67 100644 --- a/src/edu/nps/moves/dis7/util/DisNetworking.java +++ b/src/edu/nps/moves/dis7/utilities/DisNetworking.java @@ -2,7 +2,7 @@ * Copyright (c) 2008-2020, MOVES Institute, Naval Postgraduate School (NPS). All rights reserved. * This work is provided under a BSD open-source license, see project license.html and license.txt */ -package edu.nps.moves.dis7.util; +package edu.nps.moves.dis7.utilities; import edu.nps.moves.dis7.Pdu; import java.io.ByteArrayOutputStream; diff --git a/src/edu/nps/moves/dis7/util/DisThreadedNetIF.java b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java similarity index 99% rename from src/edu/nps/moves/dis7/util/DisThreadedNetIF.java rename to src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java index b150ce02c8774fcd23106239b49d735f9187a61b..6fa1553398c4b9f8b8a86ca307d36ef947e0c6f1 100644 --- a/src/edu/nps/moves/dis7/util/DisThreadedNetIF.java +++ b/src/edu/nps/moves/dis7/utilities/DisThreadedNetIF.java @@ -2,7 +2,7 @@ * Copyright (c) 2008-2020, MOVES Institute, Naval Postgraduate School (NPS). All rights reserved. * This work is provided under a BSD open-source license, see project license.html and license.txt */ -package edu.nps.moves.dis7.util; +package edu.nps.moves.dis7.utilities; import edu.nps.moves.dis7.Pdu; import edu.nps.moves.dis7.enumerations.DISPDUType; diff --git a/src/edu/nps/moves/dis7/util/PduFactory.java b/src/edu/nps/moves/dis7/utilities/PduFactory.java similarity index 99% rename from src/edu/nps/moves/dis7/util/PduFactory.java rename to src/edu/nps/moves/dis7/utilities/PduFactory.java index b9853aae2e5bff7ff0af9701b218500cc9075c78..9c3bd6e2a91a842a8a7f3f6cab9e8b989570e234 100644 --- a/src/edu/nps/moves/dis7/util/PduFactory.java +++ b/src/edu/nps/moves/dis7/utilities/PduFactory.java @@ -3,7 +3,7 @@ * This work is provided under a BSD open-source license, see project license.html and license.txt */ -package edu.nps.moves.dis7.util; +package edu.nps.moves.dis7.utilities; import edu.nps.moves.dis7.*; import edu.nps.moves.dis7.enumerations.*; diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/LogCompare.java b/src/edu/nps/moves/dis7/utilities/stream/LogCompare.java similarity index 87% rename from src/edu/nps/moves/dis7/util/playerrecorder/LogCompare.java rename to src/edu/nps/moves/dis7/utilities/stream/LogCompare.java index 29b38668728cc988f034f71bee614ad3fa204682..bd191e9019833b73be115015fa3461a49c239884 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/LogCompare.java +++ b/src/edu/nps/moves/dis7/utilities/stream/LogCompare.java @@ -1,8 +1,8 @@ -package edu.nps.moves.dis7.util.playerrecorder; +package edu.nps.moves.dis7.utilities.stream; import edu.nps.moves.dis7.Pdu; -import edu.nps.moves.dis7.util.PduFactory; -import static edu.nps.moves.dis7.util.playerrecorder.Recorder.COMMENT_MARKER; +import edu.nps.moves.dis7.utilities.PduFactory; +import static edu.nps.moves.dis7.utilities.stream.PduRecorder.COMMENT_MARKER; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; @@ -17,16 +17,24 @@ import java.util.Base64; */ public class LogCompare { + /** + * filepath1 and filepath2 + */ private static String[] paths = { - "/Users/mike/NetbeansProjects/open-dis7-java/examples/pdulog/Pdusave.dislog", - "/Users/mike/NetbeansProjects/open-dis7-java/examples/pdulog/Pdusave1.dislog"}; - + "Pdusave.dislog", // TODO 1 + "Pdusave1.dislog" // TODO 2 + }; + + + /** Invocation + * @param args filepath1 filepath2 + */ public static void main(String[] args) { if (args.length > 0) - paths[0] = args[0]; + paths[0] = args[0]; // filepath1 if (args.length > 1) - paths[1] = args[1]; + paths[1] = args[1]; // filepath1 main2(paths); } @@ -35,7 +43,7 @@ public class LogCompare // Not same sequence of Pdus // Not same number of Pdus // Pdu content difference - public static void main2(String[] args) + public static void main2(String[] args) // TODO rename or remove middlemen { if (args.length < 2) { System.out.println("Usage: java LogCompare filepath1 filepath2"); diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/Player.java b/src/edu/nps/moves/dis7/utilities/stream/PduPlayer.java similarity index 91% rename from src/edu/nps/moves/dis7/util/playerrecorder/Player.java rename to src/edu/nps/moves/dis7/utilities/stream/PduPlayer.java index b5302ff9e5b1ca94c5d056800113724db423f69f..d8c7e401efb4e08ad1536c0628023199c159c299 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/Player.java +++ b/src/edu/nps/moves/dis7/utilities/stream/PduPlayer.java @@ -3,7 +3,7 @@ * This work is provided under a BSD open-source license, see project license.html and license.txt */ -package edu.nps.moves.dis7.util.playerrecorder; +package edu.nps.moves.dis7.utilities.stream; import com.google.common.primitives.Longs; @@ -15,9 +15,9 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.Base64; -import static edu.nps.moves.dis7.util.playerrecorder.Recorder.*; +import static edu.nps.moves.dis7.utilities.stream.PduRecorder.*; -public class Player +public class PduPlayer { public interface RawListener { void receiveBytes(byte[] ba); @@ -27,7 +27,7 @@ public class Player private int port; private Thread thrd; - public Player(String ip, int port, Path disLogDirectory) throws IOException + public PduPlayer(String ip, int port, Path disLogDirectory) throws IOException { this.disLogDirectory = disLogDirectory; this.ip = ip; @@ -65,7 +65,7 @@ public class Player System.out.println("Replaying DIS logs."); InetAddress addr = InetAddress.getByName(ip); - FilenameFilter filter = (dir, name) -> name.endsWith(Recorder.DISLOG_FILE_TAIL) && !name.startsWith("."); + FilenameFilter filter = (dir, name) -> name.endsWith(PduRecorder.DISLOG_FILE_EXTENSION) && !name.startsWith("."); File[] fs = disLogDirectory.toFile().listFiles(filter); if (fs == null) @@ -146,7 +146,7 @@ public class Player if(rawListener != null) rawListener.receiveBytes(null); // indicate the end } - catch (Exception ex) { + catch (IOException ex) { System.err.println("Exception reading/writing pdus: "+ex.getClass().getSimpleName()+": "+ex.getLocalizedMessage()); thrd = null; closer(); @@ -192,7 +192,7 @@ public class Player brdr = null; } } - catch (Exception ioex) { + catch (IOException ioex) { System.err.println("IOException closing reader in Player"); } } @@ -206,12 +206,12 @@ public class Player System.out.println(s + " "); showPduCountsOneTime = true; // get the first one in there } - else if (s.startsWith(STOP_COMMENT_MARKER)) { + else if (s.startsWith(FINISH_COMMENT_MARKER)) { System.out.print("Total PDUs: "); showCounts(); System.out.println(); System.out.println("End of replay from " + f.getName()); - System.out.println(s.substring(STOP_COMMENT_MARKER.length())); + System.out.println(s.substring(FINISH_COMMENT_MARKER.length())); scenarioPduCount = 0; startNanoTime = null; @@ -236,13 +236,16 @@ public class Player closer(); } + /** Invocation + * @param args none supported + */ public static void main(String[] args) { try { //new Player("230.0.0.0", 3000, new File("./pdulog").toPath()).startResume(); - new Player("230.0.0.0", 3000, new File("/Users/mike/NetbeansProjects/open-dis7-java/examples/pdulog").toPath()); + new PduPlayer("230.0.0.0", 3000, new File("./pdulog").toPath()); } - catch (Exception ex) { + catch (IOException ex) { ex.printStackTrace(); } } diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/PduReceiver.java b/src/edu/nps/moves/dis7/utilities/stream/PduReceiver.java similarity index 60% rename from src/edu/nps/moves/dis7/util/playerrecorder/PduReceiver.java rename to src/edu/nps/moves/dis7/utilities/stream/PduReceiver.java index 9a1e276921a2e7b745414c970cfc6e29bf648538..1752027355226b83f4fced3f2dba8e689f85c096 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/PduReceiver.java +++ b/src/edu/nps/moves/dis7/utilities/stream/PduReceiver.java @@ -1,4 +1,4 @@ -package edu.nps.moves.dis7.util.playerrecorder; +package edu.nps.moves.dis7.utilities.stream; public interface PduReceiver { diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/Recorder.java b/src/edu/nps/moves/dis7/utilities/stream/PduRecorder.java similarity index 60% rename from src/edu/nps/moves/dis7/util/playerrecorder/Recorder.java rename to src/edu/nps/moves/dis7/utilities/stream/PduRecorder.java index 9710cf189b9ff25af52c250faf61e3dc2ddd2fff..e6549828ba1e4c0d1bdcb815c62c8c1d5d3ad513 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/Recorder.java +++ b/src/edu/nps/moves/dis7/utilities/stream/PduRecorder.java @@ -1,11 +1,9 @@ -package edu.nps.moves.dis7.util.playerrecorder; +package edu.nps.moves.dis7.utilities.stream; import com.google.common.primitives.Longs; -import edu.nps.moves.dis7.Pdu; -import edu.nps.moves.dis7.enumerations.DISPDUType; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.DisThreadedNetIF; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; +import edu.nps.moves.dis7.utilities.PduFactory; import org.apache.commons.io.FilenameUtils; import java.io.BufferedWriter; @@ -13,35 +11,37 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Path; +import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Base64; +import java.util.Calendar; -public class Recorder implements PduReceiver +public class PduRecorder implements PduReceiver { static String DEFAULT_OUTDIR = "./pdulog"; - static String DEFAULT_FILEPREFIX = "Pdusave"; + static String DEFAULT_FILEPREFIX = "Pdusave"; // TODO better name + static String DISLOG_FILE_EXTENSION = ".dislog"; + static String DEFAULT_MCAST = "230.0.0.0"; static int DEFAULT_PORT = 3000; - - static String DISLOG_FILE_TAIL = ".dislog"; - - public static String COMMENT_MARKER = "!"; - static String START_COMMENT_MARKER = COMMENT_MARKER + "Begin" + COMMENT_MARKER; - static String STOP_COMMENT_MARKER = COMMENT_MARKER + "End" + COMMENT_MARKER; + + public static final String COMMENT_MARKER = "#"; + static String START_COMMENT_MARKER = COMMENT_MARKER + " Start, "; + static String FINISH_COMMENT_MARKER = COMMENT_MARKER + " Finish, "; private BufferedWriter bufferedWriter; private File logFile; private DisThreadedNetIF disnetworking; - public Recorder() throws IOException + public PduRecorder() throws IOException { this(DEFAULT_OUTDIR,DEFAULT_MCAST,DEFAULT_PORT); } - public Recorder(String outputDir, String mcastaddr, int port) throws IOException + public PduRecorder(String outputDir, String mcastaddr, int port) throws IOException { - logFile = makeFile(new File(outputDir).toPath(), DEFAULT_FILEPREFIX+DISLOG_FILE_TAIL ); + logFile = makeFile(new File(outputDir).toPath(), DEFAULT_FILEPREFIX+DISLOG_FILE_EXTENSION ); bufferedWriter = new BufferedWriter(new FileWriter(logFile)); disnetworking = new DisThreadedNetIF(port, mcastaddr); @@ -73,7 +73,7 @@ public class Recorder implements PduReceiver bufferedWriter.flush(); bufferedWriter.close(); System.out.println(); - System.out.println("Recorder log file closed"); + System.out.println("Recorder log file closed: " + logFile.getPath()); return logFile; } @@ -126,17 +126,25 @@ public class Recorder implements PduReceiver private void writeHeader() throws IOException { - String template = "Beginning of DIS capture file, %s."; - String startComment = String.format(template, logFile.getName() + " (show transient progressing PDU count, then final total)"); - bufferedWriter.write(START_COMMENT_MARKER + startComment); +// String template = ", DIS capture file %s."; +// String startComment = String.format(template, logFile.getName() + " (show transient progressing PDU count, then final total)"); + + // https://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); + + bufferedWriter.write( START_COMMENT_MARKER + timeStamp + ", DIS capture file, " + logFile.getPath()); bufferedWriter.newLine(); } private void writeFooter() throws IOException { - String template = "End of DIS capture file, %s."; - String endComment = String.format(template, logFile.getName()); - bufferedWriter.write(STOP_COMMENT_MARKER + endComment); +// String template = ", DIS capture file, %s."; +// String endComment = String.format(template, logFile.getPath()); + + // https://stackoverflow.com/questions/5175728/how-to-get-the-current-date-time-in-java + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); + + bufferedWriter.write(FINISH_COMMENT_MARKER + timeStamp + ", DIS capture file, " + logFile.getPath()); bufferedWriter.newLine(); } @@ -165,7 +173,9 @@ public class Recorder implements PduReceiver return f; } - /* Example test usage */ + /** Invocation + * @param args none supported, TODO offer path/filename + */ public static void main(String[] args) { PduFactory factory = new PduFactory(); //default appid, country, etc. @@ -174,37 +184,44 @@ public class Recorder implements PduReceiver Path path = new File("./pdulog").toPath(); String filename = "Pdusave"; - Recorder recorder; - try{recorder = new Recorder();} catch(IOException ex) { + PduRecorder recorder; + try{recorder = new PduRecorder();} catch(IOException ex) { System.err.println("Exception creating recorder: "+ex.getLocalizedMessage()); return; } - DISPDUType all[] = DISPDUType.values(); - Arrays.stream(all).forEach(typ-> { - if(typ != DISPDUType.OTHER) { - try { - Pdu pdu = factory.createPdu(typ); - disnet.sendPdu(pdu); - sleep(100); - } - catch(Exception ex) { - System.err.println("Exception sending Pdu: "+ex.getLocalizedMessage()); - } - } - }); - sleep(2000); +// // self test +// DISPDUType all[] = DISPDUType.values(); +// Arrays.stream(all).forEach(typ-> { +// if(typ != DISPDUType.OTHER) { +// try { +// Pdu pdu = factory.createPdu(typ); +// disnet.sendPdu(pdu); +// sleep(100); +// } +// catch(Exception ex) { +// System.err.println("Exception sending Pdu: "+ex.getLocalizedMessage()); +// } +// } +// }); + + System.out.println("Record for 10 seconds..."); // TODO arrrrgh this is awful + sleep(10000); + System.out.println("Recording complete."); try { recorder.end(); } - catch(Exception ex) { + catch(IOException ex) { System.err.println("Exception closing recorder: "+ex.getClass().getSimpleName()+": "+ex.getLocalizedMessage()); } } private static void sleep(long ms) { - try{Thread.sleep(ms);}catch(InterruptedException ex) {} + try{ + Thread.sleep(ms);} + catch(InterruptedException ex) { + } } } diff --git a/src/edu/nps/moves/dis7/util/playerrecorder/ValidationPdusMakerV1.java b/src/edu/nps/moves/dis7/utilities/stream/ValidationPdusMakerV1.java similarity index 98% rename from src/edu/nps/moves/dis7/util/playerrecorder/ValidationPdusMakerV1.java rename to src/edu/nps/moves/dis7/utilities/stream/ValidationPdusMakerV1.java index 75291cf74c61c19a20aadb643d884a643dab06df..b6070e3815868adc48a5c91007315892d5834abc 100644 --- a/src/edu/nps/moves/dis7/util/playerrecorder/ValidationPdusMakerV1.java +++ b/src/edu/nps/moves/dis7/utilities/stream/ValidationPdusMakerV1.java @@ -3,11 +3,11 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package edu.nps.moves.dis7.util.playerrecorder; +package edu.nps.moves.dis7.utilities.stream; import edu.nps.moves.dis7.enumerations.Country; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import edu.nps.moves.dis7.*; import java.io.File; import java.io.IOException; @@ -46,7 +46,7 @@ public class ValidationPdusMakerV1 PduFactory factory; DisNetworking disnet; - Recorder recorder; + PduRecorder recorder; /** * * @param dir directory to save pdu log file @@ -69,7 +69,7 @@ public class ValidationPdusMakerV1 */ factory = new PduFactory(COUNTRY_V1, EXERCISEID_V1, SITEID_V1, APPLICATIONID_V1, USEABSOLUTETIME_V1); disnet = new DisNetworking(); - recorder = new Recorder(); //dirpath,fn); + recorder = new PduRecorder(); //dirpath,fn); // Start a thread to receive and record pdus; this is a datagram socket and is non-interruptible; thread will go away on Sys exit /*Thread receiverThrd = new Thread(() -> { diff --git a/test/edu/nps/moves/dis7/AllPduRoundTripTest.java b/test/edu/nps/moves/dis7/AllPduRoundTripTest.java index 8ebe66285e0c0003ca6bfabb21971ca1c73985a1..1dc9d8a8e470cdbe1a252564365f74fe1b2faca6 100644 --- a/test/edu/nps/moves/dis7/AllPduRoundTripTest.java +++ b/test/edu/nps/moves/dis7/AllPduRoundTripTest.java @@ -19,10 +19,10 @@ package edu.nps.moves.dis7; import com.google.common.io.Files; import edu.nps.moves.dis7.enumerations.Country; import edu.nps.moves.dis7.enumerations.DISPDUType; -import edu.nps.moves.dis7.util.DisThreadedNetIF; -import edu.nps.moves.dis7.util.PduFactory; -import edu.nps.moves.dis7.util.playerrecorder.Player; -import edu.nps.moves.dis7.util.playerrecorder.Recorder; +import edu.nps.moves.dis7.utilities.DisThreadedNetIF; +import edu.nps.moves.dis7.utilities.PduFactory; +import edu.nps.moves.dis7.utilities.stream.PduPlayer; +import edu.nps.moves.dis7.utilities.stream.PduRecorder; import java.io.File; import java.util.HashMap; import java.util.concurrent.Semaphore; @@ -185,7 +185,7 @@ public class AllPduRoundTripTest private HashMap<DISPDUType, Pdu> pduReadMap = new HashMap<>(); DisThreadedNetIF disnetworking; - Recorder recorder; + PduRecorder recorder; private void setupReceiver() { @@ -212,7 +212,7 @@ public class AllPduRoundTripTest private void setupRecorder() throws Exception { recorderDirectory = Files.createTempDir(); - recorder = new Recorder(recorderDirectory.getAbsolutePath(), disnetworking.getMcastGroup(), disnetworking.getDisPort()); + recorder = new PduRecorder(recorderDirectory.getAbsolutePath(), disnetworking.getMcastGroup(), disnetworking.getDisPort()); System.out.println("Recorder log at " + recorderDirectory.getAbsolutePath()); } @@ -233,7 +233,7 @@ public class AllPduRoundTripTest private void getAllFromRecorder(Semaphore sem) throws Exception { sem.acquire(); - Player player = new Player(disnetworking.getMcastGroup(), disnetworking.getDisPort(), recorderDirectory.toPath()); + PduPlayer player = new PduPlayer(disnetworking.getMcastGroup(), disnetworking.getDisPort(), recorderDirectory.toPath()); player.sendToNet(false); player.addRawListener(ba -> { if (ba != null) { diff --git a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java index 8392c56e000834193923d3c944f20a8e2176b0ed..fc0ec2264d910f6e3e2f4a3f79e014f214ddd051 100644 --- a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java +++ b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java @@ -7,8 +7,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.AppearanceCamouflageType; import edu.nps.moves.dis7.enumerations.ForceID; import edu.nps.moves.dis7.enumerations.LandPlatformAppearance; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/test/edu/nps/moves/dis7/CommentPdusTest.java b/test/edu/nps/moves/dis7/CommentPdusTest.java index 8d697cfac0235fc5a15a3a09c62dbeba19436505..6d5fc7dd76f4a50d1c1360a85d837fd627604e43 100644 --- a/test/edu/nps/moves/dis7/CommentPdusTest.java +++ b/test/edu/nps/moves/dis7/CommentPdusTest.java @@ -5,8 +5,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.VariableRecordType; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*; diff --git a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java index 2417e5f4bd0e660cac4238dd3ab6b3087455f7fa..f7e845a3da5486a731c9b113629b09485e7fe36e 100644 --- a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java +++ b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java @@ -5,8 +5,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.VariableRecordType; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java index 1471a781fa98f973feeb60f8f6d11413ddc6ac09..8bd6b2faefc36155b90cc00a51fcf6bade63af13 100644 --- a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java +++ b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java @@ -6,8 +6,8 @@ package edu.nps.moves.dis7; import edu.nps.moves.dis7.enumerations.ActionResponseRequestStatus; import edu.nps.moves.dis7.enumerations.VariableRecordType; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/test/edu/nps/moves/dis7/PduFactoryTest.java b/test/edu/nps/moves/dis7/PduFactoryTest.java index feb5cbf070ca8c67cca854b3a8f194e20cce0320..e99ad4383d5c1e44b2e13e8d5410ddc9724ae0a8 100644 --- a/test/edu/nps/moves/dis7/PduFactoryTest.java +++ b/test/edu/nps/moves/dis7/PduFactoryTest.java @@ -11,7 +11,7 @@ package edu.nps.moves.dis7; */ import edu.nps.moves.dis7.enumerations.Country; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.PduFactory; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.assertNull; diff --git a/test/edu/nps/moves/dis7/SignalPdusTest.java b/test/edu/nps/moves/dis7/SignalPdusTest.java index e9589edb861871809cfa6d5f8dd0e0814523a24e..7f8f81599844f861cbaa2faadbe1a02a38676733 100644 --- a/test/edu/nps/moves/dis7/SignalPdusTest.java +++ b/test/edu/nps/moves/dis7/SignalPdusTest.java @@ -4,8 +4,8 @@ */ package edu.nps.moves.dis7; -import edu.nps.moves.dis7.util.DisNetworking; -import edu.nps.moves.dis7.util.PduFactory; +import edu.nps.moves.dis7.utilities.DisNetworking; +import edu.nps.moves.dis7.utilities.PduFactory; import java.io.IOException; import org.junit.jupiter.api.*; import static org.junit.jupiter.api.Assertions.*;