diff --git a/examples/src/OpenDis7Examples/AllPduReceiver.java b/examples/src/OpenDis7Examples/AllPduReceiver.java index f51eccc1de74f8a9d8d6892552462e5f5d159595..d5534da3ce71538f93ee1f5f4f9fb4d5195ffcb4 100644 --- a/examples/src/OpenDis7Examples/AllPduReceiver.java +++ b/examples/src/OpenDis7Examples/AllPduReceiver.java @@ -1,11 +1,10 @@ package OpenDis7Examples; -import java.net.*; -import java.io.*; - -import edu.nps.moves.dis7.pdus.*; import edu.nps.moves.dis7.enumerations.*; +import edu.nps.moves.dis7.pdus.*; import edu.nps.moves.dis7.utilities.PduFactory; +import java.io.*; +import java.net.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -32,6 +31,8 @@ public class AllPduReceiver MulticastSocket multicastSocket; InetAddress multicastInetAddress; PduFactory pduFactory = new PduFactory(); + PduFactory.TimestampStyle timestampStyle = PduFactory.TimestampStyle.YEAR; + pduFactory.setTimestampStyle(timestampStyle); System.out.println(TRACE_PREFIX + "started..."); @@ -81,12 +82,12 @@ public class AllPduReceiver for (Pdu nextPdu : pduBundle) // iterator loop through PDU bundle { DisPduType currentPduType = nextPdu.getPduType(); //short currentPduType = nextPdu.getPduType(); - String currentPduTypeName = nextPdu.getClass().getName(); + String currentPduTypeName = nextPdu.getClass().getSimpleName(); String currentPduFamilyName = nextPdu.getClass().getSuperclass().getSimpleName(); DISProtocolFamily currentProtocolFamilyID = nextPdu.getProtocolFamily(); //short currentProtocolFamilyID = nextPdu.getProtocolFamily(); StringBuilder message = new StringBuilder(); - message.append(DisTime.timeStampToString(nextPdu.getTimestamp())).append(" "); + message.append(DisTime.timestampToString(nextPdu.getTimestamp())).append(" "); message.append("received new DIS PDU "); String currentPduTypePadded = String.format("%-48s", currentPduType); // - indicates right padding of whitespace message.append(currentPduTypePadded); diff --git a/examples/src/OpenDis7Examples/AllPduSender.java b/examples/src/OpenDis7Examples/AllPduSender.java index 12815bb62d5c7da782d02f986ca6ef0489269e04..fa61e6257722e87debfead9847f6e6d01df2a0c3 100755 --- a/examples/src/OpenDis7Examples/AllPduSender.java +++ b/examples/src/OpenDis7Examples/AllPduSender.java @@ -504,7 +504,7 @@ public class AllPduSender // currentPduTypeValuePadded + " " + currentPduTypePadded + "(packet.getLength()=" + packetLengthPadded + ")" + // diagnostic, beware of ever-growing packet size! - " of type " + aPdu.getClass().getName()); + " of type " + aPdu.getClass().getSimpleName()); Thread.sleep(THREAD_SLEEP_INTERVAL); // pause for debugging, if zero this process still yields } diff --git a/examples/src/OpenDis7Examples/AllPduSenderLog.txt b/examples/src/OpenDis7Examples/AllPduSenderLog.txt index 30d936dd6310fe9032234ded58d3a7386ead3cc2..fc7c8c363541e26bb3891140850837d0d0e89a21 100644 --- a/examples/src/OpenDis7Examples/AllPduSenderLog.txt +++ b/examples/src/OpenDis7Examples/AllPduSenderLog.txt @@ -15,77 +15,77 @@ Preparing CommentPDU: "Hello CommentPDU" "Here is a second line of text in this comment." Send the 72 PDUs we created... -Sent packet # 1, DisPduType 01 ENTITY_STATE (packet.getLength()=144) of type edu.nps.moves.dis7.pdus.EntityStatePdu -Sent packet # 2, DisPduType 02 FIRE (packet.getLength()= 96) of type edu.nps.moves.dis7.pdus.FirePdu -Sent packet # 3, DisPduType 03 DETONATION (packet.getLength()=104) of type edu.nps.moves.dis7.pdus.DetonationPdu -Sent packet # 4, DisPduType 04 COLLISION (packet.getLength()= 60) of type edu.nps.moves.dis7.pdus.CollisionPdu -Sent packet # 5, DisPduType 05 SERVICE_REQUEST (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ServiceRequestPdu -Sent packet # 6, DisPduType 06 RESUPPLY_OFFER (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ResupplyOfferPdu -Sent packet # 7, DisPduType 07 RESUPPLY_RECEIVED (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ResupplyReceivedPdu -Sent packet # 8, DisPduType 08 RESUPPLY_CANCEL (packet.getLength()= 24) of type edu.nps.moves.dis7.pdus.ResupplyCancelPdu -Sent packet # 9, DisPduType 09 REPAIR_COMPLETE (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RepairCompletePdu -Sent packet #10, DisPduType 10 REPAIR_RESPONSE (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RepairResponsePdu -Sent packet #11, DisPduType 11 CREATE_ENTITY (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.CreateEntityPdu -Sent packet #12, DisPduType 12 REMOVE_ENTITY (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RemoveEntityPdu -Sent packet #13, DisPduType 13 START_RESUME (packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.StartResumePdu -Sent packet #14, DisPduType 14 STOP_FREEZE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.StopFreezePdu -Sent packet #15, DisPduType 15 ACKNOWLEDGE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AcknowledgePdu -Sent packet #16, DisPduType 16 ACTION_REQUEST (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionRequestPdu -Sent packet #17, DisPduType 17 ACTION_RESPONSE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionResponsePdu -Sent packet #18, DisPduType 18 DATA_QUERY (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataQueryPdu -Sent packet #19, DisPduType 19 SET_DATA (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetDataPdu -Sent packet #20, DisPduType 20 DATA (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataPdu -Sent packet #21, DisPduType 21 EVENT_REPORT (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.EventReportPdu -Sent packet #22, DisPduType 22 COMMENT (packet.getLength()=112) of type edu.nps.moves.dis7.pdus.CommentPdu -Sent packet #23, DisPduType 23 ELECTROMAGNETIC_EMISSION (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ElectromagneticEmissionPdu -Sent packet #24, DisPduType 24 DESIGNATOR (packet.getLength()= 88) of type edu.nps.moves.dis7.pdus.DesignatorPdu -Sent packet #25, DisPduType 25 TRANSMITTER (packet.getLength()=107) of type edu.nps.moves.dis7.pdus.TransmitterPdu -Sent packet #26, DisPduType 26 SIGNAL (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.SignalPdu -Sent packet #27, DisPduType 27 RECEIVER (packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.ReceiverPdu -Sent packet #28, DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE (packet.getLength()= 60) of type edu.nps.moves.dis7.pdus.IdentificationFriendOrFoePdu -Sent packet #29, DisPduType 29 UNDERWATER_ACOUSTIC (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.UnderwaterAcousticPdu -Sent packet #30, DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE (packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.SupplementalEmissionEntityStatePdu -Sent packet #31, DisPduType 31 INTERCOM_SIGNAL (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.IntercomSignalPdu -Sent packet #32, DisPduType 32 INTERCOM_CONTROL (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.IntercomControlPdu -Sent packet #33, DisPduType 33 AGGREGATE_STATE (packet.getLength()=136) of type edu.nps.moves.dis7.pdus.AggregateStatePdu -Sent packet #34, DisPduType 34 ISGROUPOF (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.IsGroupOfPdu -Sent packet #35, DisPduType 35 TRANSFER_OWNERSHIP (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.TransferOwnershipPdu -Sent packet #36, DisPduType 36 ISPARTOF (packet.getLength()= 52) of type edu.nps.moves.dis7.pdus.IsPartOfPdu -Sent packet #37, DisPduType 37 MINEFIELD_STATE (packet.getLength()= 72) of type edu.nps.moves.dis7.pdus.MinefieldStatePdu -Sent packet #38, DisPduType 38 MINEFIELD_QUERY (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.MinefieldQueryPdu -Sent packet #39, DisPduType 39 MINEFIELD_DATA (packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.MinefieldDataPdu -Sent packet #40, DisPduType 40 MINEFIELD_RESPONSE_NACK (packet.getLength()= 26) of type edu.nps.moves.dis7.pdus.MinefieldResponseNACKPdu -Sent packet #41, DisPduType 41 ENVIRONMENTAL_PROCESS (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.EnvironmentalProcessPdu -Sent packet #42, DisPduType 42 GRIDDED_DATA (packet.getLength()= 64) of type edu.nps.moves.dis7.pdus.GriddedDataPdu -Sent packet #43, DisPduType 43 POINT_OBJECT_STATE (packet.getLength()= 91) of type edu.nps.moves.dis7.pdus.PointObjectStatePdu -Sent packet #44, DisPduType 44 LINEAR_OBJECT_STATE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.LinearObjectStatePdu -Sent packet #45, DisPduType 45 AREAL_OBJECT_STATE (packet.getLength()= 49) of type edu.nps.moves.dis7.pdus.ArealObjectStatePdu -Sent packet #46, DisPduType 46 TIME_SPACE_POSITION_INFORMATION (packet.getLength()= 54) of type edu.nps.moves.dis7.pdus.TimeSpacePositionInformationPdu -Sent packet #47, DisPduType 47 APPEARANCE (packet.getLength()= 67) of type edu.nps.moves.dis7.pdus.AppearancePdu -Sent packet #48, DisPduType 48 ARTICULATED_PARTS (packet.getLength()= 17) of type edu.nps.moves.dis7.pdus.ArticulatedPartsPdu -Sent packet #49, DisPduType 49 LIVE_ENTITY_FIRE (packet.getLength()= 67) of type edu.nps.moves.dis7.pdus.LiveEntityFirePdu -Sent packet #50, DisPduType 50 LIVE_ENTITY_DETONATION (packet.getLength()= 79) of type edu.nps.moves.dis7.pdus.LiveEntityDetonationPdu -Sent packet #51, DisPduType 51 CREATE_ENTITY_RELIABLE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.CreateEntityReliablePdu -Sent packet #52, DisPduType 52 REMOVE_ENTITY_RELIABLE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.RemoveEntityReliablePdu -Sent packet #53, DisPduType 53 START_RESUME_RELIABLE (packet.getLength()= 48) of type edu.nps.moves.dis7.pdus.StartResumeReliablePdu -Sent packet #54, DisPduType 54 STOP_FREEZE_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.StopFreezeReliablePdu -Sent packet #55, DisPduType 55 ACKNOWLEDGE_RELIABLE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AcknowledgeReliablePdu -Sent packet #56, DisPduType 56 ACTION_REQUEST_RELIABLE (packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.ActionRequestReliablePdu -Sent packet #57, DisPduType 57 ACTION_RESPONSE_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionResponseReliablePdu -Sent packet #58, DisPduType 58 DATA_QUERY_RELIABLE (packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.DataQueryReliablePdu -Sent packet #59, DisPduType 59 SET_DATA_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetDataReliablePdu -Sent packet #60, DisPduType 60 DATA_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataReliablePdu -Sent packet #61, DisPduType 61 EVENT_REPORT_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.EventReportReliablePdu -Sent packet #62, DisPduType 62 COMMENT_RELIABLE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.CommentReliablePdu -Sent packet #63, DisPduType 63 RECORD_RELIABLE (packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.RecordReliablePdu -Sent packet #64, DisPduType 64 SET_RECORD_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetRecordReliablePdu -Sent packet #65, DisPduType 65 RECORD_QUERY_RELIABLE (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.RecordQueryReliablePdu -Sent packet #66, DisPduType 66 COLLISION_ELASTIC (packet.getLength()=100) of type edu.nps.moves.dis7.pdus.CollisionElasticPdu -Sent packet #67, DisPduType 67 ENTITY_STATE_UPDATE (packet.getLength()= 72) of type edu.nps.moves.dis7.pdus.EntityStateUpdatePdu -Sent packet #68, DisPduType 68 DIRECTED_ENERGY_FIRE (packet.getLength()= 88) of type edu.nps.moves.dis7.pdus.DirectedEnergyFirePdu -Sent packet #69, DisPduType 69 ENTITY_DAMAGE_STATUS (packet.getLength()= 24) of type edu.nps.moves.dis7.pdus.EntityDamageStatusPdu -Sent packet #70, DisPduType 70 INFORMATION_OPERATIONS_ACTION (packet.getLength()= 56) of type edu.nps.moves.dis7.pdus.InformationOperationsActionPdu -Sent packet #71, DisPduType 71 INFORMATION_OPERATIONS_REPORT (packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.InformationOperationsReportPdu -Sent packet #72, DisPduType 72 ATTRIBUTE (packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AttributePdu +Sent packet # 1, edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE(packet.getLength()=144) of type edu.nps.moves.dis7.pdus.EntityStatePdu +Sent packet # 2, edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE(packet.getLength()= 96) of type edu.nps.moves.dis7.pdus.FirePdu +Sent packet # 3, edu.nps.moves.dis7.enumerations.DisPduType 03 DETONATION(packet.getLength()=104) of type edu.nps.moves.dis7.pdus.DetonationPdu +Sent packet # 4, edu.nps.moves.dis7.enumerations.DisPduType 04 COLLISION(packet.getLength()= 60) of type edu.nps.moves.dis7.pdus.CollisionPdu +Sent packet # 5, edu.nps.moves.dis7.enumerations.DisPduType 05 SERVICE_REQUEST(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ServiceRequestPdu +Sent packet # 6, edu.nps.moves.dis7.enumerations.DisPduType 06 RESUPPLY_OFFER(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ResupplyOfferPdu +Sent packet # 7, edu.nps.moves.dis7.enumerations.DisPduType 07 RESUPPLY_RECEIVED(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ResupplyReceivedPdu +Sent packet # 8, edu.nps.moves.dis7.enumerations.DisPduType 08 RESUPPLY_CANCEL(packet.getLength()= 24) of type edu.nps.moves.dis7.pdus.ResupplyCancelPdu +Sent packet # 9, edu.nps.moves.dis7.enumerations.DisPduType 09 REPAIR_COMPLETE(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RepairCompletePdu +Sent packet #10, edu.nps.moves.dis7.enumerations.DisPduType 10 REPAIR_RESPONSE(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RepairResponsePdu +Sent packet #11, edu.nps.moves.dis7.enumerations.DisPduType 11 CREATE_ENTITY(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.CreateEntityPdu +Sent packet #12, edu.nps.moves.dis7.enumerations.DisPduType 12 REMOVE_ENTITY(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.RemoveEntityPdu +Sent packet #13, edu.nps.moves.dis7.enumerations.DisPduType 13 START_RESUME(packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.StartResumePdu +Sent packet #14, edu.nps.moves.dis7.enumerations.DisPduType 14 STOP_FREEZE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.StopFreezePdu +Sent packet #15, edu.nps.moves.dis7.enumerations.DisPduType 15 ACKNOWLEDGE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AcknowledgePdu +Sent packet #16, edu.nps.moves.dis7.enumerations.DisPduType 16 ACTION_REQUEST(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionRequestPdu +Sent packet #17, edu.nps.moves.dis7.enumerations.DisPduType 17 ACTION_RESPONSE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionResponsePdu +Sent packet #18, edu.nps.moves.dis7.enumerations.DisPduType 18 DATA_QUERY(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataQueryPdu +Sent packet #19, edu.nps.moves.dis7.enumerations.DisPduType 19 SET_DATA(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetDataPdu +Sent packet #20, edu.nps.moves.dis7.enumerations.DisPduType 20 DATA(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataPdu +Sent packet #21, edu.nps.moves.dis7.enumerations.DisPduType 21 EVENT_REPORT(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.EventReportPdu +Sent packet #22, edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT(packet.getLength()=112) of type edu.nps.moves.dis7.pdus.CommentPdu +Sent packet #23, edu.nps.moves.dis7.enumerations.DisPduType 23 ELECTROMAGNETIC_EMISSION(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.ElectromagneticEmissionPdu +Sent packet #24, edu.nps.moves.dis7.enumerations.DisPduType 24 DESIGNATOR(packet.getLength()= 88) of type edu.nps.moves.dis7.pdus.DesignatorPdu +Sent packet #25, edu.nps.moves.dis7.enumerations.DisPduType 25 TRANSMITTER(packet.getLength()=106) of type edu.nps.moves.dis7.pdus.TransmitterPdu +Sent packet #26, edu.nps.moves.dis7.enumerations.DisPduType 26 SIGNAL(packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.SignalPdu +Sent packet #27, edu.nps.moves.dis7.enumerations.DisPduType 27 RECEIVER(packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.ReceiverPdu +Sent packet #28, edu.nps.moves.dis7.enumerations.DisPduType 28 IDENTIFICATION_FRIEND_OR_FOE(packet.getLength()= 60) of type edu.nps.moves.dis7.pdus.IdentificationFriendOrFoePdu +Sent packet #29, edu.nps.moves.dis7.enumerations.DisPduType 29 UNDERWATER_ACOUSTIC(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.UnderwaterAcousticPdu +Sent packet #30, edu.nps.moves.dis7.enumerations.DisPduType 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE(packet.getLength()= 28) of type edu.nps.moves.dis7.pdus.SupplementalEmissionEntityStatePdu +Sent packet #31, edu.nps.moves.dis7.enumerations.DisPduType 31 INTERCOM_SIGNAL(packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.IntercomSignalPdu +Sent packet #32, edu.nps.moves.dis7.enumerations.DisPduType 32 INTERCOM_CONTROL(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.IntercomControlPdu +Sent packet #33, edu.nps.moves.dis7.enumerations.DisPduType 33 AGGREGATE_STATE(packet.getLength()=136) of type edu.nps.moves.dis7.pdus.AggregateStatePdu +Sent packet #34, edu.nps.moves.dis7.enumerations.DisPduType 34 ISGROUPOF(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.IsGroupOfPdu +Sent packet #35, edu.nps.moves.dis7.enumerations.DisPduType 35 TRANSFER_OWNERSHIP(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.TransferOwnershipPdu +Sent packet #36, edu.nps.moves.dis7.enumerations.DisPduType 36 ISPARTOF(packet.getLength()= 52) of type edu.nps.moves.dis7.pdus.IsPartOfPdu +Sent packet #37, edu.nps.moves.dis7.enumerations.DisPduType 37 MINEFIELD_STATE(packet.getLength()= 72) of type edu.nps.moves.dis7.pdus.MinefieldStatePdu +Sent packet #38, edu.nps.moves.dis7.enumerations.DisPduType 38 MINEFIELD_QUERY(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.MinefieldQueryPdu +Sent packet #39, edu.nps.moves.dis7.enumerations.DisPduType 39 MINEFIELD_DATA(packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.MinefieldDataPdu +Sent packet #40, edu.nps.moves.dis7.enumerations.DisPduType 40 MINEFIELD_RESPONSE_NACK(packet.getLength()= 26) of type edu.nps.moves.dis7.pdus.MinefieldResponseNACKPdu +Sent packet #41, edu.nps.moves.dis7.enumerations.DisPduType 41 ENVIRONMENTAL_PROCESS(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.EnvironmentalProcessPdu +Sent packet #42, edu.nps.moves.dis7.enumerations.DisPduType 42 GRIDDED_DATA(packet.getLength()= 64) of type edu.nps.moves.dis7.pdus.GriddedDataPdu +Sent packet #43, edu.nps.moves.dis7.enumerations.DisPduType 43 POINT_OBJECT_STATE(packet.getLength()= 91) of type edu.nps.moves.dis7.pdus.PointObjectStatePdu +Sent packet #44, edu.nps.moves.dis7.enumerations.DisPduType 44 LINEAR_OBJECT_STATE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.LinearObjectStatePdu +Sent packet #45, edu.nps.moves.dis7.enumerations.DisPduType 45 AREAL_OBJECT_STATE(packet.getLength()= 49) of type edu.nps.moves.dis7.pdus.ArealObjectStatePdu +Sent packet #46, edu.nps.moves.dis7.enumerations.DisPduType 46 TIME_SPACE_POSITION_INFORMATION(packet.getLength()= 54) of type edu.nps.moves.dis7.pdus.TimeSpacePositionInformationPdu +Sent packet #47, edu.nps.moves.dis7.enumerations.DisPduType 47 APPEARANCE(packet.getLength()= 67) of type edu.nps.moves.dis7.pdus.AppearancePdu +Sent packet #48, edu.nps.moves.dis7.enumerations.DisPduType 48 ARTICULATED_PARTS(packet.getLength()= 17) of type edu.nps.moves.dis7.pdus.ArticulatedPartsPdu +Sent packet #49, edu.nps.moves.dis7.enumerations.DisPduType 49 LIVE_ENTITY_FIRE(packet.getLength()= 67) of type edu.nps.moves.dis7.pdus.LiveEntityFirePdu +Sent packet #50, edu.nps.moves.dis7.enumerations.DisPduType 50 LIVE_ENTITY_DETONATION(packet.getLength()= 79) of type edu.nps.moves.dis7.pdus.LiveEntityDetonationPdu +Sent packet #51, edu.nps.moves.dis7.enumerations.DisPduType 51 CREATE_ENTITY_RELIABLE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.CreateEntityReliablePdu +Sent packet #52, edu.nps.moves.dis7.enumerations.DisPduType 52 REMOVE_ENTITY_RELIABLE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.RemoveEntityReliablePdu +Sent packet #53, edu.nps.moves.dis7.enumerations.DisPduType 53 START_RESUME_RELIABLE(packet.getLength()= 48) of type edu.nps.moves.dis7.pdus.StartResumeReliablePdu +Sent packet #54, edu.nps.moves.dis7.enumerations.DisPduType 54 STOP_FREEZE_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.StopFreezeReliablePdu +Sent packet #55, edu.nps.moves.dis7.enumerations.DisPduType 55 ACKNOWLEDGE_RELIABLE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AcknowledgeReliablePdu +Sent packet #56, edu.nps.moves.dis7.enumerations.DisPduType 56 ACTION_REQUEST_RELIABLE(packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.ActionRequestReliablePdu +Sent packet #57, edu.nps.moves.dis7.enumerations.DisPduType 57 ACTION_RESPONSE_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.ActionResponseReliablePdu +Sent packet #58, edu.nps.moves.dis7.enumerations.DisPduType 58 DATA_QUERY_RELIABLE(packet.getLength()= 44) of type edu.nps.moves.dis7.pdus.DataQueryReliablePdu +Sent packet #59, edu.nps.moves.dis7.enumerations.DisPduType 59 SET_DATA_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetDataReliablePdu +Sent packet #60, edu.nps.moves.dis7.enumerations.DisPduType 60 DATA_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.DataReliablePdu +Sent packet #61, edu.nps.moves.dis7.enumerations.DisPduType 61 EVENT_REPORT_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.EventReportReliablePdu +Sent packet #62, edu.nps.moves.dis7.enumerations.DisPduType 62 COMMENT_RELIABLE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.CommentReliablePdu +Sent packet #63, edu.nps.moves.dis7.enumerations.DisPduType 63 RECORD_RELIABLE(packet.getLength()= 36) of type edu.nps.moves.dis7.pdus.RecordReliablePdu +Sent packet #64, edu.nps.moves.dis7.enumerations.DisPduType 64 SET_RECORD_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.SetRecordReliablePdu +Sent packet #65, edu.nps.moves.dis7.enumerations.DisPduType 65 RECORD_QUERY_RELIABLE(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.RecordQueryReliablePdu +Sent packet #66, edu.nps.moves.dis7.enumerations.DisPduType 66 COLLISION_ELASTIC(packet.getLength()=100) of type edu.nps.moves.dis7.pdus.CollisionElasticPdu +Sent packet #67, edu.nps.moves.dis7.enumerations.DisPduType 67 ENTITY_STATE_UPDATE(packet.getLength()= 72) of type edu.nps.moves.dis7.pdus.EntityStateUpdatePdu +Sent packet #68, edu.nps.moves.dis7.enumerations.DisPduType 68 DIRECTED_ENERGY_FIRE(packet.getLength()= 88) of type edu.nps.moves.dis7.pdus.DirectedEnergyFirePdu +Sent packet #69, edu.nps.moves.dis7.enumerations.DisPduType 69 ENTITY_DAMAGE_STATUS(packet.getLength()= 24) of type edu.nps.moves.dis7.pdus.EntityDamageStatusPdu +Sent packet #70, edu.nps.moves.dis7.enumerations.DisPduType 70 INFORMATION_OPERATIONS_ACTION(packet.getLength()= 56) of type edu.nps.moves.dis7.pdus.InformationOperationsActionPdu +Sent packet #71, edu.nps.moves.dis7.enumerations.DisPduType 71 INFORMATION_OPERATIONS_REPORT(packet.getLength()= 40) of type edu.nps.moves.dis7.pdus.InformationOperationsReportPdu +Sent packet #72, edu.nps.moves.dis7.enumerations.DisPduType 72 ATTRIBUTE(packet.getLength()= 32) of type edu.nps.moves.dis7.pdus.AttributePdu OpenDis7Examples.AllPduSender complete, sent 72 PDUs total. -BUILD SUCCESSFUL (total time: 3 seconds) +BUILD SUCCESSFUL (total time: 1 second) diff --git a/examples/src/OpenDis7Examples/EspduReceiver.java b/examples/src/OpenDis7Examples/EspduReceiver.java index 6fd1f1f237e4207e2349a727dd14be3b048e59a8..ab0c16822ae337ef3de122a09683374f50d0495c 100755 --- a/examples/src/OpenDis7Examples/EspduReceiver.java +++ b/examples/src/OpenDis7Examples/EspduReceiver.java @@ -1,12 +1,11 @@ package OpenDis7Examples; +import edu.nps.moves.dis7.pdus.*; +import edu.nps.moves.dis7.utilities.*; import java.io.*; import java.net.*; import java.util.*; -import edu.nps.moves.dis7.pdus.*; -import edu.nps.moves.dis7.utilities.*; - /** * Receives PDUs from the network in IEEE DIS format. * Adapted from OpenDIS library example package edu.nps.moves.examples @@ -42,6 +41,8 @@ public class EspduReceiver InetAddress multicastInetAddress; DatagramPacket packet; PduFactory pduFactory = new PduFactory(); + PduFactory.TimestampStyle timestampStyle = PduFactory.TimestampStyle.YEAR; + pduFactory.setTimestampStyle(timestampStyle); int pduCount = 0; System.out.println(TRACE_PREFIX + "started..."); @@ -79,7 +80,7 @@ public class EspduReceiver { pduCount++; String receiptMessage = String.format("%3s", pduCount) // right justify, 3 characters - + ". received PDU type " + nextPdu.getPduType().getValue() + "=" + nextPdu.getPduType().name() + " " + nextPdu.getClass().getName(); + + ". received PDU type " + nextPdu.getPduType().getValue() + "=" + nextPdu.getPduType().name() + " " + nextPdu.getClass().getSimpleName(); if (nextPdu instanceof EntityStatePdu) { System.out.println(receiptMessage); diff --git a/examples/src/OpenDis7Examples/EspduReceiverLog.txt b/examples/src/OpenDis7Examples/EspduReceiverLog.txt index e1bd18919b9e9283532047d731e6ef061d3025e0..6a1fa9e38caed6fc4e7826c408d98f92d0279139 100644 --- a/examples/src/OpenDis7Examples/EspduReceiverLog.txt +++ b/examples/src/OpenDis7Examples/EspduReceiverLog.txt @@ -1,10 +1,3 @@ -Invocation instructions: -1. run/debug EspduReceiver.java (since sender does not block, first be ready to listen) -2. run/debug EspduSender.java - -Program responses follow for receiver: - -=================================================== 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 @@ -17,93 +10,63 @@ run-single: [OpenDis7Examples.EspduReceiver] listening for PDU packets on 239.1.2.3 port 3000 To quit: stop or kill this process =============== - 1. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 1. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] - 2. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 2. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] =============== - 3. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 3. received PDU type 1=ENTITY_STATE 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 + 4. received PDU type 2=FIRE 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: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] - 6. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu - FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 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 + 5. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] - 10. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 6. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] =============== - 11. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 7. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] - 12. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 8. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] =============== - 13. 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] - 14. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu - FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] -=============== - 15. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 9. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] - 16. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 10. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] =============== - 17. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 11. received PDU type 1=ENTITY_STATE 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 + 12. received PDU type 2=FIRE 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: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] - 20. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu - FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] -=============== - 21. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 13. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] - 22. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 14. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] =============== - 23. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 15. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] - 24. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 16. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707492.9269245286, -4353663.899966802, 3781450.3202754413] =============== - 25. 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] - 26. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu - FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] -=============== - 27. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 17. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] - 28. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 18. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] =============== - 29. received PDU type 1=ENTITY_STATE edu.nps.moves.dis7.pdus.EntityStatePdu + 19. received PDU type 1=ENTITY_STATE EntityStatePdu entityID triplet: [1, 2, 3] Location in DIS coordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] - 30. received PDU type 2=FIRE edu.nps.moves.dis7.pdus.FirePdu + 20. received PDU type 2=FIRE FirePdu FirePdu locationInWorldCoordinates: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] =============== diff --git a/examples/src/OpenDis7Examples/EspduSender.java b/examples/src/OpenDis7Examples/EspduSender.java index c5ca411e1623ff990cdd7753e8054e9d75843859..dbfebb1838d42b0fdfaa6dd82b86e74078bd880a 100644 --- a/examples/src/OpenDis7Examples/EspduSender.java +++ b/examples/src/OpenDis7Examples/EspduSender.java @@ -248,7 +248,7 @@ public class EspduSender // update the timestamp on ALL packets sent. // An alterative approach: actually follow the standard. It's a crazy concept, // but it might just work. - int timestamp = disTime.getDisAbsoluteTimestamp(); + int timestamp = disTime.getCurrentDisAbsoluteTimestamp(); espdu.setTimestamp(timestamp); // Set the position of the entity in the world. DIS uses a cartesian diff --git a/examples/src/OpenDis7Examples/EspduSenderLog.txt b/examples/src/OpenDis7Examples/EspduSenderLog.txt index 326840bfad539fed422d84be88583da8326bbe6c..99c47dbe62c82fdfca40b6c9483afee645fb6b0b 100644 --- a/examples/src/OpenDis7Examples/EspduSenderLog.txt +++ b/examples/src/OpenDis7Examples/EspduSenderLog.txt @@ -1,10 +1,3 @@ -Invocation instructions: -1. run/debug EspduReceiver.java (since sender does not block, first be ready to listen) -2. run/debug EspduSender.java - -Program responses follow for sender: - -=================================================== 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 init: Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\build\built-jar.properties @@ -17,7 +10,7 @@ run-single: [OpenDis7Examples.EspduSender] sending multicast ESPDU packets to 239.1.2.3 port 3000 =============== espdu entityType information: - EntityKind =DisPduType 1 PLATFORM + EntityKind =edu.nps.moves.dis7.enumerations.EntityKind 1 PLATFORM Country =Country 225 UNITED_STATES_OF_AMERICA_USA Domain =Land Category =1 @@ -29,131 +22,61 @@ Create new PDUs latitude, longitude: [36.595517, -121.87706] coordinate conversion: [-2707497.4860692197, -4353661.0646844525, 3781450.3202754413] Espdu #1 entityID=[1,2,3] -FirePdu #1 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.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.159.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.159.255 port 3000 +FirePdu #1 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor munitionType:EntityType entityKind:edu.nps.moves.dis7.enumerations.EntityKind 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 [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 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.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.159.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.159.255 port 3000 +FirePdu #2 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor munitionType:EntityType entityKind:edu.nps.moves.dis7.enumerations.EntityKind 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 [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 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.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.159.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.159.255 port 3000 +FirePdu #3 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor munitionType:EntityType entityKind:edu.nps.moves.dis7.enumerations.EntityKind 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 [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 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.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.159.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.159.255 port 3000 +FirePdu #4 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor munitionType:EntityType entityKind:edu.nps.moves.dis7.enumerations.EntityKind 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 [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 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.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.28.143.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.159.255 port 3000 -[OpenDis7Examples.EspduSender] sending datagram packet [DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.159.255 port 3000 +FirePdu #5 firePdu=[FireMissionIndex=0, descriptor=MunitionDescriptor munitionType:EntityType entityKind:edu.nps.moves.dis7.enumerations.EntityKind 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 [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 127.255.255.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.20.210.244 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE] packet.getLength()=144, to 172.16.0.255 port 3000 +[OpenDis7Examples.EspduSender] sending datagram packet [edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE ] packet.getLength()= 96, to 172.16.0.255 port 3000 =============== [OpenDis7Examples.EspduSender] complete. -BUILD SUCCESSFUL (total time: 10 seconds) +BUILD SUCCESSFUL (total time: 7 seconds) diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java index 53a66b691bd194a1954821fc2f20925ed7d4c472..8e691af4f63ac4d1cefc7dd35439ab284e7870f5 100644 --- a/examples/src/OpenDis7Examples/ExampleSimulationProgram.java +++ b/examples/src/OpenDis7Examples/ExampleSimulationProgram.java @@ -185,6 +185,7 @@ public class ExampleSimulationProgram // class variables PduFactory pduFactory = new PduFactory(); + PduFactory.TimestampStyle timestampStyle = PduFactory.TimestampStyle.YEAR; DisThreadedNetworkInterface disNetworkInterface; DisThreadedNetworkInterface.PduListener pduListener; Pdu receivedPdu; @@ -196,7 +197,7 @@ public class ExampleSimulationProgram */ public ExampleSimulationProgram() { - // Potential constructor is under consideration. Constructor is not currently needed. + pduFactory.setTimestampStyle(timestampStyle); } /** @@ -220,7 +221,6 @@ public class ExampleSimulationProgram { return networkAddress; } - /** * @param newNetworkAddress the networkAddress to set */ @@ -236,7 +236,6 @@ public class ExampleSimulationProgram { return networkPort; } - /** * @param newNetworkPort the networkPort to set */ @@ -244,6 +243,25 @@ public class ExampleSimulationProgram { this.networkPort = newNetworkPort; } + /** + * Get timestampStyle used by PduFactory + * @return current timestampStyle + */ + public PduFactory.TimestampStyle getTimestampStyle() + { + return timestampStyle; + } + /** + * Set timestampStyle used by PduFactory + * @param newTimestampStyle the timestampStyle to set + * @return same object to permit progressive setters + */ + public ExampleSimulationProgram setTimestampStyle(PduFactory.TimestampStyle newTimestampStyle) + { + timestampStyle = newTimestampStyle; + pduFactory.setTimestampStyle(newTimestampStyle); + return this; + } /** * Initialize network interface, choosing best available network interface diff --git a/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt b/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt index bd0ec395cdb0e619d78aea6daccc665322bb4bb1..1837e167901ea29115bcb2d6dfa49bbf40f8ff04 100644 --- a/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt +++ b/examples/src/OpenDis7Examples/ExampleSimulationProgramLog.txt @@ -9,114 +9,114 @@ run-single: [OpenDis7Examples.ExampleSimulationProgram] main() started... [DisThreadedNetworkInterface] using network interface Intel(R) Wi-Fi 6E AX210 160MHz [DisThreadedNetworkInterface] datagramSocket.joinGroup address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete. -DisThreadedNetworkInterface createThreads() receiveThread.isAlive()=true -DisThreadedNetworkInterface createThreads() sendingThread.isAlive()=true +[DisThreadedNetworkInterface] createThreads() receiveThread.isAlive()=true +[DisThreadedNetworkInterface] createThreads() sendingThread.isAlive()=true Network confirmation: address=239.1.2.3 port=3000 Beginning pdu save to directory ./pduLog -Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog50.dislog +Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog4.dislog [DisThreadedNetworkInterface] using network interface Intel(R) Wi-Fi 6E AX210 160MHz [DisThreadedNetworkInterface] datagramSocket.joinGroup address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete. -DisThreadedNetworkInterface createThreads() receiveThread.isAlive()=true -DisThreadedNetworkInterface createThreads() sendingThread.isAlive()=true -[PduRecorder ExampleSimulationProgram pduRecorder] listening to IP address 239.1.2.3 on port 3000 +[DisThreadedNetworkInterface] createThreads() receiveThread.isAlive()=true +[DisThreadedNetworkInterface] createThreads() sendingThread.isAlive()=true +[PduRecorder PduRecorder] listening to IP address 239.1.2.3 on port 3000 ... My simulation just did something, no really... ... [Pausing for 1.0 seconds] sending PDUs for simulation step 1, monitor loopback to confirm sent -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 1] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 1] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 1] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 2] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 2] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 2] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 3] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 3] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 3] DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 1] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 1] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 1] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 2] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 2] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 2] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 3] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 3] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 3] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) *** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 1] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 4] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 4] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 4] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 4] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 4] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 4] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) ... [PDUs successfully sent for this loop] ... My simulation just did something, no really... ... [Pausing for 1.0 seconds] sending PDUs for simulation step 2, monitor loopback to confirm sent -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 5] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 5] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 5] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 6] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 6] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 6] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 7] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 7] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 7] DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 5] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 5] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 5] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 6] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 6] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 6] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 7] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 7] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 7] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) *** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 2] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 8] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 8] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 8] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 8] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 8] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 8] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) ... [PDUs successfully sent for this loop] ... My simulation just did something, no really... ... [Pausing for 1.0 seconds] sending PDUs for simulation step 3, monitor loopback to confirm sent -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 9] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 9] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 9] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 10] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 10] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 10] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 11] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 11] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 11] DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 9] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 9] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 9] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 10] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 10] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 10] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 11] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 11] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 11] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) *** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 3] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 12] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 12] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 12] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 12] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 12] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 12] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) ... [PDUs successfully sent for this loop] ... My simulation just did something, no really... ... [Pausing for 1.0 seconds] sending PDUs for simulation step 4, monitor loopback to confirm sent -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 13] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 13] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 13] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 14] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 14] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 14] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 15] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 15] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 15] DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 13] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 13] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 13] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 14] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 14] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 14] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 15] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 15] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 15] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) *** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 4] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 16] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 16] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 16] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 16] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 16] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 16] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) ... [PDUs successfully sent for this loop] ... My simulation just did something, no really... ... [Pausing for 1.0 seconds] sending PDUs for simulation step 5, monitor loopback to confirm sent -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 17] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 17] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 17] DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 18] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 18] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 18] DisPduType 02 FIRE, size 96 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 19] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 19] DisPduType 22 COMMENT, size 104 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 19] DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 17] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 17] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 17] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #1, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 18] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 18] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 18] edu.nps.moves.dis7.enumerations.DisPduType 02 FIRE, size 96 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 19] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 19] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 19] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 104 bytes) *** [Narrative comment sent: APPLICATION_TIMESTEP] [MV3500 ExampleSimulationProgram, runSimulation() loop 5] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 20] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 20] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 20] DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 20] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 20] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 20] edu.nps.moves.dis7.enumerations.DisPduType 01 ENTITY_STATE Entity #2, size 144 bytes) ... [PDUs successfully sent for this loop] -... [Termination condition met, simulationComplete=true] -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 21] DisPduType 22 COMMENT, size 120 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 21] DisPduType 22 COMMENT, size 120 bytes) -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] [receipt 21] DisPduType 22 COMMENT, size 120 bytes) +... [loop termination condition met, simulationComplete=true] +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [sending 21] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 120 bytes) +[DisThreadedNetworkInterface ExampleSimulationProgram pdu looping] [receipt 21] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 120 bytes) +[DisThreadedNetworkInterface PduRecorder] [receipt 21] edu.nps.moves.dis7.enumerations.DisPduType 22 COMMENT, size 120 bytes) *** [Narrative comment sent: COMPLETE_EVENT_REPORT] [MV3500 ExampleSimulationProgram, runSimulation() completed successfully] ... [final CommentPdu successfully sent for simulation] *** setKillSentinelAndInterrupts() killed=true sendingThread.isInterrupted()=false receiveThread.isInterrupted()=true -*** DisThreadedNetworkInterface close(): pdus2send.size()=0 baos.size()=0 dos.size()=0 -[DisThreadedNetworkInterface ExampleSimulationProgram pduRecorder] datagramSocket.leaveGroup address=239.1.2.3 port=3000 isClosed()=true close() complete. +[DisThreadedNetworkInterface PduRecorder] close(): pdus2send.size()=0 baos.size()=0 dos.size()=0 +[DisThreadedNetworkInterface PduRecorder] datagramSocket.leaveGroup address=239.1.2.3 port=3000 isClosed()=true close() complete. *** killThread() status: sendingThread.isAlive()=false sendingThread.isInterrupted()=true *** killThread() status: receiveThread.isAlive()=false receiveThread.isInterrupted()=true *** Thread close status: sendingThread.isAlive()=false receiveThread.isAlive()=false -Closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog50.dislog +PduRecorder.stop() closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog4.dislog [OpenDis7Examples.ExampleSimulationProgram] complete. BUILD SUCCESSFUL (total time: 10 seconds) diff --git a/examples/src/OpenDis7Examples/ExampleTrackInterpolationLog.txt b/examples/src/OpenDis7Examples/ExampleTrackInterpolationLog.txt index 87b9fd90b6e98b4780e8854ebb7d78eb7214ed82..4159df57ab2bc7872aa25cf857cce50719c91e2a 100644 --- a/examples/src/OpenDis7Examples/ExampleTrackInterpolationLog.txt +++ b/examples/src/OpenDis7Examples/ExampleTrackInterpolationLog.txt @@ -13,7 +13,7 @@ run-single: [DisThreadedNetworkInterface] createThreads() sendingThread.isAlive()=true Network confirmation: address=239.1.2.3 port=3000 Beginning pdu save to directory ./pduLog -Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog +Recorder log file open: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog5.dislog [DisThreadedNetworkInterface] using network interface Intel(R) Wi-Fi 6E AX210 160MHz [DisThreadedNetworkInterface] datagramSocket.joinGroup address=239.1.2.3 port=3000 isConnected()=false createDatagramSocket() complete. [DisThreadedNetworkInterface] createThreads() receiveThread.isAlive()=true @@ -74,7 +74,7 @@ pduTrack_1 duration = 42.0 seconds = 0 ticks <meta content='ExampleTrackInterpolation.x3d' name='title'/> <meta content='Conversion of ESPDU track into X3D animation interpolators and LineSet.' name='description'/> <meta content='1 January 2022' name='created'/> - <meta content='6 January 2022' name='modified'/> + <meta content='9 January 2022' name='modified'/> <meta content='Don Brutzman' name='creator'/> <meta content='https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/examples/src/OpenDis7Examples/ExampleTrackInterpolation.x3d' name='identifier'/> <meta content='PduTrack utility, open-dis7-java Library https://github.com/open-dis/open-dis7-java' name='generator'/> @@ -246,6 +246,6 @@ pduTrack_1 duration = 42.0 seconds = 0 ticks *** killThread() status: receiveThread.isAlive()=false receiveThread.isInterrupted()=true *** Thread close status: sendingThread.isAlive()=false receiveThread.isAlive()=false -PduRecorder.stop() closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog.dislog +PduRecorder.stop() closing recorder log file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\examples\pduLog\PduCaptureLog5.dislog [OpenDis7Examples.ExampleTrackInterpolation] complete. BUILD SUCCESSFUL (total time: 12 seconds) diff --git a/examples/src/OpenDis7Examples/PduTrack.java b/examples/src/OpenDis7Examples/PduTrack.java index 86514c6e06d3f4483573a86fa46ff71b3aa6adee..64a7e5bbcb84f90b323170f8b3f8eee382888f2b 100644 --- a/examples/src/OpenDis7Examples/PduTrack.java +++ b/examples/src/OpenDis7Examples/PduTrack.java @@ -38,6 +38,7 @@ package OpenDis7Examples; import edu.nps.moves.dis7.entities.swe.platform.surface._001Poseidon; import edu.nps.moves.dis7.enumerations.DisPduType; import edu.nps.moves.dis7.enumerations.ForceID; +import edu.nps.moves.dis7.pdus.DisTime; import edu.nps.moves.dis7.pdus.EntityID; import edu.nps.moves.dis7.pdus.EntityStatePdu; import edu.nps.moves.dis7.pdus.EulerAngles; @@ -84,16 +85,27 @@ public class PduTrack private boolean addLineBreaksWithinKeyValues = false; protected PduFactory pduFactory = new PduFactory(); + PduFactory.TimestampStyle timestampStyle = PduFactory.TimestampStyle.IEEE_ABSOLUTE; protected ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); protected DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream); private String TRACE_PREFIX = "[" + (PduTrack.class.getSimpleName()) + "] "; /** - * Constructor design goal: additional built-in initialization conveniences can go here + * Constructor for PduTrack */ public PduTrack() { - // Potential constructor is under consideration. Constructor is not currently needed. + // can place initialization code here + } + + /** + * Set timestampStyle used by PduFactory + * @param newTimestampStyle new value to set + */ + public PduTrack(PduFactory.TimestampStyle newTimestampStyle) + { + timestampStyle = newTimestampStyle; + pduFactory.setTimestampStyle(newTimestampStyle); } /** @@ -115,9 +127,28 @@ public class PduTrack TRACE_PREFIX = "[" + (PduTrack.class.getSimpleName() + " " + descriptor) + "] "; return this; } + /** + * Get timestampStyle used by PduFactory + * @return current timestampStyle + */ + public PduFactory.TimestampStyle getTimestampStyle() + { + return timestampStyle; + } + /** + * Set timestampStyle used by PduFactory + * @param newTimestampStyle the timestampStyle to set + * @return same object to permit progressive setters + */ + public PduTrack setTimestampStyle(PduFactory.TimestampStyle newTimestampStyle) + { + this.timestampStyle = newTimestampStyle; + pduFactory.setTimestampStyle(newTimestampStyle); + return this; + } /** - * @return the initialLocation + * @return current initialLocation */ public Vector3Double getInitialLocation() { if (initialLocation == null) @@ -128,7 +159,7 @@ public class PduTrack return initialLocation; } /** - * @return the latestLocation + * @return current latestLocation */ public Vector3Double getLatestLocation() { if (latestLocation == null) @@ -153,26 +184,26 @@ public class PduTrack return pduList.get(index); } /** - * @return the pduList + * @return current pduList */ public ArrayList<Pdu> getPduList() { return pduList; } /** - * @return the waypointsList + * @return current waypointsList */ public ArrayList<Vector3Double> getWaypointsList() { return waypointsList; } /** - * @return the eulerAnglesList + * @return current eulerAnglesList */ public ArrayList<EulerAngles> getEulerAnglesList() { return eulerAnglesList; } /** * Time in seconds corresponding to each PDU - * @return the timelineList + * @return current timelineList */ public ArrayList<Float> getTimelineList() { return timelineList; @@ -239,7 +270,7 @@ public class PduTrack /** * Provide DEF value if not defined by program - * @return the x3dTimeSensorDEF + * @return current x3dTimeSensorDEF */ public String getX3dTimeSensorDEF() { if (x3dTimeSensorDEF.isEmpty()) @@ -257,7 +288,7 @@ public class PduTrack /** * Provide DEF value if not defined by program - * @return the x3dPositionInterpolatorDEF + * @return current x3dPositionInterpolatorDEF */ public String getX3dPositionInterpolatorDEF() { if (x3dPositionInterpolatorDEF.isEmpty()) @@ -275,7 +306,7 @@ public class PduTrack /** * Provide DEF value if not defined by program - * @return the x3dOrientationInterpolatorDEF + * @return current x3dOrientationInterpolatorDEF */ public String getX3dOrientationInterpolatorDEF() { if (x3dOrientationInterpolatorDEF.isEmpty()) @@ -520,7 +551,7 @@ public class PduTrack /** * Get name of author used as creator of X3D model - * @return the author + * @return current author */ public String getAuthor() { return author; @@ -539,7 +570,7 @@ public class PduTrack /** * Get name of online url identifier for X3D model - * @return the x3dModelIdentifier + * @return current x3dModelIdentifier */ public String getX3dModelIdentifier() { return x3dModelIdentifier; @@ -560,12 +591,11 @@ public class PduTrack /** * File name for X3D model production - * @return the x3dModelName + * @return current x3dModelName */ public String getX3dModelName() { return x3dModelName; } - /** * File name for X3D model production * @param x3dModelName the x3dModelName to set @@ -579,7 +609,7 @@ public class PduTrack /** * Verbose (but more readable) output of numeric arrays in X3D model - * @return the addLineBreaksWithinKeyValues + * @return current addLineBreaksWithinKeyValues */ public boolean hasAddLineBreaksWithinKeyValues() { return addLineBreaksWithinKeyValues; @@ -707,7 +737,7 @@ public class PduTrack } /** - * @return the wayPointInterval + * @return current wayPointInterval */ public float getDefaultWaypointInterval() { return defaultWaypointInterval; @@ -748,7 +778,6 @@ public class PduTrack public boolean hasInsertCommas() { return insertCommas; } - /** * @param insertCommas the insertCommas value to set */ @@ -798,7 +827,8 @@ public class PduTrack public PduTrack reportPdu(EntityStatePdu anEspdu) { System.out.println ( - String.format("%08d", anEspdu.getTimestamp()) + ", " + + String.format("%08d", anEspdu.getTimestamp()) + " " + + DisTime.timestampToString(anEspdu.getTimestamp()) + ", " + String.format("%s", anEspdu.getMarkingString().trim()) + ", " + "EntityID=(" + anEspdu.getEntityID().getSiteID() + ", " + @@ -833,6 +863,7 @@ public class PduTrack /** Self test to check basic operation, invoked by main() */ + @SuppressWarnings("SleepWhileInLoop") public void selfTest() { final int TOTAL_PDUS = 5; @@ -840,9 +871,9 @@ public class PduTrack PduTrack pduTrack = new PduTrack(); pduTrack.setDescriptor("PduTrack Self Test"); - pduTrack.setDefaultWaypointInterval(1.0f); pduTrack.setAuthor("Don Brutzman"); pduTrack.setX3dModelIdentifier("https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/examples/src/OpenDis7Examples/PduTrackInterpolation.x3d"); + pduTrack.setDefaultWaypointInterval(1.0f); // experimentation with timestamp values EntityID entityID_123 = new EntityID(); entityID_123.setSiteID(1).setApplicationID(2).setEntityID(3); // made-up example ID; @@ -852,7 +883,8 @@ public class PduTrack { // EntityStatePdu espdu = new EntityStatePdu(); EntityStatePdu espdu = pduFactory.makeEntityStatePdu(); // TODO check Pdu.Type - espdu.setTimestamp(i); + espdu.setTimestamp(DisTime.getCurrentDisAbsoluteTimestamp()); // default +// espdu.setTimestamp(DisTime.getCurrentYearTimestamp()); // TODO test espdu.setMarking("ESPDU " + i); espdu.setEntityLocation(i, i, i); espdu.setEntityOrientation(0, (float)(45.0 * Math.PI / 180.0), 0); @@ -861,6 +893,14 @@ public class PduTrack espdu.setEntityType(new _001Poseidon()); // note import statement above pduTrack.addPdu(espdu); // create copy reportPdu(espdu); + try + { + Thread.sleep(100l); + } + catch (InterruptedException ie) + { + System.out.println(TRACE_PREFIX + "exceptional sleep dulay when generating ESPDUs: " + ie.getMessage()); + } } // System.out.println(TRACE_PREFIX + "reversePdus() then sortPdus() to test track operations"); // pduTrack.reversePdus(); // test diff --git a/examples/src/OpenDis7Examples/PduTrackLog.txt b/examples/src/OpenDis7Examples/PduTrackLog.txt index 5c86efe2f0522e1f99b6eb5ce9faca269d54bdba..57b46a804b5cbddabbcede7de272672d9b2ffddd 100644 --- a/examples/src/OpenDis7Examples/PduTrackLog.txt +++ b/examples/src/OpenDis7Examples/PduTrackLog.txt @@ -8,11 +8,11 @@ compile-single: run-single: *** PduTrack main() self test started... [PduTrack main() self test] selfTest() start... -00000000, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) -00000001, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) -00000002, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) -00000003, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) -00000004, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) +-1417703089 06:11:36, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) +-1417549185 06:14:10, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) +-1417419143 06:16:20, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) +-1417287909 06:18:32, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) +-1417156673 06:20:43, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) [PduTrack main() self test] getEspduCount()=5 [PduTrack main() self test] getDefaultWaypointInterval()=1.0 [PduTrack main() self test] getTotalDurationSeconds()=5.0 @@ -20,98 +20,98 @@ run-single: PduTrack pduList marshalling checks = = = = = = = = = = = = = = = = = espdu from pduTrack pduList -00000000, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) -espdu.marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 -espdu.marshal(byteBuffer): 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 -espdu.marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +-1417703089 06:11:36, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) +espdu.marshal() byteArray: 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +espdu.marshal(byteBuffer): 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +espdu.marshal(dataOutputStream): 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 espdu.copyByteBuffer() -00000000, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) +00000000 16:00:00, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) espdu.copyByteBuffer().marshal() byteArray: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(byteBufferCopy): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(dataOutputStream): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyDataOutputStream() -00000000, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) -espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 00, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +-1417703089 06:11:36, ESPDU 0, EntityID=(1, 2, 3) location=( 0.0, 0.0, 0.0) +espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, AB, 7F, 91, 4F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 30, 00, 00, 00, 00 = = = = = = = = = = = = = = = = = espdu from pduTrack pduList -00000001, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) -espdu.marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 -espdu.marshal(byteBuffer): 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 -espdu.marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +-1417549185 06:14:10, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) +espdu.marshal() byteArray: 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +espdu.marshal(byteBuffer): 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +espdu.marshal(dataOutputStream): 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 espdu.copyByteBuffer() -00000000, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) +00000000 16:00:00, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) espdu.copyByteBuffer().marshal() byteArray: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(byteBufferCopy): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(dataOutputStream): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyDataOutputStream() -00000001, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) -espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 01, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +-1417549185 06:14:10, ESPDU 1, EntityID=(1, 2, 3) location=( 1.0, 1.0, 1.0) +espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, AB, 81, EA, 7F, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 3F, F0, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 31, 00, 00, 00, 00 = = = = = = = = = = = = = = = = = espdu from pduTrack pduList -00000002, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) -espdu.marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 -espdu.marshal(byteBuffer): 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 -espdu.marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +-1417419143 06:16:20, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) +espdu.marshal() byteArray: 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +espdu.marshal(byteBuffer): 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +espdu.marshal(dataOutputStream): 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 espdu.copyByteBuffer() -00000000, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) +00000000 16:00:00, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) espdu.copyByteBuffer().marshal() byteArray: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(byteBufferCopy): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(dataOutputStream): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyDataOutputStream() -00000002, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) -espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 02, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +-1417419143 06:16:20, ESPDU 2, EntityID=(1, 2, 3) location=( 2.0, 2.0, 2.0) +espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, AB, 83, E6, 79, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 40, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 32, 00, 00, 00, 00 = = = = = = = = = = = = = = = = = espdu from pduTrack pduList -00000003, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) -espdu.marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 -espdu.marshal(byteBuffer): 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 -espdu.marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +-1417287909 06:18:32, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) +espdu.marshal() byteArray: 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +espdu.marshal(byteBuffer): 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +espdu.marshal(dataOutputStream): 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 espdu.copyByteBuffer() -00000000, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) +00000000 16:00:00, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) espdu.copyByteBuffer().marshal() byteArray: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(byteBufferCopy): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(dataOutputStream): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyDataOutputStream() -00000003, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) -espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 03, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +-1417287909 06:18:32, ESPDU 3, EntityID=(1, 2, 3) location=( 3.0, 3.0, 3.0) +espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, AB, 85, E7, 1B, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 40, 08, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 33, 00, 00, 00, 00 = = = = = = = = = = = = = = = = = espdu from pduTrack pduList -00000004, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) -espdu.marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 -espdu.marshal(byteBuffer): 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 -espdu.marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +-1417156673 06:20:43, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) +espdu.marshal() byteArray: 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +espdu.marshal(byteBuffer): 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +espdu.marshal(dataOutputStream): 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 espdu.copyByteBuffer() -00000000, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) +00000000 16:00:00, , EntityID=(0, 0, 0) location=( 0.0, 0.0, 0.0) espdu.copyByteBuffer().marshal() byteArray: 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(byteBufferCopy): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyByteBuffer().marshal(dataOutputStream): 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 espdu.copyDataOutputStream() -00000004, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) -espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 -espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, 00, 04, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +-1417156673 06:20:43, ESPDU 4, EntityID=(1, 2, 3) location=( 4.0, 4.0, 4.0) +espdu.copyDataOutputStream().marshal() byteArray: 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(byteBufferCopy): 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 +espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, AB, 87, E7, BF, 00, 90, 28, 00, 00, 01, 00, 02, 00, 03, 01, 00, 01, 03, 00, CD, 3E, 02, 01, 00, 00, 00, 00, E1, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 40, 10, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 3F, 49, 0F, DB, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 20, 20, 20, 20, 45, 53, 50, 44, 55, 20, 34, 00, 00, 00, 00 = = = = = = = = = = = = = = = = = ================================= @@ -122,7 +122,7 @@ espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, <meta content='PduTrackInterpolation.x3d' name='title'/> <meta content='Conversion of ESPDU track into X3D animation interpolators and LineSet.' name='description'/> <meta content='1 January 2022' name='created'/> - <meta content='8 January 2022' name='modified'/> + <meta content='9 January 2022' name='modified'/> <meta content='Don Brutzman' name='creator'/> <meta content='https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/examples/src/OpenDis7Examples/PduTrackInterpolation.x3d' name='identifier'/> <meta content='PduTrack utility, open-dis7-java Library https://github.com/open-dis/open-dis7-java' name='generator'/> @@ -179,4 +179,4 @@ espdu.copyDataOutputStream().marshal(dataOutputStream): 07, 01, 01, 01, 00, 00, ================================= [PduTrack main() self test] selfTest() complete. *** PduTrack main() self test complete. -BUILD SUCCESSFUL (total time: 1 second) +BUILD SUCCESSFUL (total time: 2 seconds)