| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Text;
 
- namespace XdCxRhDW.Core.Api
 
- {
 
-     public class CorResult
 
-     {
 
-         /// <summary>
 
-         /// 起始样点
 
-         /// </summary>
 
-         public int Start { get; set; }
 
-         /// <summary>
 
-         /// 样点长度
 
-         /// </summary>
 
-         public int Length { get; set; }
 
-         /// <summary>
 
-         /// 相关时差,单位:us
 
-         /// </summary>
 
-         public double Dto { get; set; }
 
-         /// <summary>
 
-         /// 相关频差:单位:Hz
 
-         /// </summary>
 
-         public double Dfo { get; set; }
 
-         /// <summary>
 
-         /// 相关信噪比,单位:db
 
-         /// </summary>
 
-         public double Snr { get; set; }
 
-         /// <summary>
 
-         /// 计算耗时,毫秒
 
-         /// </summary>
 
-         public double UseTime { get; set; }
 
-         /// <summary>
 
-         /// 是否有效
 
-         /// </summary>
 
-         public bool IsValid { get; set; }
 
-         /// <summary>
 
-         /// 相关峰列表
 
-         /// </summary>
 
-         public List<XgfItem> XgfList { get; set; } = new List<XgfItem>();
 
-         public string Message { get; set; } = string.Empty;
 
-         /// <summary>
 
-         /// 参估结果
 
-         /// </summary>
 
-         public CorResult() { }
 
-         public static CorResult FromLine(string line, double snr)
 
-         {
 
-             if (string.IsNullOrWhiteSpace(line)) throw new ArgumentNullException(nameof(line));
 
-             CorResult corResult = new CorResult();
 
-             var cafItems = line.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
 
-             corResult.Message = line;
 
-             if (cafItems.Length == 0) return corResult;
 
-             int i = 0;
 
-             var cafitem = cafItems[i];
 
-             var resitems = cafitem.Split(',');
 
-             if (resitems.Length != 6) return corResult;
 
-             corResult.Start = int.Parse(resitems[0]);
 
-             corResult.Length = int.Parse(resitems[1]);
 
-             corResult.Dto = double.Parse(resitems[2]);
 
-             corResult.Dfo = double.Parse(resitems[3]);
 
-             corResult.Snr = double.Parse(resitems[4]);
 
-             corResult.UseTime = double.Parse(resitems[5]);
 
-             corResult.IsValid = corResult.Snr > snr;
 
-             if (cafItems.Length > 1)
 
-             {
 
-                 for (i = 1; i < cafItems.Length; i++)
 
-                 {
 
-                     resitems = cafItems[i].Split(',');
 
-                     XgfItem xgfItem = new XgfItem()
 
-                     {
 
-                         Dto = double.Parse(resitems[0]),
 
-                         Dfo = double.Parse(resitems[1]),
 
-                         Snr = double.Parse(resitems[2])
 
-                     };
 
-                     corResult.XgfList.Add(xgfItem);
 
-                 }
 
-             }
 
-             return corResult;
 
-         }
 
-         public static CorResult[] FromLines(string result, double snr)
 
-         {
 
-             if (string.IsNullOrWhiteSpace(result))
 
-                 return new CorResult[0];
 
-             var lines = result.Split(new string[] {"\r","\n"}, StringSplitOptions.RemoveEmptyEntries);
 
-             CorResult[] results = new CorResult[lines.Length];
 
-             for (int i = 0; i < lines.Length; i++)
 
-             {
 
-                 results[i] = FromLine(lines[i], snr);
 
-             }
 
-             return results;
 
-         }
 
-     }
 
-     public class XgfItem
 
-     {
 
-         public XgfItem()
 
-         {
 
-         }
 
-         public XgfItem(double dto, double dfo, double snr)
 
-         {
 
-             Dto = dto;
 
-             Dfo = dfo;
 
-             Snr = snr;
 
-         }
 
-         /// <summary>
 
-         /// 时差(us)
 
-         /// </summary>
 
-         public double Dto { get; set; }
 
-         /// <summary>
 
-         /// 频差(Hz)
 
-         /// </summary>
 
-         public double Dfo { get; set; }
 
-         /// <summary>
 
-         /// 信噪比(dB)
 
-         /// </summary>
 
-         public double Snr { get; set; }
 
-     }
 
- }
 
 
  |