public new void unmarshal(DataInputStream dis)
        {
            base.unmarshal(dis);

            try
            {
                _radioEntityType.unmarshal(dis);
                _transmitState = dis.readByte();
                _inputSource = dis.readByte();
                _padding1 = dis.readUshort();
                _antennaLocation.unmarshal(dis);
                _relativeAntennaLocation.unmarshal(dis);
                _antennaPatternType = dis.readUshort();
                _antennaPatternCount = dis.readUshort();
                _frequency = dis.readUlong();
                _transmitFrequencyBandwidth = dis.readFloat();
                _power = dis.readFloat();
                _modulationType.unmarshal(dis);
                _cryptoSystem = dis.readUshort();
                _cryptoKeyId = dis.readUshort();
                _modulationParameterCount = dis.readByte();
                _padding2 = dis.readUshort();
                _padding3 = dis.readByte();
                for(int idx = 0; idx < _modulationParameterCount; idx++)
                {
                    Vector3Float anX = new Vector3Float();
                    anX.unmarshal(dis);
                    _modulationParametersList.Add(anX);
                };

                for(int idx = 0; idx < _antennaPatternCount; idx++)
                {
                    Vector3Float anX = new Vector3Float();
                    anX.unmarshal(dis);
                    _antennaPatternList.Add(anX);
                };

            } // end try
            catch(Exception e)
            {
                Trace.WriteLine(e);
                Trace.Flush();
            }
        }