ScanFreqResut.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Ips.Library.Basic;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel.DataAnnotations;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Ips.Sps.IfeScans
  9. {
  10. public class ScanFreqResut
  11. {
  12. public ScanFreqResut()
  13. {
  14. }
  15. public ScanFreqResut(double sigFreq, double bandWidth, double snr)
  16. {
  17. SigFreq = sigFreq;
  18. BandWidth = bandWidth;
  19. Snr = snr;
  20. }
  21. [Display(Name = "信号频点(MHz)")]
  22. public double SigFreq { get; set; }
  23. [Display(Name = "信号带宽(kHz)")]
  24. public double BandWidth { get; set; }
  25. [Display(Name = "信噪比(dB)")]
  26. public double Snr { get; set; }
  27. public static List<ScanFreqResut> Parse(double[] sources)
  28. {
  29. List<ScanFreqResut> results = new List<ScanFreqResut>();
  30. if (sources.IsNullOrEmpty()) return results;
  31. for (int i = 0; i < sources.Length; i = i + 3)
  32. {
  33. double sigFreq = sources[i] * 1e-6;
  34. double bandWith = sources[i + 1] * 1e-3;
  35. double snr = sources[i + 2];
  36. ScanFreqResut result = new ScanFreqResut(sigFreq, bandWith, snr);
  37. results.Add(result);
  38. }
  39. results = results.OrderBy(m => m.SigFreq).ToList();
  40. return results;
  41. }
  42. }
  43. }