diff --git a/examples/src/OpenDis7Examples/EspduReceiver.java b/examples/src/OpenDis7Examples/EspduReceiver.java index 8aa82cad2955a48c05415f41b89fdba963c77f38..6fd1f1f237e4207e2349a727dd14be3b048e59a8 100755 --- a/examples/src/OpenDis7Examples/EspduReceiver.java +++ b/examples/src/OpenDis7Examples/EspduReceiver.java @@ -38,9 +38,9 @@ public class EspduReceiver */ public static void main(String args[]) { - MulticastSocket socket; + MulticastSocket multicastSocket; + InetAddress multicastInetAddress; DatagramPacket packet; - InetAddress address; PduFactory pduFactory = new PduFactory(); int pduCount = 0; @@ -48,13 +48,19 @@ public class EspduReceiver try { // Specify the socket to receive data - socket = new MulticastSocket(DEFAULT_MULTICAST_PORT); + multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT); // socket.setBroadcast(true); - address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); - socket.joinGroup(address); + multicastInetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); +// socket.joinGroup(address); // deprecated + // ======================================================================= + // new approach using interface + NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress); + SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT); + multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface); + // ======================================================================= - System.out.println(TRACE_PREFIX + "listening for PDU packets on " + address.getHostAddress() + " port " + DEFAULT_MULTICAST_PORT); + System.out.println(TRACE_PREFIX + "listening for PDU packets on " + multicastInetAddress.getHostAddress() + " port " + DEFAULT_MULTICAST_PORT); System.out.println("To quit: stop or kill this process"); System.out.println("==============="); @@ -63,7 +69,7 @@ public class EspduReceiver byte buffer[] = new byte[MAX_PDU_SIZE]; packet = new DatagramPacket(buffer, buffer.length); // reset packet each time - socket.receive(packet); // process blocks here until receipt of network packet with PDU + multicastSocket.receive(packet); // process blocks here until receipt of network packet with PDU List<Pdu> pduBundle = pduFactory.getPdusFromBundle(packet.getData(),packet.getLength()); if (pduBundle.size() > 1) diff --git a/examples/src/OpenDis7Examples/EspduSender.java b/examples/src/OpenDis7Examples/EspduSender.java index 8909d65c099cfa1be1366075f5dc02b484419b8d..a70a4190c8f42a7debe9aeeae3e63d0ee2499a6a 100644 --- a/examples/src/OpenDis7Examples/EspduSender.java +++ b/examples/src/OpenDis7Examples/EspduSender.java @@ -23,7 +23,7 @@ public class EspduSender /** * Number of complete loops to perform. * Putting any upper limit on # packets sent avoids possibility of non-terminating infinite loops that continue sending packets. */ - public static final int SEND_LOOPS_TO_PERFORM = 1; // 5 + public static final int SEND_LOOPS_TO_PERFORM = 5; // 5 /** * Default multicast group address we send on. @@ -68,19 +68,19 @@ public class EspduSender // Default settings. These are used if no system properties are set. // If system properties are passed in, these are overridden later. - NetworkMode networkMode = NetworkMode.MULTICAST; - InetAddress address = null; // must be initialized, even if null - int port = DEFAULT_MULTICAST_PORT; - MulticastSocket socket = null; // must be initialized to avoid later error, even if null; - EntityStatePdu espdu = new EntityStatePdu(); - DisTime disTime = new DisTime(); + NetworkMode networkMode = NetworkMode.MULTICAST; + InetAddress multicastInetAddress = null; // must be initialized, even if null + int port = DEFAULT_MULTICAST_PORT; + MulticastSocket socket = null; // must be initialized to avoid later error, even if null; + EntityStatePdu espdu = new EntityStatePdu(); + DisTime disTime = new DisTime(); // ICBM coordinates for my office double latitude = 36.595517; double longitude = -121.877000; try { - address = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); + multicastInetAddress = InetAddress.getByName(DEFAULT_MULTICAST_ADDRESS); } catch (UnknownHostException e) { @@ -112,7 +112,7 @@ public class EspduSender // Where we send packets to, the destination IP address if (destinationIpString != null) { - address = InetAddress.getByName(destinationIpString); + multicastInetAddress = InetAddress.getByName(destinationIpString); } // Type of transport: unicast, broadcast, or multicast @@ -129,11 +129,20 @@ public class EspduSender else if (networkModeString.equalsIgnoreCase("multicast")) { networkMode = NetworkMode.MULTICAST; - if (!address.isMulticastAddress()) + if (!multicastInetAddress.isMulticastAddress()) { - throw new RuntimeException("*** Error: sending to multicast address, but destination address " + address.toString() + "is not multicast"); + throw new RuntimeException("*** Error: sending to multicast address, but destination address " + multicastInetAddress.toString() + "is not multicast"); } - socket.joinGroup(address); // TODO select correct NetworkInterface +// socket.joinGroup(multicastInetAddress); // deprecated, TODO select correct NetworkInterface + // ======================================================================= + // updated approach using NetworkInterface + NetworkInterface networkInterface = NetworkInterface.getByInetAddress(multicastInetAddress); + if (networkInterface != null) + System.out.println("networkInterface=" + networkInterface.getDisplayName()); // typically null if loopback + SocketAddress localMulticastSocketAddress = new InetSocketAddress(multicastInetAddress, DEFAULT_MULTICAST_PORT); + MulticastSocket multicastSocket = new MulticastSocket(DEFAULT_MULTICAST_PORT); + multicastSocket.joinGroup(localMulticastSocketAddress, networkInterface); + // ======================================================================= } } // end networkModeString else if (networkMode == NetworkMode.MULTICAST) @@ -156,7 +165,7 @@ public class EspduSender System.exit(-1); // outta here } System.out.println(TRACE_PREFIX + " sending " + networkModeString + " ESPDU packets to " + - address.getHostAddress() + " port " + port); + multicastInetAddress.getHostAddress() + " port " + port); // Initialize values in the Entity State PDU object. The exercise ID is // a way to differentiate between different virtual worlds on one network. diff --git a/examples/src/OpenDis7Examples/EspduSenderWireshark.png b/examples/src/OpenDis7Examples/EspduSenderWireshark.png new file mode 100644 index 0000000000000000000000000000000000000000..209629a1a0fe7c5f804efe32b5ab36ba7645e722 Binary files /dev/null and b/examples/src/OpenDis7Examples/EspduSenderWireshark.png differ diff --git a/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng b/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..5615b7f12f140a50082049eadb7076a73bb80da7 Binary files /dev/null and b/examples/src/OpenDis7Examples/EspduSenderWiresharkCapture.pcapng differ diff --git a/examples/src/OpenDis7Examples/EspduTerminalLog.txt b/examples/src/OpenDis7Examples/EspduTerminalLog.txt index 4ed84791f0d86c50b3f8a2a653d5103f8791c16e..aa29451610ecf5f3884d99c4a5f5f74eff878516 100644 --- a/examples/src/OpenDis7Examples/EspduTerminalLog.txt +++ b/examples/src/OpenDis7Examples/EspduTerminalLog.txt @@ -2,7 +2,7 @@ Invocation instructions: 1. run/debug EspduReceiver.java (since sender does not block, first be ready to listen) 2. run/debug EspduSender.java -Program responses, sender and receiver: +Program responses follow for sender and receiver: =================================================== ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/EspduSender.java -Drun.class=OpenDis7Examples.EspduSender run-single @@ -11,23 +11,19 @@ Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.prope deps-jar: Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes -warning: [options] bootstrap class path not set in conjunction with -source 8 -Note: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\src\OpenDis7Examples\EspduSender.java uses or overrides a deprecated API. -Note: Recompile with -Xlint:deprecation for details. -1 warning compile-single: run-single: [OpenDis7Examples.EspduSender] started... [OpenDis7Examples.EspduSender] sending multicast ESPDU packets to 239.1.2.3 port 3000 =============== espdu entityType information: - EntityKind =EntityKind 1 PLATFORM + EntityKind =DisPduType 1 PLATFORM Country =Country 225 UNITED_STATES_OF_AMERICA_USA Domain =Land Category =1 SubCategory=1 Specific =Country 225 UNITED_STATES_OF_AMERICA_USA -[OpenDis7Examples.EspduSender] sending 1 sets of packets: +[OpenDis7Examples.EspduSender] sending 5 sets of packets: =============== Create new PDUs latitude, longitude: [36.595517, -121.87706] @@ -35,7 +31,7 @@ Create new PDUs Espdu #1 entityID=[1,2,3] FirePdu #1 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: munitionType: EntityType: - entityKind: EntityKind 0 OTHER + entityKind: DisPduType 0 OTHER domain: Other country: Country 0 OTHER category: 0 @@ -48,20 +44,141 @@ FirePdu #1 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: quantity: 0 rate: 0 ] -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 172.19.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE ] packet.getLength()= 96, to 172.19.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 10.0.0.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE ] packet.getLength()= 96, to 10.0.0.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 1 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DISPDUType 2 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 +=============== +Create new PDUs + latitude, longitude: [36.595517, -121.877] + coordinate conversion: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +Espdu #2 entityID=[1,2,3] +FirePdu #2 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: + munitionType: EntityType: + entityKind: DisPduType 0 OTHER + domain: Other + country: Country 0 OTHER + category: 0 + subCategory: 0 + specific: 0 + extra: 0 + + warhead: MunitionDescriptorWarhead 0 OTHER + fuse: MunitionDescriptorFuse 0 OTHER + quantity: 0 + rate: 0 +] +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 +=============== +Create new PDUs + latitude, longitude: [36.595517, -121.87706] + coordinate conversion: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +Espdu #3 entityID=[1,2,3] +FirePdu #3 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: + munitionType: EntityType: + entityKind: DisPduType 0 OTHER + domain: Other + country: Country 0 OTHER + category: 0 + subCategory: 0 + specific: 0 + extra: 0 + + warhead: MunitionDescriptorWarhead 0 OTHER + fuse: MunitionDescriptorFuse 0 OTHER + quantity: 0 + rate: 0 +] +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 +=============== +Create new PDUs + latitude, longitude: [36.595517, -121.877] + coordinate conversion: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +Espdu #4 entityID=[1,2,3] +FirePdu #4 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: + munitionType: EntityType: + entityKind: DisPduType 0 OTHER + domain: Other + country: Country 0 OTHER + category: 0 + subCategory: 0 + specific: 0 + extra: 0 + + warhead: MunitionDescriptorWarhead 0 OTHER + fuse: MunitionDescriptorFuse 0 OTHER + quantity: 0 + rate: 0 +] +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 +=============== +Create new PDUs + latitude, longitude: [36.595517, -121.87706] + coordinate conversion: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +Espdu #5 entityID=[1,2,3] +FirePdu #5 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor: + munitionType: EntityType: + entityKind: DisPduType 0 OTHER + domain: Other + country: Country 0 OTHER + category: 0 + subCategory: 0 + specific: 0 + extra: 0 + + warhead: MunitionDescriptorWarhead 0 OTHER + fuse: MunitionDescriptorFuse 0 OTHER + quantity: 0 + rate: 0 +] +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.239.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.209.219 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.209.219 port 3000 =============== [OpenDis7Examples.EspduSender] complete. -BUILD SUCCESSFUL (total time: 5 seconds) +BUILD SUCCESSFUL (total time: 11 seconds) + =================================================== +ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\examples -Dnb.internal.action.name=run.single -Djavac.includes=OpenDis7Examples/EspduReceiver.java -Drun.class=OpenDis7Examples.EspduReceiver run-single +init: +Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +deps-jar: +Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties +Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\classes +compile-single: +run-single: [OpenDis7Examples.EspduReceiver] started... [OpenDis7Examples.EspduReceiver] listening for PDU packets on 239.1.2.3 port 3000 To quit: stop or kill this process @@ -71,4 +188,58 @@ To quit: stop or kill this process Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] 2. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +=============== + 3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] + 4. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +=============== + 5. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] + 6. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +=============== + 7. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] + 8. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +=============== + 9. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] + 10. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +=============== + 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] + 12. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +=============== + 13. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] + 14. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +=============== + 15. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] + 16. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] +=============== + 17. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] + 18. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] +=============== + 19. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + entityID triplet: [1, 2, 3] + Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] + 20. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] =============== \ No newline at end of file