// 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); }
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)); } }
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); }