} // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<EntityStatePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<entityID>" + System.Environment.NewLine);
                _entityID.reflection(sb);
                sb.Append("</entityID>" + System.Environment.NewLine);
                sb.Append("<forceId type=\"byte\">" + _forceId.ToString() + "</forceId> " + System.Environment.NewLine);
                sb.Append("<articulationParameters type=\"byte\">" + _articulationParameters.Count.ToString() + "</articulationParameters> " + System.Environment.NewLine);
                sb.Append("<entityType>" + System.Environment.NewLine);
                _entityType.reflection(sb);
                sb.Append("</entityType>" + System.Environment.NewLine);
                sb.Append("<alternativeEntityType>" + System.Environment.NewLine);
                _alternativeEntityType.reflection(sb);
                sb.Append("</alternativeEntityType>" + System.Environment.NewLine);
                sb.Append("<entityLinearVelocity>" + System.Environment.NewLine);
                _entityLinearVelocity.reflection(sb);
                sb.Append("</entityLinearVelocity>" + System.Environment.NewLine);
                sb.Append("<entityLocation>" + System.Environment.NewLine);
                _entityLocation.reflection(sb);
                sb.Append("</entityLocation>" + System.Environment.NewLine);
                sb.Append("<entityOrientation>" + System.Environment.NewLine);
                _entityOrientation.reflection(sb);
                sb.Append("</entityOrientation>" + System.Environment.NewLine);
                sb.Append("<entityAppearance type=\"uint\">" + _entityAppearance.ToString() + "</entityAppearance> " + System.Environment.NewLine);
                sb.Append("<deadReckoningParameters>" + System.Environment.NewLine);
                _deadReckoningParameters.reflection(sb);
                sb.Append("</deadReckoningParameters>" + System.Environment.NewLine);
                sb.Append("<marking>" + System.Environment.NewLine);
                _marking.reflection(sb);
                sb.Append("</marking>" + System.Environment.NewLine);
                sb.Append("<capabilities type=\"uint\">" + _capabilities.ToString() + "</capabilities> " + System.Environment.NewLine);

                for (int idx = 0; idx < _articulationParameters.Count; idx++)
                {
                    sb.Append("<articulationParameters" + idx.ToString() + " type=\"ArticulationParameter\">" + System.Environment.NewLine);
                    ArticulationParameter aArticulationParameter = (ArticulationParameter)_articulationParameters[idx];
                    aArticulationParameter.reflection(sb);
                    sb.Append("</articulationParameters" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</EntityStatePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<DetonationPdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<munitionID>" + System.Environment.NewLine);
                _munitionID.reflection(sb);
                sb.Append("</munitionID>" + System.Environment.NewLine);
                sb.Append("<eventID>" + System.Environment.NewLine);
                _eventID.reflection(sb);
                sb.Append("</eventID>" + System.Environment.NewLine);
                sb.Append("<velocity>" + System.Environment.NewLine);
                _velocity.reflection(sb);
                sb.Append("</velocity>" + System.Environment.NewLine);
                sb.Append("<locationInWorldCoordinates>" + System.Environment.NewLine);
                _locationInWorldCoordinates.reflection(sb);
                sb.Append("</locationInWorldCoordinates>" + System.Environment.NewLine);
                sb.Append("<burstDescriptor>" + System.Environment.NewLine);
                _burstDescriptor.reflection(sb);
                sb.Append("</burstDescriptor>" + System.Environment.NewLine);
                sb.Append("<locationInEntityCoordinates>" + System.Environment.NewLine);
                _locationInEntityCoordinates.reflection(sb);
                sb.Append("</locationInEntityCoordinates>" + System.Environment.NewLine);
                sb.Append("<detonationResult type=\"byte\">" + _detonationResult.ToString() + "</detonationResult> " + System.Environment.NewLine);
                sb.Append("<articulationParameters type=\"byte\">" + _articulationParameters.Count.ToString() + "</articulationParameters> " + System.Environment.NewLine);
                sb.Append("<pad type=\"short\">" + _pad.ToString() + "</pad> " + System.Environment.NewLine);

                for (int idx = 0; idx < _articulationParameters.Count; idx++)
                {
                    sb.Append("<articulationParameters" + idx.ToString() + " type=\"ArticulationParameter\">" + System.Environment.NewLine);
                    ArticulationParameter aArticulationParameter = (ArticulationParameter)_articulationParameters[idx];
                    aArticulationParameter.reflection(sb);
                    sb.Append("</articulationParameters" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</DetonationPdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<EntityStateUpdatePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<entityID>" + System.Environment.NewLine);
                _entityID.reflection(sb);
                sb.Append("</entityID>" + System.Environment.NewLine);
                sb.Append("<padding1 type=\"byte\">" + _padding1.ToString() + "</padding1> " + System.Environment.NewLine);
                sb.Append("<articulationParameters type=\"byte\">" + _articulationParameters.Count.ToString() + "</articulationParameters> " + System.Environment.NewLine);
                sb.Append("<entityLinearVelocity>" + System.Environment.NewLine);
                _entityLinearVelocity.reflection(sb);
                sb.Append("</entityLinearVelocity>" + System.Environment.NewLine);
                sb.Append("<entityLocation>" + System.Environment.NewLine);
                _entityLocation.reflection(sb);
                sb.Append("</entityLocation>" + System.Environment.NewLine);
                sb.Append("<entityOrientation>" + System.Environment.NewLine);
                _entityOrientation.reflection(sb);
                sb.Append("</entityOrientation>" + System.Environment.NewLine);
                sb.Append("<entityAppearance type=\"uint\">" + _entityAppearance.ToString() + "</entityAppearance> " + System.Environment.NewLine);

                for (int idx = 0; idx < _articulationParameters.Count; idx++)
                {
                    sb.Append("<articulationParameters" + idx.ToString() + " type=\"ArticulationParameter\">" + System.Environment.NewLine);
                    ArticulationParameter aArticulationParameter = (ArticulationParameter)_articulationParameters[idx];
                    aArticulationParameter.reflection(sb);
                    sb.Append("</articulationParameters" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</EntityStateUpdatePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of reflection method
        } // end of unmarshal method

        ///<summary>
        ///This allows for a quick display of PDU data.  The current format is unacceptable and only used for debugging.
        ///This will be modified in the future to provide a better display.  Usage:
        ///pdu.GetType().InvokeMember("reflection", System.Reflection.BindingFlags.InvokeMethod, null, pdu, new object[] { sb });
        ///where pdu is an object representing a single pdu and sb is a StringBuilder.
        ///Note: The supplied Utilities folder contains a method called 'DecodePDU' in the PDUProcessor Class that provides this functionality
        ///</summary>
        new public void reflection(StringBuilder sb)
        {
            sb.Append("<FastEntityStatePdu>" + System.Environment.NewLine);
            base.reflection(sb);
            try
            {
                sb.Append("<site type=\"ushort\">" + _site.ToString() + "</site> " + System.Environment.NewLine);
                sb.Append("<application type=\"ushort\">" + _application.ToString() + "</application> " + System.Environment.NewLine);
                sb.Append("<entity type=\"ushort\">" + _entity.ToString() + "</entity> " + System.Environment.NewLine);
                sb.Append("<forceId type=\"byte\">" + _forceId.ToString() + "</forceId> " + System.Environment.NewLine);
                sb.Append("<articulationParameters type=\"byte\">" + _articulationParameters.Count.ToString() + "</articulationParameters> " + System.Environment.NewLine);
                sb.Append("<entityKind type=\"byte\">" + _entityKind.ToString() + "</entityKind> " + System.Environment.NewLine);
                sb.Append("<domain type=\"byte\">" + _domain.ToString() + "</domain> " + System.Environment.NewLine);
                sb.Append("<country type=\"ushort\">" + _country.ToString() + "</country> " + System.Environment.NewLine);
                sb.Append("<category type=\"byte\">" + _category.ToString() + "</category> " + System.Environment.NewLine);
                sb.Append("<subcategory type=\"byte\">" + _subcategory.ToString() + "</subcategory> " + System.Environment.NewLine);
                sb.Append("<specific type=\"byte\">" + _specific.ToString() + "</specific> " + System.Environment.NewLine);
                sb.Append("<extra type=\"byte\">" + _extra.ToString() + "</extra> " + System.Environment.NewLine);
                sb.Append("<altEntityKind type=\"byte\">" + _altEntityKind.ToString() + "</altEntityKind> " + System.Environment.NewLine);
                sb.Append("<altDomain type=\"byte\">" + _altDomain.ToString() + "</altDomain> " + System.Environment.NewLine);
                sb.Append("<altCountry type=\"ushort\">" + _altCountry.ToString() + "</altCountry> " + System.Environment.NewLine);
                sb.Append("<altCategory type=\"byte\">" + _altCategory.ToString() + "</altCategory> " + System.Environment.NewLine);
                sb.Append("<altSubcategory type=\"byte\">" + _altSubcategory.ToString() + "</altSubcategory> " + System.Environment.NewLine);
                sb.Append("<altSpecific type=\"byte\">" + _altSpecific.ToString() + "</altSpecific> " + System.Environment.NewLine);
                sb.Append("<altExtra type=\"byte\">" + _altExtra.ToString() + "</altExtra> " + System.Environment.NewLine);
                sb.Append("<xVelocity type=\"float\">" + _xVelocity.ToString() + "</xVelocity> " + System.Environment.NewLine);
                sb.Append("<yVelocity type=\"float\">" + _yVelocity.ToString() + "</yVelocity> " + System.Environment.NewLine);
                sb.Append("<zVelocity type=\"float\">" + _zVelocity.ToString() + "</zVelocity> " + System.Environment.NewLine);
                sb.Append("<xLocation type=\"double\">" + _xLocation.ToString() + "</xLocation> " + System.Environment.NewLine);
                sb.Append("<yLocation type=\"double\">" + _yLocation.ToString() + "</yLocation> " + System.Environment.NewLine);
                sb.Append("<zLocation type=\"double\">" + _zLocation.ToString() + "</zLocation> " + System.Environment.NewLine);
                sb.Append("<psi type=\"float\">" + _psi.ToString() + "</psi> " + System.Environment.NewLine);
                sb.Append("<theta type=\"float\">" + _theta.ToString() + "</theta> " + System.Environment.NewLine);
                sb.Append("<phi type=\"float\">" + _phi.ToString() + "</phi> " + System.Environment.NewLine);
                sb.Append("<entityAppearance type=\"uint\">" + _entityAppearance.ToString() + "</entityAppearance> " + System.Environment.NewLine);
                sb.Append("<deadReckoningAlgorithm type=\"byte\">" + _deadReckoningAlgorithm.ToString() + "</deadReckoningAlgorithm> " + System.Environment.NewLine);

                for (int idx = 0; idx < _otherParameters.Length; idx++)
                {
                    sb.Append("<otherParameters" + idx.ToString() + " type=\"byte\">" + _otherParameters[idx] + "</otherParameters" + idx.ToString() + "> " + System.Environment.NewLine);
                } // end of array reflection

                sb.Append("<xAcceleration type=\"float\">" + _xAcceleration.ToString() + "</xAcceleration> " + System.Environment.NewLine);
                sb.Append("<yAcceleration type=\"float\">" + _yAcceleration.ToString() + "</yAcceleration> " + System.Environment.NewLine);
                sb.Append("<zAcceleration type=\"float\">" + _zAcceleration.ToString() + "</zAcceleration> " + System.Environment.NewLine);
                sb.Append("<xAngularVelocity type=\"float\">" + _xAngularVelocity.ToString() + "</xAngularVelocity> " + System.Environment.NewLine);
                sb.Append("<yAngularVelocity type=\"float\">" + _yAngularVelocity.ToString() + "</yAngularVelocity> " + System.Environment.NewLine);
                sb.Append("<zAngularVelocity type=\"float\">" + _zAngularVelocity.ToString() + "</zAngularVelocity> " + System.Environment.NewLine);

                for (int idx = 0; idx < _marking.Length; idx++)
                {
                    sb.Append("<marking" + idx.ToString() + " type=\"byte\">" + _marking[idx] + "</marking" + idx.ToString() + "> " + System.Environment.NewLine);
                } // end of array reflection

                sb.Append("<capabilities type=\"uint\">" + _capabilities.ToString() + "</capabilities> " + System.Environment.NewLine);

                for (int idx = 0; idx < _articulationParameters.Count; idx++)
                {
                    sb.Append("<articulationParameters" + idx.ToString() + " type=\"ArticulationParameter\">" + System.Environment.NewLine);
                    ArticulationParameter aArticulationParameter = (ArticulationParameter)_articulationParameters[idx];
                    aArticulationParameter.reflection(sb);
                    sb.Append("</articulationParameters" + idx.ToString() + ">" + System.Environment.NewLine);
                } // end of list marshalling

                sb.Append("</FastEntityStatePdu>" + System.Environment.NewLine);
            } // end try
            catch (Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        } // end of marshal method