diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/PDUReciever.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/PDUReciever.java
deleted file mode 100755
index 5ab4c55cfd26e8629ba58a195b819a1c0d3c3fbe..0000000000000000000000000000000000000000
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/PDUReciever.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package MV3500Cohort2020JulySeptember.homework4.White;
-
-import MV3500Cohort2020JulySeptember.homework4.White.working.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-import edu.nps.moves.dis7.pdus.*;
-import edu.nps.moves.dis7.utilities.*;
-
-/**
- * Receives PDUs from GermanyEspduReceiverEspduVPNSender in IEEE DIS format.
- *
- * @date 09/05/2020
- * @author Bernd/Stefan
- * @version 0.1
- */
-public class PDUReciever {
-
-    /**
-     * Max size of a PDU in binary format that we can receive. This is actually
-     * somewhat outdated--PDUs can be larger--but this is a reasonable starting
-     * point.
-     */
-    public static final int MAX_PDU_SIZE = 8192;
-
-    /**
-     * Default port used, matches Wireshark DIS capture default
-     */
-    public static final int DEFAULT_PORT = 2317;
-    public static final int SECOND_PORT = 3000;
-    public static final int THIRD_PORT = 2318;
-    
-    
-    /**
-     * Output prefix to identify this class
-     */
-    private final static String TRACE_PREFIX = "[" + PDUReciever.class.getName() + "] ";
-
-    public static void main(String args[]) {
-        System.out.println(TRACE_PREFIX + "started...");
-
-        MulticastSocket socket1;
-        MulticastSocket socket2;
-        MulticastSocket socket3;
-        DatagramPacket packet;
-        DatagramPacket packet2;
-        DatagramPacket packet3;
-        PduFactory pduFactory = new PduFactory();
-        ArrayList<EntityID> knownEntities = new ArrayList<EntityID>();
-        int pduCount = 0;
-
-        try {
-            // Specify the socket to receive data
-            socket1 = new MulticastSocket(DEFAULT_PORT);
-            socket2 = new MulticastSocket(SECOND_PORT);
-            socket3 = new MulticastSocket(THIRD_PORT);
-            
-            System.out.println(TRACE_PREFIX + "listening for PDU packets on port " + DEFAULT_PORT );//+ " " + SECOND_PORT + " " + THIRD_PORT);
-            System.out.println("====================================================");
-
-            while (true) // Loop infinitely, receiving datagrams
-            {
-                byte buffer[] = new byte[MAX_PDU_SIZE];
-                packet = new DatagramPacket(buffer, buffer.length);
-
-                socket1.receive(packet);
-                
-                
-                
-                List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(), packet.getLength());
-                if (pduBundle.size() > 1) { // should be 1 for this project
-                    System.out.println("Bundle size is " + pduBundle.size());
-                }
-
-                // end iterator loop through PDU bundle
-                for (Pdu aPdu : pduBundle) {
-                    pduCount++;
-                    String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters
-                            + ". received PDU type " + aPdu.getPduType().getValue() + "=" + aPdu.getPduType().name() + " " + aPdu.getClass().getName() + "  from " + packet.getAddress();
-                    if (aPdu instanceof EntityStatePdu) {
-                        System.out.println(receiptMessage);
-                        EntityID entityID = ((EntityStatePdu) aPdu).getEntityID();
-                        Vector3Double position = ((EntityStatePdu) aPdu).getEntityLocation();
-                        System.out.println("     entityID triplet: [" + entityID.getSiteID() + ", " + entityID.getApplicationID() + ", " + entityID.getEntityID() + "] ");
-                        if (!knownEntities.contains(entityID)){
-                            knownEntities.add(entityID);
-                            EntityType entityType = ((EntityStatePdu) aPdu).getEntityType();
-                            System.out.println("     New Entity: " +entityType.getEntityKind() + " "+ entityType.getDomain() + " "+ entityType.getCountry() + " "+  entityType.getCategory() + " "+ entityType.getSubCategory() + " "+  entityType.getSpecific() );
-                        }
-                        System.out.println("     Location in DIS coordinates:        [" + position.getX() + ", " + position.getY() + ", " + position.getZ() + "]");
-
-                    }
-                    else if (aPdu instanceof FirePdu){
-                        System.out.println(receiptMessage);
-                        EntityID firingEntityID = ((FirePdu) aPdu).getFiringEntityID();
-                        EntityID targetEntityID = ((FirePdu) aPdu).getTargetEntityID();
-                        MunitionDescriptor munitionDescriptor = ((FirePdu) aPdu).getDescriptor();
-                        System.out.println("     firingEntityID triplet: [" + firingEntityID.getSiteID() + ", " + firingEntityID.getApplicationID() + ", " + firingEntityID.getEntityID() + "] ");
-                        System.out.println("     targetEntityID triplet: [" + targetEntityID.getSiteID() + ", " + targetEntityID.getApplicationID() + ", " + targetEntityID.getEntityID() + "] ");
-                        System.out.println("     Munition Information:   [" + munitionDescriptor.getMunitionType().getDomain() + "."+munitionDescriptor.getMunitionType().getCountry()   + "." + munitionDescriptor.getMunitionType().getCategory() + "."+ munitionDescriptor.getMunitionType().getSubCategory() + "." + munitionDescriptor.getMunitionType().getSpecific() + "]");
-                    }
-                    else if (aPdu instanceof CommentReliablePdu){
-                        System.out.println(receiptMessage);
-                       ArrayList<VariableDatum> payloadList = (ArrayList)((CommentReliablePdu) aPdu).getVariableDatumRecords();
-                    if (!payloadList.isEmpty())
-                        System.out.print  ("     messages: ");
-                    for (VariableDatum variableDatum : payloadList)
-                    {
-                        String nextComment = new String(variableDatum.getVariableDatumValue()); // convert byte[] to String
-                        System.out.print  (" \"" + nextComment + "\"");
-                        System.out.println();
-                    }
-                    } //OTHER PDU TYPES
-                    else {
-                        System.out.println(receiptMessage);
-                    }
-                } // end of bundle loop
-                
-            } // end of while loop
-        } // end try block // end try block // end try block // end try block
-        catch (IOException ioe) {
-            System.out.println(TRACE_PREFIX + "Problem with input/output, see exception trace:");
-            System.out.println(ioe);
-        }
-        System.out.println(TRACE_PREFIX + "complete.");
-    } // end main
-} // end class
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md
deleted file mode 100644
index 0144d62d033fbe094ceac7a6d1bedc12d3c158b0..0000000000000000000000000000000000000000
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-## Homework 2: Multicast Networking
-
-Modify this file to describe your project work.
-
-Typical deliverables include properly packages source, execution log, and screen shots as appropriate.
-
-References include
-* [README.md](../README.md) for this homework project.
-* [README.md](../../../../README.md) for course assignments execution instructions.
-* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. 
-
-Questions and innovation are always welcome, good luck!
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/Receiver Output Log.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/Receiver Output Log.md
index a8efe650eb11ff581caeb9df98b2d1f61b0ba690..28edf57d003aa1f8405a0830f5680c0155e45e44 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/Receiver Output Log.md	
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/Receiver Output Log.md	
@@ -1,46 +1,149 @@
 [MV3500Cohort2020JulySeptember.homework4.White.working.PDUReciever] started...
 [MV3500Cohort2020JulySeptember.homework4.White.working.PDUReciever] listening for PDU packets on port 2317
 ====================================================
-  1. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+  1. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 26] 
+     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 7 39 3
+     Location in DIS coordinates:        [-2707501.7340396782, -4353408.810297934, 3781834.0645668795]
+  2. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 26] 
+     Location in DIS coordinates:        [-2707521.7340396782, -4353483.810297934, 3781834.0645668795]
+  3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 25] 
+     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 2 41 3
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+  4. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 26] 
+     Location in DIS coordinates:        [-2707541.7340396782, -4353558.810297934, 3781834.0645668795]
+  5. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 25] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+  6. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.11
+     messages:  "LAV25-A2 IS WITHIN DISTANCE OF RESUPPLY"
+  7. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 26] 
+     Location in DIS coordinates:        [-2707561.7340396782, -4353633.810297934, 3781834.0645668795]
+  8. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 25] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+  9. received PDU type 6=RESUPPLY_OFFER edu.nps.moves.dis7.pdus.ResupplyOfferPdu  from /10.1.105.11
+     Resupply Offer from Entity [1, 13, 26] to resupply Entity [1, 13, 25]
+     Supplies Offered:   [Quantity: 500.0,   Type: EntityKind 2 MUNITION Air Country 225 UNITED_STATES_OF_AMERICA_USA 2 2 1 ]
+ 10. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 26] 
+     Location in DIS coordinates:        [-2707581.7340396782, -4353708.810297934, 3781834.0645668795]
+ 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
+     entityID triplet: [1, 13, 25] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 12. received PDU type 6=RESUPPLY_OFFER edu.nps.moves.dis7.pdus.ResupplyOfferPdu  from /10.1.105.11
+     Resupply Offer from Entity [1, 13, 26] to resupply Entity [1, 13, 25]
+     Supplies Offered:   [Quantity: 500.0,   Type: EntityKind 2 MUNITION Air Country 225 UNITED_STATES_OF_AMERICA_USA 2 2 1 ]
+ 13. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.11
+     messages:  "Britt Simulation Completed"
+ 14. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 4 3 7
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 15. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     New Entity: EntityKind 1 PLATFORM Land Country 260 RUSSIA 2 41 3
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 16. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 17. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 18. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 19. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 20. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 21. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 22. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 23. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 24. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 25. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 26. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 27. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 28. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 29. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [2, 10, 3] 
+     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
+ 30. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
+     entityID triplet: [1, 13, 2] 
+     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
+ 31. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
+     firingEntityID triplet: [2, 10, 3] 
+     targetEntityID triplet: [1, 13, 2] 
+     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
+ 32. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.8
+     messages:  "BMP2 DESTROYED BY M109A6 AFTER SIX VOLLEYS OF HE/PD ON TARGET"
+ 33. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.8
+     messages:  "Cannon Simulation Completed"
+ 34. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 25] 
-New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 2 41 3
      Location in DIS coordinates:        [-2707501.7340396782, -4353408.810297934, 3781834.0645668795]
-  2. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 35. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 25] 
      Location in DIS coordinates:        [-2707521.7340396782, -4353483.810297934, 3781834.0645668795]
-  3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 36. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 2] 
-New Entity: EntityKind 1 PLATFORM Land Country 260 RUSSIA 2 41 3
      Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  4. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 37. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 25] 
      Location in DIS coordinates:        [-2707541.7340396782, -4353558.810297934, 3781834.0645668795]
-  5. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 38. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 2] 
      Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  6. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
+ 39. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
      messages:  "LAV25-A2 ACQUIRES TARGET BMP2 WITHIN FIRING DISTANCE"
-  7. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 40. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 25] 
      Location in DIS coordinates:        [-2707561.7340396782, -4353633.810297934, 3781834.0645668795]
-  8. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 41. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 2] 
      Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  9. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
+ 42. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
      firingEntityID triplet: [1, 13, 25] 
      targetEntityID triplet: [1, 13, 2] 
      Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.2.1]
- 10. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 43. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 25] 
      Location in DIS coordinates:        [-2707581.7340396782, -4353708.810297934, 3781834.0645668795]
- 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
+ 44. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
      entityID triplet: [1, 13, 2] 
      Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 12. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
+ 45. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
      firingEntityID triplet: [1, 13, 25] 
      targetEntityID triplet: [1, 13, 2] 
      Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.2.1]
- 13. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
+ 46. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
      messages:  "BMP2 DESTROYED BY LAV25-A2 AFTER TWO BURSTS OF 25mm HEI-T ON TARGET"
- 14. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
+ 47. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
      messages:  "White Simulation Completed"
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteCannonBritt.pptx b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteCannonBritt.pptx
new file mode 100644
index 0000000000000000000000000000000000000000..234660d271475dee6a8c08b30ee2a61db630be0a
Binary files /dev/null and b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteCannonBritt.pptx differ
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteSimulation.java
deleted file mode 100644
index 9d95854ece52932f2ad8ae6bde531820449d9ff1..0000000000000000000000000000000000000000
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/WhiteSimulation.java
+++ /dev/null
@@ -1,462 +0,0 @@
-/**
- * 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 MV3500Cohort2020JulySeptember.homework4.White;
-
-import MV3500Cohort2020JulySeptember.homework4.White.working.*;
-import MV3500Cohort2020JulySeptember.homework4.White.*;
-import edu.nps.moves.dis7.enumerations.*;
-import edu.nps.moves.dis7.pdus.*;
-import edu.nps.moves.dis7.utilities.*;
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class WhiteSimulation
-{
-    // class variables
-    PduFactory pduFactory = new PduFactory();
-    DisThreadedNetworkInterface disNetworkInterface;
-    DisThreadedNetworkInterface.PduListener pduListener;
-    Pdu receivedPdu;
-    
-    private String networkAddress = "10.1.105.7";
-    private int    networkPort    = 2317;
-    
-    /**
-     * Constructor design goal: additional built-in initialization conveniences can go here
-     * to keep student efforts focused on the runSimulation() method.
-     */
-    public WhiteSimulation()
-    {
-        // Under consideration.  Constructor is not currently needed.
-    }
-    
-    /**
-     * Utility Constructor
-     * @param address network address to use
-     * @param port corresponding network port to use
-     */
-    public WhiteSimulation(String address, int port)
-    {
-        setNetworkAddress(address);
-        
-        setNetworkPort(port);
-    }
-
-    /**
-     * @return the networkAddress
-     */
-    public String getNetworkAddress()
-    {
-        return networkAddress;
-    }
-
-    /**
-     * @param networkAddress the networkAddress to set
-     */
-    public final void setNetworkAddress(String networkAddress)
-    {
-        this.networkAddress = networkAddress;
-    }
-
-    /**
-     * @return the networkPort
-     */
-    public int getNetworkPort()
-    {
-        return networkPort;
-    }
-
-    /**
-     * @param networkPort the networkPort to set
-     */
-    public final void setNetworkPort(int networkPort)
-    {
-        this.networkPort = networkPort;
-    }
-
-    /**
-     * Initialize network interface, choosing best available network interface
-     */
-    public void setUpNetworkInterface()
-    {
-        disNetworkInterface = new DisThreadedNetworkInterface(getNetworkAddress(), getNetworkPort());
-        
-        System.out.println("Network confirmation: address=" + disNetworkInterface.getMcastGroup() + " port=" + disNetworkInterface.getDisPort());
-        pduListener = new DisThreadedNetworkInterface.PduListener()
-        {
-            /** Callback handler for listener */
-            @Override
-            public void incomingPdu(Pdu newPdu)
-            {
-                receivedPdu = newPdu;
-            }
-        };
-        disNetworkInterface.addListener(pduListener);
-    }
-
-    /** All done, release network resources */
-    public void tearDownNetworkInterface()
-    {
-        disNetworkInterface.removeListener(pduListener);
-        disNetworkInterface.kill();
-        disNetworkInterface = null;
-    }
-
-    /** 
-     * Send a single Protocol Data Unit (PDU) of any type
-     * @param pdu the pdu to send
-     */
-    private void sendSinglePdu(Pdu pdu)
-    {
-        try
-        {
-            disNetworkInterface.send(pdu);
-            Thread.sleep(100); // TODO consider refactoring the wait logic and moving externally
-        } 
-        catch (InterruptedException ex)
-        {
-            System.err.println(this.getClass().getName() + " Error sending PDU: " + ex.getLocalizedMessage());
-            System.exit(1);
-        }
-    }
-
-    /**
-     * Send EntityState, Fire, Comment PDUs
-     * @see <a href="https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html">Passing Information to a Method or a Constructor</a> Arbitrary Number of Arguments
-     * @param entityStatePdu the ESPDU to send, if any
-     * @param firePdu        the FirePDU to send, if any
-     * @param commentType    enumeration value describing the narrative comment
-     * @param comments       String array of narrative comments
-     */
-    public void sendAllPdus(EntityStatePdu entityStatePdu,
-                               FirePdu firePdu,
-                               VariableRecordType commentType,
-                               // vararg... variable length string
-                               String... comments)
-    {
-        if (entityStatePdu != null)
-            sendPDU(entityStatePdu);
-            
-        if (firePdu != null)
-            sendPDU(firePdu); // bang
-        
-        if ((comments != null) && (comments.length > 0))
-        {
-            ArrayList<String> newCommentsList = new ArrayList<>();
-            for (int i = 0; i < comments.length; i++)
-            {
-                if (!comments[i].isEmpty())
-                     newCommentsList.add(comments[i]); // OK found something to send
-            }
-            if (!newCommentsList.isEmpty())
-            {
-                if (commentType == null)
-                    commentType = VariableRecordType.OTHER;
-                CommentPdu commentPdu = pduFactory.makeCommentPdu(commentType, newCommentsList.toArray(new String[0])); // comments);
-                sendPDU(commentPdu);
-            }
-        }
-    }
-  
-    /**
-     * Main method is first executed when a program instance is loaded.
-     * @see <a href="https://docs.oracle.com/javase/tutorial/getStarted/application/index.html">Java Tutorials: A Closer Look at the "Hello World!" Application</a>
-     * @param args command-line arguments are an array of optional String parameters that are passed from execution environment during invocation
-     */
-    public static void main(String[] args)
-    {
-        WhiteSimulation thisProgram = new WhiteSimulation(); // creates instance
-        
-        // initial execution: can handle args array of initialization arguments here
-        if (args.length == 2)
-        {
-            if ((args[0] != null) && !args[0].isEmpty())
-                thisProgram.setNetworkAddress(args[0]);
-            
-            if ((args[1] != null) && !args[1].isEmpty())
-                thisProgram.setNetworkPort(Integer.parseInt(args[1]));
-        }
-        else if (args.length != 0)
-        {
-            System.err.println("Usage: " + thisProgram.getClass().getName() + " [address port]");
-            System.exit(-1);
-        }
-        // OK here we go...
-
-        //thisProgram.setUpNetworkInterface();
-
-        thisProgram.runSimulation (); // customization code goes in there
-
-        //thisProgram.tearDownNetworkInterface();
-    }
-    
-    /**
-     * Programmer-modifiable method for defining and running a new simulation of interest.
-     * Support include DIS EntityStatePdu, FirePdu and CommentPdu all available for 
-     * modification and sending in a simulation loop.
-     */
-    @SuppressWarnings("SleepWhileInLoop")
-    public void runSimulation ()
-    {
-      try
-      {
-        final double LOOP_DURATION_SECONDS  =  1.0; // seconds
-        final int    MAX_LOOP_COUNT = 10;
-              int    loopCount = 0;
-        VariableRecordType narrativeType = VariableRecordType.OTHER; // of potential use
-        boolean simulationComplete = false; // sentinel variable as termination condition
-        boolean fireBool = false;
-        boolean destBool = false;
-        // TODO reset clock to zero each time for consistent outputs.
-        
-        // your model setup: who's who in this zoo?
-        // create PDU objects and set their values
-        
-         Vector3Double eloc3 = new Vector3Double();
-         double[] loc3 = CoordinateConversions.getXYZfromLatLonDegrees(36.600757, -121.869309, 0 );//NPS Corner by lake
-        
-        EntityID       entityID_1    = new EntityID();
-        entityID_1.setSiteID(1).setApplicationID(2).setEntityID(3); // made-up example ID
-
-        EntityStatePdu entityStatePdu = pduFactory.makeEntityStatePdu();
-        entityStatePdu.setEntityID(entityID_1);
-        
-        
-        
-                                EntityID lavID = new EntityID();
-                                lavID.setSiteID(1);
-                                lavID.setApplicationID(13);
-                                lavID.setEntityID(25);
-                                entityStatePdu.setEntityID(lavID);
-                                EntityType lavType = new EntityType(); //1.1.225.2.41.3 Platform,Ground,USA,ArmoredFightingVehicle,LAV,LAV25A2
-                                lavType.setEntityKind(EntityKind.PLATFORM);
-                                lavType.setDomain(Domain.inst(PlatformDomain.LAND));
-                                lavType.setCountry(Country.UNITED_STATES_OF_AMERICA_USA);
-                                lavType.setCategory(2);
-                                lavType.setSubCategory(41);
-                                lavType.setSpecific(3);
-                                entityStatePdu.setEntityType(lavType);
-                                
-                                Vector3Double eloc2 = new Vector3Double();
-                                double[] loc2 = CoordinateConversions.getXYZfromLatLonDegrees(36.599831, -121.878842, 0); //sloat delmonte intersection
-                                eloc2.setX(loc2[0]);
-                                eloc2.setY(loc2[1]);
-                                eloc2.setZ(loc2[2]);
-                                entityStatePdu.setEntityLocation(eloc2);
-                                EulerAngles orient2 = new EulerAngles();
-                                orient2.setPhi((float) 0.0);
-                                orient2.setPsi((float) 0.0);
-                                orient2.setTheta((float) 0.0);                                
-                                entityStatePdu.setEntityOrientation(orient2);
-        
-                                EntityStatePdu entityStatePdu2 = pduFactory.makeEntityStatePdu();
-        
-                                
-                                EntityID bmpID = new EntityID();
-                                bmpID.setSiteID(1);
-                                bmpID.setApplicationID(13);
-                                bmpID.setEntityID(2);
-                                entityStatePdu2.setEntityID(bmpID);
-                                EntityType bmpType = new EntityType(); //1.1.222.2.2.1 Platform,Ground,Russia,ArmoredFightingVehicle,BMP2,BMP2
-                                bmpType.setEntityKind(EntityKind.PLATFORM);
-                                bmpType.setDomain(Domain.inst(PlatformDomain.LAND));
-                                bmpType.setCountry(Country.RUSSIA);
-                                bmpType.setCategory(2);
-                                bmpType.setSubCategory(41);
-                                bmpType.setSpecific(3);
-                                entityStatePdu2.setEntityType(bmpType);
-                                Vector3Double eloc1 = new Vector3Double();
-                                double[] loc1 = CoordinateConversions.getXYZfromLatLonDegrees(36.594116, -121.877463, 0); //NPS Main Gate
-                                eloc1.setX(loc1[0]);
-                                eloc1.setY(loc1[1]);
-                                eloc1.setZ(loc1[2]);
-                                
-                                entityStatePdu2.setEntityLocation(eloc1);
-                                EulerAngles orient1 = new EulerAngles();
-                                orient1.setPhi((float) 3.1415);
-                                orient1.setPsi((float) 0.0);
-                                orient1.setTheta((float) 0.0);                                
-                                entityStatePdu2.setEntityOrientation(orient1);
-                                   
-                                int BMPHitsReceived = 0;
-                                
-                                System.out.println(eloc2.toString());
-                                System.out.println(eloc1.toString());
-                                
-                                //FirePdu firePduNull = new FirePdu();
-                                 FirePdu               firePdu = pduFactory.makeFirePdu();
-        EntityID fireID = new EntityID();
-                                fireID.setSiteID(1);
-                                fireID.setApplicationID(13);
-                                fireID.setEntityID(25);
-                                EntityID targetID = new EntityID();
-                                targetID.setSiteID(1);
-                                targetID.setApplicationID(13);
-                                targetID.setEntityID(2);
-                                
-                                firePdu.setFiringEntityID(fireID);
-                                firePdu.setTargetEntityID(targetID);
-                                
-                                EntityType HEType = new EntityType(); //2.9.225.2.2.1
-                                HEType.setEntityKind(EntityKind.MUNITION);
-                                HEType.setDomain(Domain.inst(PlatformDomain.AIR));
-                                HEType.setCountry(Country.UNITED_STATES_OF_AMERICA_USA);
-                                HEType.setCategory(2);
-                                HEType.setSubCategory(2);
-                                HEType.setSpecific(1);
-                                MunitionDescriptor HEIT = new MunitionDescriptor();
-                                HEIT.setMunitionType(HEType);
-                                HEIT.setQuantity(3);
-                                HEIT.setFuse(MunitionDescriptorFuse.CONTACT_GRAZE);
-                                HEIT.setRate(200);
-                                
-                                firePdu.setDescriptor(HEIT);
-                                EntityID HEID = new EntityID();
-                                HEID.setEntityID(1);
-                                firePdu.setMunitionExpendibleID(HEID);
-        
-                                
-                                CommentReliablePdu bmpDestroyedComment = pduFactory.makeCommentReliablePdu("BMP2 DESTROYED BY LAV25-A2 AFTER TWO BURSTS OF 25mm HEI-T ON TARGET");
-                                CommentReliablePdu bmpSightedComment = pduFactory.makeCommentReliablePdu("LAV25-A2 ACQUIRES TARGET BMP2 WITHIN FIRING DISTANCE");
-        //if(eloc1.getX())
-       
-        // should we customize this munition?  what is it for your simulation?
-        
-        while (loopCount < MAX_LOOP_COUNT) // loop the simulation while allowed, can set additional conditions to break
-        {
-            String narrativeMessage1, narrativeMessage2, narrativeMessage3, narrativeMessage4;
-            narrativeMessage4 = "";
-            // initialize loop variables
-            loopCount++;
-            
-            // =============================================================================================
-            // your own simulation code starts here!
-            
-            // compute a track, update an ESPDU, whatever it is that your model is doing...
-            
-            // Where is my entity?
-            entityStatePdu.getEntityLocation().setX(entityStatePdu.getEntityLocation().getX()  - 20); // 1m per timestep
-            entityStatePdu.getEntityLocation().setY(entityStatePdu.getEntityLocation().getY() - 75);
-            // decide whether to fire, and then update the firePdu.  Hmmm, you might want a target to shoort at!
-            Double dx = eloc2.getX() - eloc1.getX();
-            Double dy = eloc2.getY() - eloc1.getY();
-            Double dz = eloc2.getZ() - eloc1.getZ();
-            Double range = Math.sqrt(dx*dx + dy*dy);
-            System.out.println("range" + range + "                dx:" +dx + "        dy:"+ dy);
-            // etc. etc. your code goes here
-                
-            if(range < 100){
-                if (!fireBool)
-                    sendPDU(bmpSightedComment);
-                fireBool = true;
-                System.out.println("Entity#" + firePdu.getFiringEntityID().getEntityID() + " is firing " + firePdu.getDescriptor().getMunitionType().getDomain() + "."+firePdu.getDescriptor().getMunitionType().getCountry()   + "." + firePdu.getDescriptor().getMunitionType().getCategory() + "."+ firePdu.getDescriptor().getMunitionType().getSubCategory() + "." + firePdu.getDescriptor().getMunitionType().getSpecific() + "."+ " at Entity#"+ firePdu.getTargetEntityID().getEntityID());
-            
-
-            if(firePdu.getTargetEntityID().getEntityID() == 2){
-                BMPHitsReceived += 1;
-                if (BMPHitsReceived > 1) {
-                    //DESTROY THE BMP!
-                    
-                    System.out.println("BMP Destroyed after "+ BMPHitsReceived + " hits from 25mm HEI-T");
-                    narrativeMessage4 = "Destroyed BMP2";
-                    destBool = true;
-                    
-                }
-            }
-            }
-            
-            // make your reports: narrative code for CommentPdu here (set all to empty strings to avoid sending)
-            narrativeMessage1 = "MV3500 ExampleSimulationProgram";
-            narrativeMessage2 = "runSimulation() loop " + loopCount;
-            narrativeMessage3 = "LAV-25A2"; // intentionally blank for testing
-            if (narrativeMessage4.isEmpty()){
-            narrativeMessage4 = "BMP2";
-            }
-            // your loop termination condition goes here
-            if (loopCount > 4) // for example
-            {
-                simulationComplete = true;
-            }      
-            // your own simulation code is finished here!
-            // =============================================================================================
-            
-            // keep track of timestep: wait duration for elapsed time in this loop
-            // Thread.sleep needs a (long) parameter for milliseconds, which are clumsy to use sometimes
-            Thread.sleep((long)(LOOP_DURATION_SECONDS * 1000)); // seconds * (1000 msec/sec) = milliseconds
-            System.out.println ("... Pausing for " + LOOP_DURATION_SECONDS + " seconds");
-            
-            // send the status PDUs for this loop and continue
-            System.out.println ("sending PDUs for simulation step " + loopCount + ", monitor loopback to confirm sent");
-            //sendAllPdus(entityStatePdu, firePduNull, null, narrativeMessage1, narrativeMessage2, narrativeMessage3);
-            //sendAllPdus(entityStatePdu2, null, null, narrativeMessage1, narrativeMessage2, narrativeMessage4);
-            sendPDU(entityStatePdu);
-            sendPDU(entityStatePdu2);
-            if (fireBool)
-                sendPDU(firePdu);
-            if (destBool)
-                sendPDU(bmpDestroyedComment);
-            
-            System.out.println ("... PDUs successfully sent");
-            
-            // ===============================
-            // loop now finished, thus terminate if simulation complete, otherwise send latest PDUs and continue
-            if (simulationComplete || (loopCount > 10000)) // for example; including fail-safe condition is good
-            {
-                CommentReliablePdu completionPdu = pduFactory.makeCommentReliablePdu("White Simulation Completed");
-                sendPDU(completionPdu);
-                System.out.println ("... Termination condition met, simulationComplete=" + simulationComplete);
-                break;
-            }
-        }   // end of while loop
-      } 
-      catch (Exception ex) // handle any exception that your code might choose to provoke!
-      {
-        Logger.getLogger(WhiteSimulation.class.getName()).log(Level.SEVERE, null, ex);
-      }
-    }
-    
-        public void sendPDU(Pdu pdu) {
-        System.out.println("Sending a PDU");
-        MulticastSocket socket = null; // must be initialized, even if null
-        InetAddress destinationIp = null; // must be initialized, even if null
-
-        try {
-            destinationIp = InetAddress.getByName(networkAddress);
-        } catch (UnknownHostException e) {
-            System.out.println(e + " Cannot create address");
-            System.exit(0);
-        }
-        try {
-            // Set up a socket to send information
-            socket = new MulticastSocket(2317);
-        } catch (IOException ex) {
-            Logger.getLogger(WhiteSimulation.class.getName()).log(Level.SEVERE, null, ex);
-        }
-
-        Set<InetAddress> broadcastAddresses;
-        // Loop through sending one ESPDUs
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        DataOutputStream dos = new DataOutputStream(baos);
-        try {
-            pdu.marshal(dos);
-            byte[] data = baos.toByteArray();
-
-            DatagramPacket packet = new DatagramPacket(data, data.length, destinationIp, 2317);
-            socket.send(packet);
-            socket.close();
-        } catch (Exception ex) {
-            Logger.getLogger(WhiteSimulation.class.getName()).log(Level.SEVERE, null, ex);
-        }
-}
-}
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
index 56ac5e1371a9142ea905d470b683d91b2b6662a0..ca5d0405f2a4e8a01709d9d8d89225fe8e991c8c 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/test/WhiteSimulation.java
@@ -31,7 +31,7 @@ public class WhiteSimulation
     Pdu receivedPdu;
     
     private String networkAddress = "10.1.105.7";
-    private int    networkPort    = 2317;
+    private int    networkPort    = 3000;
     
     /**
      * Constructor design goal: additional built-in initialization conveniences can go here
@@ -235,6 +235,10 @@ public class WhiteSimulation
         EntityStatePdu entityStatePdu = pduFactory.makeEntityStatePdu();
         entityStatePdu.setEntityID(entityID_1);
         
+                           // EntityMarking entityMarking = new EntityMarking ();
+                           //     entityMarking.setCharacters("WhiteSimulation".getBytes());   //entityMarking.setCharacters(Byte.valueOf("0")); // 11 characters max?
+
+                            //    entityStatePdu.setMarking(entityMarking);
         
         
                                 EntityID lavID = new EntityID();
@@ -335,9 +339,9 @@ public class WhiteSimulation
                                 CommentReliablePdu bmpDestroyedComment = pduFactory.makeCommentReliablePdu("BMP2 DESTROYED BY LAV25-A2 AFTER TWO BURSTS OF 25mm HEI-T ON TARGET");
                                 CommentReliablePdu bmpSightedComment = pduFactory.makeCommentReliablePdu("LAV25-A2 ACQUIRES TARGET BMP2 WITHIN FIRING DISTANCE");
         //if(eloc1.getX())
+        EntityID MTVRID = new EntityID();
         
-        
-                ResupplyOfferPdu resupplyOfferPdu = pduFactory.makeResupplyOfferPdu();
+        ResupplyOfferPdu resupplyOfferPdu = pduFactory.makeResupplyOfferPdu();
         ArrayList<SupplyQuantity> pSupplies = new ArrayList<SupplyQuantity>();
         SupplyQuantity ammoSupplyQ = new SupplyQuantity();
         ammoSupplyQ.setSupplyType(HEType);
@@ -348,9 +352,9 @@ public class WhiteSimulation
         //ammoSupply.setDomain(Entity)
         //ammoSupplyQ.setSupplyType(EntityType.)
         pSupplies.add(ammoSupplyQ);
-            resupplyOfferPdu.setSupplies(pSupplies);
-            resupplyOfferPdu.setReceivingEntityID(lavID);
-            resupplyOfferPdu.setSupplyingEntityID(bmpID);
+        resupplyOfferPdu.setSupplies(pSupplies);
+        resupplyOfferPdu.setReceivingEntityID(lavID);
+        resupplyOfferPdu.setSupplyingEntityID(MTVRID);
             
         // should we customize this munition?  what is it for your simulation?
         
@@ -456,7 +460,7 @@ public class WhiteSimulation
         }
         try {
             // Set up a socket to send information
-            socket = new MulticastSocket(2317);
+            socket = new MulticastSocket(3000);
         } catch (IOException ex) {
             Logger.getLogger(WhiteSimulation.class.getName()).log(Level.SEVERE, null, ex);
         }
@@ -469,7 +473,7 @@ public class WhiteSimulation
             pdu.marshal(dos);
             byte[] data = baos.toByteArray();
 
-            DatagramPacket packet = new DatagramPacket(data, data.length, destinationIp, 2317);
+            DatagramPacket packet = new DatagramPacket(data, data.length, destinationIp, 3000);
             socket.send(packet);
             socket.close();
         } catch (Exception ex) {
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PDUReciever.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PDUReciever.java
index d33465055cf548e178cb93b1540cdfe08e8fb261..2c57207923d4cfd8734ae0673de147f6b807ae91 100755
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PDUReciever.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PDUReciever.java
@@ -26,7 +26,7 @@ public class PDUReciever {
     /**
      * Default port used, matches Wireshark DIS capture default
      */
-    public static final int DEFAULT_PORT = 2317;
+    public static final int DEFAULT_PORT = 3000;
     public static final int SECOND_PORT = 3000;
     public static final int THIRD_PORT = 2318;
     
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PduListenerSaver.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PduListenerSaver.java
new file mode 100644
index 0000000000000000000000000000000000000000..e5149fdb471eb39a06a4db3475df5acdffba9787
--- /dev/null
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/PduListenerSaver.java
@@ -0,0 +1,96 @@
+/**
+ * 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 MV3500Cohort2020JulySeptember.homework4.White.working;
+
+import edu.nps.moves.dis7.utilities.stream.PduRecorder;
+import java.io.IOException;
+import java.util.Scanner;
+
+/** Class to leverage the {@link edu.nps.moves.dis7.utilities.stream.PduRecorder} 
+ * with PDU log saving console controls for resume, pause and quit.
+ * 
+ * PduSaver.java created on Aug 21, 2019
+ * Renamed PduListenerSaver
+ * 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_OUTPUT_DIRECTORY  = "pduLog";
+  public static final String  DEFAULT_MULTICAST_ADDRESS = "localhost";
+  public static final int     DEFAULT_MULTICAST_PORT    = 2137;
+
+  private enum mystate
+  {
+    RUNNING,
+    PAUSED;
+  }
+
+  public static void main(String[] args)
+  {
+    String outputDirectory  = DEFAULT_OUTPUT_DIRECTORY;
+    String multicastAddress = DEFAULT_MULTICAST_ADDRESS;
+    int       multicastPort = DEFAULT_MULTICAST_PORT;
+    
+    System.out.println("OpenDis7Examples.PduListenerSaver started...");
+
+    switch (args.length) {
+      case 0:
+        break;
+      case 1:
+        outputDirectory = args[0];
+        break;
+      case 3:
+        outputDirectory  = args[0];
+        multicastAddress = args[1];
+        multicastPort    = Integer.parseInt(args[2]);
+        break;
+      default:
+        // Common-sense practice is to print help message if invocation is problematic
+        System.err.println("Usage: PduListenerSaver() or PduListenerSaver(\"outputdir\") or PduListenerSaver(\"outputDirectory\",\"multicastAddress\", multicastPort");
+        System.exit(1);
+    }
+
+    System.out.println("Beginning PduListenerSaver (" + multicastAddress + ":" + multicastPort + ") to directory " + outputDirectory);
+    try {
+      PduRecorder recorder = new PduRecorder(outputDirectory, multicastAddress, multicastPort); // assumes save
+      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;
+          System.out.println("... now PAUSED");
+        }
+        else if (line.equalsIgnoreCase("p")) {
+          System.out.println("... still PAUSED");
+        }
+        else if (line.equalsIgnoreCase("r") && state == mystate.PAUSED) {
+          recorder.startResume();
+          state = mystate.RUNNING;
+          System.out.println("... now RUNNING");
+        }
+        else if (line.equalsIgnoreCase("r")) {
+          System.out.println("... still RUNNING");
+        }
+        else if (line.equalsIgnoreCase("q")) {
+          System.out.println("... QUIT");
+          recorder.end();
+          break;
+        }
+      }
+      System.out.println("Ending PduListenerSaver pdu recording, saved to file:");
+      System.out.println(recorder.getLogFilePath());
+    }
+    catch (IOException ex) {
+      System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage());
+    }
+  }
+}
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/Receiver Output Log.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/Receiver Output Log.md
deleted file mode 100644
index e5cdc8b7a150c0754dd02229930316eb88062760..0000000000000000000000000000000000000000
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/Receiver Output Log.md	
+++ /dev/null
@@ -1,152 +0,0 @@
-[MV3500Cohort2020JulySeptember.homework4.White.working.PDUReciever] started...
-[MV3500Cohort2020JulySeptember.homework4.White.working.PDUReciever] listening for PDU packets on port 2317
-====================================================
-  1. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 26] 
-     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 7 39 3
-     Location in DIS coordinates:        [-2707501.7340396782, -4353408.810297934, 3781834.0645668795]
-  2. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 26] 
-     Location in DIS coordinates:        [-2707521.7340396782, -4353483.810297934, 3781834.0645668795]
-  3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 25] 
-     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 2 41 3
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  4. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 26] 
-     Location in DIS coordinates:        [-2707541.7340396782, -4353558.810297934, 3781834.0645668795]
-  5. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  6. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.11
-     messages:  "LAV25-A2 IS WITHIN DISTANCE OF RESUPPLY"
-  7. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 26] 
-     Location in DIS coordinates:        [-2707561.7340396782, -4353633.810297934, 3781834.0645668795]
-  8. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
-  9. received PDU type 6=RESUPPLY_OFFER edu.nps.moves.dis7.pdus.ResupplyOfferPdu  from /10.1.105.11
-     Resupply Offer from Entity [1, 13, 26] to resupply Entity [1, 13, 25]
-     Supplies Offered:   [Quantity: 500.0,   Type: EntityKind 2 MUNITION Air Country 225 UNITED_STATES_OF_AMERICA_USA 2 2 1 ]
- 10. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 26] 
-     Location in DIS coordinates:        [-2707581.7340396782, -4353708.810297934, 3781834.0645668795]
- 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.11
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 12. received PDU type 6=RESUPPLY_OFFER edu.nps.moves.dis7.pdus.ResupplyOfferPdu  from /10.1.105.11
-     Resupply Offer from Entity [1, 13, 26] to resupply Entity [1, 13, 25]
-     Supplies Offered:   [Quantity: 500.0,   Type: EntityKind 2 MUNITION Air Country 225 UNITED_STATES_OF_AMERICA_USA 2 2 1 ]
- 13. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.11
-     messages:  "Britt Simulation Completed"
- 14. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     New Entity: EntityKind 1 PLATFORM Land Country 225 UNITED_STATES_OF_AMERICA_USA 4 3 7
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 15. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     New Entity: EntityKind 1 PLATFORM Land Country 260 RUSSIA 2 41 3
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 16. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 17. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 18. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 19. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 20. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 21. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 22. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 23. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 24. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 25. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 26. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 27. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 28. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 29. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [2, 10, 3] 
-     Location in DIS coordinates:        [-2709702.5301454174, -4349384.2159421, 3784766.9772485564]
- 30. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.8
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 31. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.8
-     firingEntityID triplet: [2, 10, 3] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.14.1]
- 32. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.8
-     messages:  "BMP2 DESTROYED BY M109A6 AFTER SIX VOLLEYS OF HE/PD ON TARGET"
- 33. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.8
-     messages:  "Cannon Simulation Completed"
- 34. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707501.7340396782, -4353408.810297934, 3781834.0645668795]
- 35. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707521.7340396782, -4353483.810297934, 3781834.0645668795]
- 36. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 37. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707541.7340396782, -4353558.810297934, 3781834.0645668795]
- 38. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 39. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
-     messages:  "LAV25-A2 ACQUIRES TARGET BMP2 WITHIN FIRING DISTANCE"
- 40. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707561.7340396782, -4353633.810297934, 3781834.0645668795]
- 41. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 42. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
-     firingEntityID triplet: [1, 13, 25] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.2.1]
- 43. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 25] 
-     Location in DIS coordinates:        [-2707581.7340396782, -4353708.810297934, 3781834.0645668795]
- 44. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu  from /10.1.105.7
-     entityID triplet: [1, 13, 2] 
-     Location in DIS coordinates:        [-2707576.630668249, -4353720.04383471, 3781324.902449432]
- 45. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu  from /10.1.105.7
-     firingEntityID triplet: [1, 13, 25] 
-     targetEntityID triplet: [1, 13, 2] 
-     Munition Information:   [Air.Country 225 UNITED_STATES_OF_AMERICA_USA.2.2.1]
- 46. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
-     messages:  "BMP2 DESTROYED BY LAV25-A2 AFTER TWO BURSTS OF 25mm HEI-T ON TARGET"
- 47. received PDU type 6=RESUPPLY_OFFER edu.nps.moves.dis7.pdus.ResupplyOfferPdu  from /10.1.105.7
-     Resupply Offer from Entity [1, 13, 2] to resupply Entity [1, 13, 25]
-     Supplies Offered:   [Quantity: 500.0,   Type: EntityKind 2 MUNITION Air Country 225 UNITED_STATES_OF_AMERICA_USA 2 2 1 ]
- 48. received PDU type 62=COMMENT_RELIABLE edu.nps.moves.dis7.pdus.CommentReliablePdu  from /10.1.105.7
-     messages:  "White Simulation Completed"
\ No newline at end of file
diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
index b6c6768cdadb83aec9e3013d219e615d26b15590..ebee25ed486ab4686f7ab3bc88430a30e5fea01e 100644
--- a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
+++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/working/WhiteSimulation.java
@@ -233,13 +233,14 @@ public class WhiteSimulation
         
         EntityStatePdu entityStatePdu = pduFactory.makeEntityStatePdu();
         entityStatePdu.setEntityID(entityID_1);
-        
+     
         
         
                                 EntityID lavID = new EntityID();
                                 lavID.setSiteID(1);
                                 lavID.setApplicationID(13);
                                 lavID.setEntityID(25);
+                                
                                 entityStatePdu.setEntityID(lavID);
                                 EntityType lavType = new EntityType(); //1.1.225.2.41.3 Platform,Ground,USA,ArmoredFightingVehicle,LAV,LAV25A2
                                 lavType.setEntityKind(EntityKind.PLATFORM);
@@ -256,6 +257,7 @@ public class WhiteSimulation
                                 eloc2.setY(loc2[1]);
                                 eloc2.setZ(loc2[2]);
                                 entityStatePdu.setEntityLocation(eloc2);
+                                
                                 EulerAngles orient2 = new EulerAngles();
                                 orient2.setPhi((float) 0.0);
                                 orient2.setPsi((float) 0.0);
@@ -298,10 +300,11 @@ public class WhiteSimulation
                                 
                                 //FirePdu firePduNull = new FirePdu();
                                  FirePdu               firePdu = pduFactory.makeFirePdu();
-        EntityID fireID = new EntityID();
+                                EntityID fireID = new EntityID();
                                 fireID.setSiteID(1);
                                 fireID.setApplicationID(13);
                                 fireID.setEntityID(25);
+                                
                                 EntityID targetID = new EntityID();
                                 targetID.setSiteID(1);
                                 targetID.setApplicationID(13);
@@ -310,13 +313,14 @@ public class WhiteSimulation
                                 firePdu.setFiringEntityID(fireID);
                                 firePdu.setTargetEntityID(targetID);
                                 
-                                EntityType HEType = new EntityType(); //2.9.225.2.2.1
+                                EntityType HEType = new EntityType(); //2.9.225.2.2.1 MUNITION AIR USA BALLISTIC 25MM HEI-T
                                 HEType.setEntityKind(EntityKind.MUNITION);
                                 HEType.setDomain(Domain.inst(PlatformDomain.AIR));
                                 HEType.setCountry(Country.UNITED_STATES_OF_AMERICA_USA);
                                 HEType.setCategory(2);
                                 HEType.setSubCategory(2);
                                 HEType.setSpecific(1);
+                                
                                 MunitionDescriptor HEIT = new MunitionDescriptor();
                                 HEIT.setMunitionType(HEType);
                                 HEIT.setQuantity(3);
@@ -354,21 +358,19 @@ public class WhiteSimulation
             // Where is my entity?
             entityStatePdu.getEntityLocation().setX(entityStatePdu.getEntityLocation().getX()  - 20); // 1m per timestep
             entityStatePdu.getEntityLocation().setY(entityStatePdu.getEntityLocation().getY() - 75);
-            // decide whether to fire, and then update the firePdu.  Hmmm, you might want a target to shoort at!
+            
             Double dx = eloc2.getX() - eloc1.getX();
             Double dy = eloc2.getY() - eloc1.getY();
             Double dz = eloc2.getZ() - eloc1.getZ();
             Double range = Math.sqrt(dx*dx + dy*dy);
             System.out.println("range" + range + "                dx:" +dx + "        dy:"+ dy);
-            // etc. etc. your code goes here
-                
+                            
             if(range < 100){
                 if (!fireBool)
                     sendPDU(bmpSightedComment);
                 fireBool = true;
                 System.out.println("Entity#" + firePdu.getFiringEntityID().getEntityID() + " is firing " + firePdu.getDescriptor().getMunitionType().getDomain() + "."+firePdu.getDescriptor().getMunitionType().getCountry()   + "." + firePdu.getDescriptor().getMunitionType().getCategory() + "."+ firePdu.getDescriptor().getMunitionType().getSubCategory() + "." + firePdu.getDescriptor().getMunitionType().getSpecific() + "."+ " at Entity#"+ firePdu.getTargetEntityID().getEntityID());
             
-
             if(firePdu.getTargetEntityID().getEntityID() == 2){
                 BMPHitsReceived += 1;
                 if (BMPHitsReceived > 1) {
@@ -449,12 +451,20 @@ public class WhiteSimulation
         // Loop through sending one ESPDUs
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         DataOutputStream dos = new DataOutputStream(baos);
+        DatagramPacket        packet = new DatagramPacket(baos.toByteArray(), baos.size(), destinationIp, 2317);//trying new things
         try {
             pdu.marshal(dos);
-            byte[] data = baos.toByteArray();
+            //byte[] data = baos.toByteArray();
 
-            DatagramPacket packet = new DatagramPacket(data, data.length, destinationIp, 2317);
+            //DatagramPacket packet = new DatagramPacket(data, data.length, destinationIp, 2317);
+            packet.setData(baos.toByteArray());//
+            
+            
             socket.send(packet);
+            
+            dos.flush();  // immediately force pdu write
+                    baos.reset();//
+            
             socket.close();
         } catch (Exception ex) {
             Logger.getLogger(WhiteSimulation.class.getName()).log(Level.SEVERE, null, ex);