Пример #1
0
        //
        public static float CalDistanceByLite(LiteRange range)
        {
            if (range == null)
            {
                return(float.Epsilon);
            }
            if (range.PeakPosition < 0)
            {
                range.PeakPosition += 160000;
            }
            var distance = (float)(range.PeakPosition * Velocity / 80000.0 + FixedOffset);

            return(distance < 0?0: distance);
        }
Пример #2
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));
     }
 }
Пример #3
0
        public static LiteRange ParsePulseRange(byte[] buffer, bool lite)
        {
            var range = new LiteRange()
            {
                RelativePara1 = BitConverter.ToSingle(buffer, 0),
                RelativePara2 = BitConverter.ToSingle(buffer, 4),
                RecvGain      = BitConverter.ToUInt16(buffer, 8),
                PeakPosition  = BitConverter.ToInt32(buffer, 10),
            };

            if (!lite)
            {
                range.SampleStartTime = BitConverter.ToInt32(buffer, 198);
                range.ID = (byte)BitConverter.ToChar(buffer, 202);
            }
            return(range);
        }