From 3d596d4d0b148928985023f338f7875b05eae4eb Mon Sep 17 00:00:00 2001
From: Don Brutzman <brutzman@nps.edu>
Date: Tue, 25 Aug 2020 23:09:52 -0700
Subject: [PATCH] tuned diagnostics, example output

---
 .../moves/dis7/examples/EspduReceiver.java    |  9 +-
 .../moves/dis7/examples/EspduReceiverLog.txt  | 86 +++++++++++++++++++
 .../moves/dis7/examples/EspduReceiverNIO.java |  7 +-
 .../dis7/examples/EspduReceiverNioLog.txt     | 83 ++++++++++++++++++
 .../nps/moves/dis7/examples/EspduSender.java  |  2 +-
 .../moves/dis7/examples/EspduSenderNIO.java   |  2 +-
 .../moves/dis7/examples/PduListenerSaver.java | 53 ++++++++----
 .../dis7/examples/PduListenerSaverLog.dislog  | 74 ++++++++++++++++
 .../dis7/examples/PduListenerSaverLog.txt     | 83 ++++++++++++++++++
 .../moves/dis7/examples/PduReaderPlayer.java  |  2 +-
 10 files changed, 377 insertions(+), 24 deletions(-)
 create mode 100644 src/edu/nps/moves/dis7/examples/EspduReceiverLog.txt
 create mode 100644 src/edu/nps/moves/dis7/examples/EspduReceiverNioLog.txt
 create mode 100644 src/edu/nps/moves/dis7/examples/PduListenerSaverLog.dislog
 create mode 100644 src/edu/nps/moves/dis7/examples/PduListenerSaverLog.txt

diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiver.java b/src/edu/nps/moves/dis7/examples/EspduReceiver.java
index 0507def195..47d451d653 100644
--- a/src/edu/nps/moves/dis7/examples/EspduReceiver.java
+++ b/src/edu/nps/moves/dis7/examples/EspduReceiver.java
@@ -36,11 +36,12 @@ public class EspduReceiver
     PduFactory pduFactory = new PduFactory();
     List<Pdu> pduBundle;
 
-    try {
+    try 
+    {
       // Specify the socket to receive data
       socket = new MulticastSocket(DisThreadedNetIF.DEFAULT_DIS_PORT);
       
-      InetAddress maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MCAST_GROUP);
+      InetAddress maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS);
       InetSocketAddress group = new InetSocketAddress(maddr, DisThreadedNetIF.DEFAULT_DIS_PORT);
 
       socket.joinGroup(group, DisThreadedNetIF.findIpv4Interface());
@@ -50,6 +51,7 @@ public class EspduReceiver
       Vector3Double position;
       Iterator<Pdu> it;
       Pdu aPdu;
+      int pduCounter = 0;
       
       while (true) {
         socket.receive(packet);
@@ -61,8 +63,9 @@ public class EspduReceiver
 
         while (it.hasNext()) {
           aPdu = it.next();
+          pduCounter++;
 
-          System.out.print("got PDU of type: " + aPdu.getClass().getName());
+          System.out.print(pduCounter + ". got PDU of type: " + aPdu.getClass().getName());
           if (aPdu instanceof EntityStatePdu) {
             eid = ((EntityStatePdu) aPdu).getEntityID();
             position = ((EntityStatePdu) aPdu).getEntityLocation();
diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiverLog.txt b/src/edu/nps/moves/dis7/examples/EspduReceiverLog.txt
new file mode 100644
index 0000000000..11080bb241
--- /dev/null
+++ b/src/edu/nps/moves/dis7/examples/EspduReceiverLog.txt
@@ -0,0 +1,86 @@
+ant -f C:\\x3d-github\\open-dis7-java -Dnb.internal.action.name=run.single -Djavac.includes=edu/nps/moves/dis7/examples/EspduReceiver.java -Drun.class=edu.nps.moves.dis7.examples.EspduReceiver run-single
+init:
+Deleting: C:\x3d-github\open-dis7-java\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x3d-github\open-dis7-java\build\built-jar.properties
+Compiling 1 source file to C:\x3d-github\open-dis7-java\build\classes
+warning: [options] bootstrap class path not set in conjunction with -source 8
+1 warning
+compile-single:
+run-single:
+Using network interface Intel(R) Dual Band Wireless-AC 8260
+1. got PDU of type: edu.nps.moves.dis7.AcknowledgePdu
+2. got PDU of type: edu.nps.moves.dis7.AcknowledgeReliablePdu
+3. got PDU of type: edu.nps.moves.dis7.ActionRequestPdu
+4. got PDU of type: edu.nps.moves.dis7.ActionRequestReliablePdu
+5. got PDU of type: edu.nps.moves.dis7.ActionResponsePdu
+6. got PDU of type: edu.nps.moves.dis7.ActionResponseReliablePdu
+7. got PDU of type: edu.nps.moves.dis7.AggregateStatePdu
+8. got PDU of type: edu.nps.moves.dis7.AppearancePdu
+9. got PDU of type: edu.nps.moves.dis7.ArealObjectStatePdu
+10. got PDU of type: edu.nps.moves.dis7.ArticulatedPartsPdu
+11. got PDU of type: edu.nps.moves.dis7.AttributePdu
+12. got PDU of type: edu.nps.moves.dis7.CollisionElasticPdu
+13. got PDU of type: edu.nps.moves.dis7.CollisionPdu
+14. got PDU of type: edu.nps.moves.dis7.CommentPdu
+15. got PDU of type: edu.nps.moves.dis7.CommentReliablePdu
+16. got PDU of type: edu.nps.moves.dis7.CreateEntityPdu
+17. got PDU of type: edu.nps.moves.dis7.CreateEntityReliablePdu
+18. got PDU of type: edu.nps.moves.dis7.DataPdu
+19. got PDU of type: edu.nps.moves.dis7.DataQueryPdu
+20. got PDU of type: edu.nps.moves.dis7.DataQueryReliablePdu
+21. got PDU of type: edu.nps.moves.dis7.DataReliablePdu
+22. got PDU of type: edu.nps.moves.dis7.DesignatorPdu
+23. got PDU of type: edu.nps.moves.dis7.DetonationPdu
+24. got PDU of type: edu.nps.moves.dis7.DirectedEnergyFirePdu
+25. got PDU of type: edu.nps.moves.dis7.ElectromagneticEmissionPdu
+26. got PDU of type: edu.nps.moves.dis7.EntityDamageStatusPdu
+27. got PDU of type: edu.nps.moves.dis7.EntityStatePdu EID:[0, 0, 0]  Location in DIS coordinates: [0.0, 0.0, 0.0]
+28. got PDU of type: edu.nps.moves.dis7.EntityStateUpdatePdu
+29. got PDU of type: edu.nps.moves.dis7.EnvironmentalProcessPdu
+30. got PDU of type: edu.nps.moves.dis7.EventReportPdu
+31. got PDU of type: edu.nps.moves.dis7.EventReportReliablePdu
+32. got PDU of type: edu.nps.moves.dis7.FirePdu
+33. got PDU of type: edu.nps.moves.dis7.GriddedDataPdu
+34. got PDU of type: edu.nps.moves.dis7.IFFPdu
+35. got PDU of type: edu.nps.moves.dis7.InformationOperationsActionPdu
+36. got PDU of type: edu.nps.moves.dis7.InformationOperationsReportPdu
+37. got PDU of type: edu.nps.moves.dis7.IntercomControlPdu
+Problems decoding multiple PDUs in datagram; decoded as may as possible
+38. got PDU of type: edu.nps.moves.dis7.IntercomSignalPdu
+39. got PDU of type: edu.nps.moves.dis7.IsGroupOfPdu
+40. got PDU of type: edu.nps.moves.dis7.IsPartOfPdu
+41. got PDU of type: edu.nps.moves.dis7.LinearObjectStatePdu
+42. got PDU of type: edu.nps.moves.dis7.LEDetonationPdu
+43. got PDU of type: edu.nps.moves.dis7.LEFirePdu
+Problems decoding multiple PDUs in datagram; decoded as may as possible
+44. got PDU of type: edu.nps.moves.dis7.MinefieldDataPdu
+45. got PDU of type: edu.nps.moves.dis7.MinefieldQueryPdu
+46. got PDU of type: edu.nps.moves.dis7.MinefieldResponseNACKPdu
+47. got PDU of type: edu.nps.moves.dis7.MinefieldStatePdu
+48. got PDU of type: edu.nps.moves.dis7.PointObjectStatePdu
+49. got PDU of type: edu.nps.moves.dis7.ReceiverPdu
+50. got PDU of type: edu.nps.moves.dis7.RecordQueryReliablePdu
+51. got PDU of type: edu.nps.moves.dis7.RecordReliablePdu
+52. got PDU of type: edu.nps.moves.dis7.RemoveEntityPdu
+53. got PDU of type: edu.nps.moves.dis7.RemoveEntityReliablePdu
+Problems decoding multiple PDUs in datagram; decoded as may as possible
+54. got PDU of type: edu.nps.moves.dis7.RepairCompletePdu
+55. got PDU of type: edu.nps.moves.dis7.RepairResponsePdu
+56. got PDU of type: edu.nps.moves.dis7.ResupplyCancelPdu
+57. got PDU of type: edu.nps.moves.dis7.ResupplyOfferPdu
+58. got PDU of type: edu.nps.moves.dis7.ResupplyReceivedPdu
+59. got PDU of type: edu.nps.moves.dis7.ServiceRequestPdu
+60. got PDU of type: edu.nps.moves.dis7.SetDataPdu
+61. got PDU of type: edu.nps.moves.dis7.SetDataReliablePdu
+62. got PDU of type: edu.nps.moves.dis7.SetRecordReliablePdu
+63. got PDU of type: edu.nps.moves.dis7.SignalPdu
+64. got PDU of type: edu.nps.moves.dis7.StartResumePdu
+65. got PDU of type: edu.nps.moves.dis7.StartResumeReliablePdu
+66. got PDU of type: edu.nps.moves.dis7.StopFreezePdu
+67. got PDU of type: edu.nps.moves.dis7.StopFreezeReliablePdu
+68. got PDU of type: edu.nps.moves.dis7.SEESPdu
+69. got PDU of type: edu.nps.moves.dis7.TSPIPdu
+70. got PDU of type: edu.nps.moves.dis7.TransferOwnershipPdu
+71. got PDU of type: edu.nps.moves.dis7.TransmitterPdu
+72. got PDU of type: edu.nps.moves.dis7.UnderwaterAcousticPdu
diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java b/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java
index c286a4490e..10c76c7902 100644
--- a/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java
+++ b/src/edu/nps/moves/dis7/examples/EspduReceiverNIO.java
@@ -30,12 +30,13 @@ public class EspduReceiverNIO
     byte buffer[] = new byte[DisThreadedNetIF.MAX_DIS_PDU_SIZE];
     DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
     Pdu pdu;
+    int pduCounter = 0;
     
     try {
         
       // Specify the socket to receive data
       socket = new MulticastSocket(DisThreadedNetIF.DEFAULT_DIS_PORT);
-      maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MCAST_GROUP);
+      maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS);
       group = new InetSocketAddress(maddr, DisThreadedNetIF.DEFAULT_DIS_PORT);
       socket.joinGroup(group, DisThreadedNetIF.findIpv4Interface());
 
@@ -46,7 +47,9 @@ public class EspduReceiverNIO
 
         pdu = pduFactory.createPdu(packet.getData());
 
-        System.out.println("got PDU of type: " + pdu.getClass().getSimpleName());
+        pduCounter++;
+
+        System.out.println(pduCounter + ". got PDU of type: " + pdu.getClass().getSimpleName());
 
       } // end while
     } // End try
diff --git a/src/edu/nps/moves/dis7/examples/EspduReceiverNioLog.txt b/src/edu/nps/moves/dis7/examples/EspduReceiverNioLog.txt
new file mode 100644
index 0000000000..d7b71fbc11
--- /dev/null
+++ b/src/edu/nps/moves/dis7/examples/EspduReceiverNioLog.txt
@@ -0,0 +1,83 @@
+ant -f C:\\x3d-github\\open-dis7-java -Dnb.internal.action.name=run.single -Djavac.includes=edu/nps/moves/dis7/examples/EspduReceiverNIO.java -Drun.class=edu.nps.moves.dis7.examples.EspduReceiverNIO run-single
+init:
+Deleting: C:\x3d-github\open-dis7-java\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x3d-github\open-dis7-java\build\built-jar.properties
+Compiling 1 source file to C:\x3d-github\open-dis7-java\build\classes
+warning: [options] bootstrap class path not set in conjunction with -source 8
+1 warning
+compile-single:
+run-single:
+Using network interface Intel(R) Dual Band Wireless-AC 8260
+1. got PDU of type: AcknowledgePdu
+2. got PDU of type: AcknowledgeReliablePdu
+3. got PDU of type: ActionRequestPdu
+4. got PDU of type: ActionRequestReliablePdu
+5. got PDU of type: ActionResponsePdu
+6. got PDU of type: ActionResponseReliablePdu
+7. got PDU of type: AggregateStatePdu
+8. got PDU of type: AppearancePdu
+9. got PDU of type: ArealObjectStatePdu
+10. got PDU of type: ArticulatedPartsPdu
+11. got PDU of type: AttributePdu
+12. got PDU of type: CollisionElasticPdu
+13. got PDU of type: CollisionPdu
+14. got PDU of type: CommentPdu
+15. got PDU of type: CommentReliablePdu
+16. got PDU of type: CreateEntityPdu
+17. got PDU of type: CreateEntityReliablePdu
+18. got PDU of type: DataPdu
+19. got PDU of type: DataQueryPdu
+20. got PDU of type: DataQueryReliablePdu
+21. got PDU of type: DataReliablePdu
+22. got PDU of type: DesignatorPdu
+23. got PDU of type: DetonationPdu
+24. got PDU of type: DirectedEnergyFirePdu
+25. got PDU of type: ElectromagneticEmissionPdu
+26. got PDU of type: EntityDamageStatusPdu
+27. got PDU of type: EntityStatePdu
+28. got PDU of type: EntityStateUpdatePdu
+29. got PDU of type: EnvironmentalProcessPdu
+30. got PDU of type: EventReportPdu
+31. got PDU of type: EventReportReliablePdu
+32. got PDU of type: FirePdu
+33. got PDU of type: GriddedDataPdu
+34. got PDU of type: IFFPdu
+35. got PDU of type: InformationOperationsActionPdu
+36. got PDU of type: InformationOperationsReportPdu
+37. got PDU of type: IntercomControlPdu
+38. got PDU of type: IntercomSignalPdu
+39. got PDU of type: IsGroupOfPdu
+40. got PDU of type: IsPartOfPdu
+41. got PDU of type: LinearObjectStatePdu
+42. got PDU of type: LEDetonationPdu
+43. got PDU of type: LEFirePdu
+44. got PDU of type: MinefieldDataPdu
+45. got PDU of type: MinefieldQueryPdu
+46. got PDU of type: MinefieldResponseNACKPdu
+47. got PDU of type: MinefieldStatePdu
+48. got PDU of type: PointObjectStatePdu
+49. got PDU of type: ReceiverPdu
+50. got PDU of type: RecordQueryReliablePdu
+51. got PDU of type: RecordReliablePdu
+52. got PDU of type: RemoveEntityPdu
+53. got PDU of type: RemoveEntityReliablePdu
+54. got PDU of type: RepairCompletePdu
+55. got PDU of type: RepairResponsePdu
+56. got PDU of type: ResupplyCancelPdu
+57. got PDU of type: ResupplyOfferPdu
+58. got PDU of type: ResupplyReceivedPdu
+59. got PDU of type: ServiceRequestPdu
+60. got PDU of type: SetDataPdu
+61. got PDU of type: SetDataReliablePdu
+62. got PDU of type: SetRecordReliablePdu
+63. got PDU of type: SignalPdu
+64. got PDU of type: StartResumePdu
+65. got PDU of type: StartResumeReliablePdu
+66. got PDU of type: StopFreezePdu
+67. got PDU of type: StopFreezeReliablePdu
+68. got PDU of type: SEESPdu
+69. got PDU of type: TSPIPdu
+70. got PDU of type: TransferOwnershipPdu
+71. got PDU of type: TransmitterPdu
+72. got PDU of type: UnderwaterAcousticPdu
diff --git a/src/edu/nps/moves/dis7/examples/EspduSender.java b/src/edu/nps/moves/dis7/examples/EspduSender.java
index 096644f929..0a4033357e 100644
--- a/src/edu/nps/moves/dis7/examples/EspduSender.java
+++ b/src/edu/nps/moves/dis7/examples/EspduSender.java
@@ -51,7 +51,7 @@ public class EspduSender
     InetAddress destinationIp = null; // must be initialized, even if null
 
     try {
-      destinationIp = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MCAST_GROUP);
+      destinationIp = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS);
     }
     catch (UnknownHostException e) {
       System.err.println(e + " Cannot create multicast address");
diff --git a/src/edu/nps/moves/dis7/examples/EspduSenderNIO.java b/src/edu/nps/moves/dis7/examples/EspduSenderNIO.java
index e577db84c0..a4bf76c67b 100644
--- a/src/edu/nps/moves/dis7/examples/EspduSenderNIO.java
+++ b/src/edu/nps/moves/dis7/examples/EspduSenderNIO.java
@@ -43,7 +43,7 @@ public class EspduSenderNIO
 
     try {
       socket = new MulticastSocket();
-      maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MCAST_GROUP);
+      maddr = InetAddress.getByName(DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS);
       group = new InetSocketAddress(maddr, DisThreadedNetIF.DEFAULT_DIS_PORT);
       socket.joinGroup(group, DisThreadedNetIF.findIpv4Interface());
       
diff --git a/src/edu/nps/moves/dis7/examples/PduListenerSaver.java b/src/edu/nps/moves/dis7/examples/PduListenerSaver.java
index f49ade1039..d874dd81dd 100644
--- a/src/edu/nps/moves/dis7/examples/PduListenerSaver.java
+++ b/src/edu/nps/moves/dis7/examples/PduListenerSaver.java
@@ -20,7 +20,7 @@ import java.util.Scanner;
  */
 public class PduListenerSaver
 {
-  private final static String DEFAULT_OUTPUTDIR = "./pduLog";
+  private final static String DEFAULT_OUTPUT_DIRECTORY = "./pduLog";
 
   private enum mystate
   {
@@ -30,19 +30,20 @@ public class PduListenerSaver
 
   public static void main(String[] args)
   {
-    String outDir = DEFAULT_OUTPUTDIR;
-    String mcast = DisThreadedNetIF.DEFAULT_MCAST_GROUP;
-    int port = DisThreadedNetIF.DEFAULT_DIS_PORT;
+    String outputDirectoryPath = DEFAULT_OUTPUT_DIRECTORY;
+    String multicastAddress    = DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS;
+    int    port                = DisThreadedNetIF.DEFAULT_DIS_PORT;
 
     switch (args.length) {
       case 0:
+        // use default values
         break;
       case 1:
-        outDir = args[0];
+        outputDirectoryPath = args[0];
         break;
       case 3:
-        outDir = args[0];
-        mcast = args[1];
+        outputDirectoryPath   = args[0];
+        multicastAddress      = args[1];
         port = Integer.parseInt(args[2]);
         break;
       default:
@@ -50,31 +51,51 @@ public class PduListenerSaver
         System.exit(1);
     }
 
-    System.out.println("Beginning pdu save to directory " + outDir);
+    System.out.println("Beginning pdu save to directory " + outputDirectoryPath);
     try {
-      PduRecorder recorder = new PduRecorder(outDir, mcast, port); // assumes save
+      PduRecorder recorder = new PduRecorder(outputDirectoryPath, multicastAddress, port); // assumes save
       mystate state = mystate.RUNNING;
-      Scanner scan = new Scanner(System.in);
+      Scanner scan  = new Scanner(System.in);
 
-      while (true) {
+      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) {
+        if (line.equalsIgnoreCase("p") && state == mystate.RUNNING) 
+        {
           recorder.stopPause();
           state = mystate.PAUSED;
+          System.out.println("... state is now PAUSED");
         }
-        else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) {
+        else if (line.equalsIgnoreCase("p")) 
+        {
+          recorder.stopPause();
+          state = mystate.PAUSED;
+          System.out.println("... state is still PAUSED");
+        }
+        else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) 
+        {
+          recorder.startResume();
+          state = mystate.RUNNING;
+          System.out.println("... state is now RUNNING");
+        }
+        else if (line.equalsIgnoreCase("r")) 
+        {
           recorder.startResume();
           state = mystate.RUNNING;
+          System.out.println("... state is still RUNNING");
         }
-        else if (line.equalsIgnoreCase("q")) {
+        else if (line.equalsIgnoreCase("q")) 
+        {
           recorder.end();
+          System.out.println("... QUIT");
           break;
         }
       }
-      System.out.println("Ending pdu save to "+recorder.getLogFile());
+      System.out.println("Ending pdu save to log file " + recorder.getLogFilePath());
     }
-    catch (IOException ex) {
+    catch (IOException ex)
+    {
       System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage());
     }
   }
diff --git a/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.dislog b/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.dislog
new file mode 100644
index 0000000000..5bf3d437e1
--- /dev/null
+++ b/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.dislog
@@ -0,0 +1,74 @@
+# Start, ENCODING_PLAINTEXT, 20200825_224928, DIS capture file, .\pduLog\PduCaptureLog1.dislog
+[0,0,0,0,0,0,0,0],[7,0,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DISPDUType: 15 ACKNOWLEDGE
+[0,0,0,0,1,0,-102,-96],[7,0,55,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0] # DISPDUType: 55 ACKNOWLEDGE_RELIABLE
+[0,0,0,0,1,7,-12,68],[7,0,16,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 16 ACTION_REQUEST
+[0,0,0,0,1,46,60,-88],[7,0,56,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 56 ACTION_REQUEST_RELIABLE
+[0,0,0,0,1,85,-51,-112],[7,0,17,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 17 ACTION_RESPONSE
+[0,0,0,0,1,115,65,104],[7,0,57,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 57 ACTION_RESPONSE_RELIABLE
+[0,0,0,0,1,120,-39,12],[7,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 33 AGGREGATE_STATE
+[0,0,0,0,2,117,-88,48],[7,0,47,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 47 APPEARANCE
+[0,0,0,0,3,26,53,48],[7,0,45,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 45 AREAL_OBJECT_STATE
+[0,0,0,0,3,107,12,-128],[7,0,48,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 48 ARTICULATED_PARTS
+[0,0,0,0,3,111,-72,-104],[7,0,72,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0] # DISPDUType: 72 ATTRIBUTE
+[0,0,0,0,5,86,117,72],[7,0,66,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 66 COLLISION_ELASTIC
+[0,0,0,0,5,106,87,-124],[7,0,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 4 COLLISION
+[0,0,0,0,5,-127,29,-104],[7,0,22,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 22 COMMENT
+[0,0,0,0,5,-123,66,-120],[7,0,62,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 62 COMMENT_RELIABLE
+[0,0,0,0,5,-119,-48,-16],[7,0,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 11 CREATE_ENTITY
+[0,0,0,0,5,-115,-74,-104],[7,0,51,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 51 CREATE_ENTITY_RELIABLE
+[0,0,0,0,5,-110,12,92],[7,0,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 20 DATA
+[0,0,0,0,5,-105,61,-88],[7,0,18,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 18 DATA_QUERY
+[0,0,0,0,5,-100,-124,12],[7,0,58,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 58 DATA_QUERY_RELIABLE
+[0,0,0,0,5,-94,-84,56],[7,0,60,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 60 DATA_RELIABLE
+[0,0,0,0,5,-88,-30,16],[7,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 24 DESIGNATOR
+[0,0,0,0,5,-19,49,44],[7,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 3 DETONATION
+[0,0,0,0,6,110,-53,-80],[7,0,68,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 68 DIRECTED_ENERGY_FIRE
+[0,0,0,0,6,-80,30,88],[7,0,23,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 23 ELECTROMAGNETIC_EMISSION
+[0,0,0,0,6,-38,0,56],[7,0,69,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 69 ENTITY_DAMAGE_STATUS
+[0,0,0,0,6,-32,79,16],[7,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 1 ENTITY_STATE
+[0,0,0,0,7,10,-126,-108],[7,0,67,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 67 ENTITY_STATE_UPDATE
+[0,0,0,0,7,16,-15,16],[7,0,41,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 41 ENVIRONMENTAL_PROCESS
+[0,0,0,0,7,58,1,-112],[7,0,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 21 EVENT_REPORT
+[0,0,0,0,7,89,51,-128],[7,0,61,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 61 EVENT_REPORT_RELIABLE
+[0,0,0,0,7,95,25,-88],[7,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 2 FIRE
+[0,0,0,0,7,103,3,-44],[7,0,42,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 42 GRIDDED_DATA
+[0,0,0,0,7,-119,-127,-24],[7,0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 28 IDENTIFICATION_FRIEND_OR_FOE
+[0,0,0,0,7,-27,-106,44],[7,0,70,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 70 INFORMATION_OPERATIONS_ACTION
+[0,0,0,0,8,36,72,-112],[7,0,71,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 71 INFORMATION_OPERATIONS_REPORT
+[0,0,0,0,8,61,24,32],[7,0,32,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 32 INTERCOM_CONTROL
+[0,0,0,0,8,127,29,76],[7,0,31,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0] # DISPDUType: 31 INTERCOM_SIGNAL
+[0,0,0,0,8,-72,112,76],[7,0,34,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 34 ISGROUPOF
+[0,0,0,0,8,-41,-109,100],[7,0,36,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 36 ISPARTOF
+[0,0,0,0,9,22,30,84],[7,0,44,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 44 LINEAR_OBJECT_STATE
+[0,0,0,0,9,26,-26,-16],[7,0,50,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 50 LIVE_ENTITY_DETONATION
+[0,0,0,0,9,76,-112,56],[7,0,49,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 49 LIVE_ENTITY_FIRE
+[0,0,0,0,9,83,26,-44],[7,0,39,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 39 MINEFIELD_DATA
+[0,0,0,0,9,115,16,-36],[7,0,38,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 38 MINEFIELD_QUERY
+[0,0,0,0,9,120,-16,-60],[7,0,40,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 40 MINEFIELD_RESPONSE_NACK
+[0,0,0,0,9,123,-79,16],[7,0,37,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 37 MINEFIELD_STATE
+[0,0,0,0,9,-72,-111,112],[7,0,43,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 43 POINT_OBJECT_STATE
+[0,0,0,0,10,0,-67,56],[7,0,27,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 27 RECEIVER
+[0,0,0,0,10,22,-37,84],[7,0,65,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 65 RECORD_QUERY_RELIABLE
+[0,0,0,0,10,41,-33,76],[7,0,63,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 63 RECORD_RELIABLE
+[0,0,0,0,10,61,79,20],[7,0,12,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 12 REMOVE_ENTITY
+[0,0,0,0,10,64,-77,12],[7,0,52,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 52 REMOVE_ENTITY_RELIABLE
+[0,0,0,0,10,68,-24,100],[7,0,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 9 REPAIR_COMPLETE
+[0,0,0,0,10,94,120,36],[7,0,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 10 REPAIR_RESPONSE
+[0,0,0,0,10,108,46,-80],[7,0,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 8 RESUPPLY_CANCEL
+[0,0,0,0,10,110,107,-68],[7,0,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 6 RESUPPLY_OFFER
+[0,0,0,0,10,113,95,-104],[7,0,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 7 RESUPPLY_RECEIVED
+[0,0,0,0,10,116,17,12],[7,0,5,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 5 SERVICE_REQUEST
+[0,0,0,0,10,-128,-4,120],[7,0,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 19 SET_DATA
+[0,0,0,0,10,-124,64,-52],[7,0,59,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 59 SET_DATA_RELIABLE
+[0,0,0,0,10,-121,-2,-100],[7,0,64,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 64 SET_RECORD_RELIABLE
+[0,0,0,0,10,-118,-18,-112],[7,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0] # DISPDUType: 26 SIGNAL
+[0,0,0,0,10,-115,-23,116],[7,0,13,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 13 START_RESUME
+[0,0,0,0,10,-112,-56,56],[7,0,53,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 53 START_RESUME_RELIABLE
+[0,0,0,0,10,-109,-82,4],[7,0,14,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 14 STOP_FREEZE
+[0,0,0,0,10,-79,47,-20],[7,0,54,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 54 STOP_FREEZE_RELIABLE
+[0,0,0,0,10,-76,106,24],[7,0,30,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE
+[0,0,0,0,10,-73,110,92],[7,0,46,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 46 TIME_SPACE_POSITION_INFORMATION
+[0,0,0,0,10,-28,80,52],[7,0,35,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 35 TRANSFER_OWNERSHIP
+[0,0,0,0,10,-5,110,44],[7,0,25,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 25 TRANSMITTER
+[0,0,0,0,11,-124,-12,108],[7,0,29,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] # DISPDUType: 29 UNDERWATER_ACOUSTIC
+# Finish, ENCODING_PLAINTEXT, 20200825_225020, DIS capture file, .\pduLog\PduCaptureLog1.dislog
diff --git a/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.txt b/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.txt
new file mode 100644
index 0000000000..d7b71fbc11
--- /dev/null
+++ b/src/edu/nps/moves/dis7/examples/PduListenerSaverLog.txt
@@ -0,0 +1,83 @@
+ant -f C:\\x3d-github\\open-dis7-java -Dnb.internal.action.name=run.single -Djavac.includes=edu/nps/moves/dis7/examples/EspduReceiverNIO.java -Drun.class=edu.nps.moves.dis7.examples.EspduReceiverNIO run-single
+init:
+Deleting: C:\x3d-github\open-dis7-java\build\built-jar.properties
+deps-jar:
+Updating property file: C:\x3d-github\open-dis7-java\build\built-jar.properties
+Compiling 1 source file to C:\x3d-github\open-dis7-java\build\classes
+warning: [options] bootstrap class path not set in conjunction with -source 8
+1 warning
+compile-single:
+run-single:
+Using network interface Intel(R) Dual Band Wireless-AC 8260
+1. got PDU of type: AcknowledgePdu
+2. got PDU of type: AcknowledgeReliablePdu
+3. got PDU of type: ActionRequestPdu
+4. got PDU of type: ActionRequestReliablePdu
+5. got PDU of type: ActionResponsePdu
+6. got PDU of type: ActionResponseReliablePdu
+7. got PDU of type: AggregateStatePdu
+8. got PDU of type: AppearancePdu
+9. got PDU of type: ArealObjectStatePdu
+10. got PDU of type: ArticulatedPartsPdu
+11. got PDU of type: AttributePdu
+12. got PDU of type: CollisionElasticPdu
+13. got PDU of type: CollisionPdu
+14. got PDU of type: CommentPdu
+15. got PDU of type: CommentReliablePdu
+16. got PDU of type: CreateEntityPdu
+17. got PDU of type: CreateEntityReliablePdu
+18. got PDU of type: DataPdu
+19. got PDU of type: DataQueryPdu
+20. got PDU of type: DataQueryReliablePdu
+21. got PDU of type: DataReliablePdu
+22. got PDU of type: DesignatorPdu
+23. got PDU of type: DetonationPdu
+24. got PDU of type: DirectedEnergyFirePdu
+25. got PDU of type: ElectromagneticEmissionPdu
+26. got PDU of type: EntityDamageStatusPdu
+27. got PDU of type: EntityStatePdu
+28. got PDU of type: EntityStateUpdatePdu
+29. got PDU of type: EnvironmentalProcessPdu
+30. got PDU of type: EventReportPdu
+31. got PDU of type: EventReportReliablePdu
+32. got PDU of type: FirePdu
+33. got PDU of type: GriddedDataPdu
+34. got PDU of type: IFFPdu
+35. got PDU of type: InformationOperationsActionPdu
+36. got PDU of type: InformationOperationsReportPdu
+37. got PDU of type: IntercomControlPdu
+38. got PDU of type: IntercomSignalPdu
+39. got PDU of type: IsGroupOfPdu
+40. got PDU of type: IsPartOfPdu
+41. got PDU of type: LinearObjectStatePdu
+42. got PDU of type: LEDetonationPdu
+43. got PDU of type: LEFirePdu
+44. got PDU of type: MinefieldDataPdu
+45. got PDU of type: MinefieldQueryPdu
+46. got PDU of type: MinefieldResponseNACKPdu
+47. got PDU of type: MinefieldStatePdu
+48. got PDU of type: PointObjectStatePdu
+49. got PDU of type: ReceiverPdu
+50. got PDU of type: RecordQueryReliablePdu
+51. got PDU of type: RecordReliablePdu
+52. got PDU of type: RemoveEntityPdu
+53. got PDU of type: RemoveEntityReliablePdu
+54. got PDU of type: RepairCompletePdu
+55. got PDU of type: RepairResponsePdu
+56. got PDU of type: ResupplyCancelPdu
+57. got PDU of type: ResupplyOfferPdu
+58. got PDU of type: ResupplyReceivedPdu
+59. got PDU of type: ServiceRequestPdu
+60. got PDU of type: SetDataPdu
+61. got PDU of type: SetDataReliablePdu
+62. got PDU of type: SetRecordReliablePdu
+63. got PDU of type: SignalPdu
+64. got PDU of type: StartResumePdu
+65. got PDU of type: StartResumeReliablePdu
+66. got PDU of type: StopFreezePdu
+67. got PDU of type: StopFreezeReliablePdu
+68. got PDU of type: SEESPdu
+69. got PDU of type: TSPIPdu
+70. got PDU of type: TransferOwnershipPdu
+71. got PDU of type: TransmitterPdu
+72. got PDU of type: UnderwaterAcousticPdu
diff --git a/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java b/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java
index fd292dcfc7..0da9f5bdf0 100644
--- a/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java
+++ b/src/edu/nps/moves/dis7/examples/PduReaderPlayer.java
@@ -32,7 +32,7 @@ public class PduReaderPlayer
   public static void main(String[] args)
   {
     String outDir = DEFAULT_OUTPUTDIR;
-    String mcast = DisThreadedNetIF.DEFAULT_MCAST_GROUP;
+    String mcast = DisThreadedNetIF.DEFAULT_MULTICAST_ADDRESS;
     int port = DisThreadedNetIF.DEFAULT_DIS_PORT;
     boolean sendToNet = false;
 
-- 
GitLab