示例#1
0
 public static float CalDistanceByTele(LiteRange literange, TeleRange telerange)
 {
     if (telerange == null && literange == null)
     {
         return(float.Epsilon);
     }
     if (telerange.Crc == 0)
     {
         var distance = telerange.RecvDelay * Velocity + FixedOffset;
         return(distance < 0 ? 0 : distance);
     }
     else
     {
         return(CalDistanceByLite(literange));
     }
 }
示例#2
0
        public static TeleRange ParseTeleRange(byte[] buffer, UInt16 msglength)
        {
            var range = new TeleRange()
            {
                SamplingStart = BitConverter.ToInt32(buffer, 0),
                RecvDelay     = BitConverter.ToSingle(buffer, 4),
                ModemStyle    = (byte)BitConverter.ToChar(buffer, 8),
                Crc           = BitConverter.ToInt16(buffer, 9),
                Dopple        = BitConverter.ToSingle(buffer, 11),
                //,
                MsgLength = msglength,
                Msg       = new byte[msglength]
            };

            range.ID = (byte)BitConverter.ToChar(buffer, 240);
            Buffer.BlockCopy(buffer, 17, range.Msg, 0, msglength);
            byte[] msghead = new byte[8];
            Buffer.BlockCopy(range.Msg, 0, msghead, 0, 8);
            range.ba = new BitArray(msghead);
            return(range);
        }