WqAdFileInfo.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. using System.Threading.Tasks;
  7. namespace Ips.Library.Entity
  8. {
  9. public class WqAdFileInfo
  10. {
  11. public WqAdFileInfo() { }
  12. public WqAdFileInfo(DateTime sigTime, string satCode, double upFreq, double downFreq, int fs, int chNum, string storePath = "")
  13. {
  14. SigTime = sigTime;
  15. SatCode = satCode;
  16. UpFreq = upFreq;
  17. DownFreq = downFreq;
  18. Fs = fs;
  19. ChNum = chNum;
  20. StorePath = storePath;
  21. }
  22. /// <summary>
  23. /// 信号时间
  24. /// </summary>
  25. public DateTime SigTime { get; set; }
  26. /// <summary>
  27. /// 站点编码
  28. /// </summary>
  29. public string AntCode { get; set; }
  30. /// <summary>
  31. /// 卫星编码
  32. /// </summary>
  33. public string SatCode { get; set; }
  34. /// <summary>
  35. /// 上行频点(MHz)
  36. /// </summary>
  37. public double UpFreq { get; set; }
  38. /// <summary>
  39. /// 下行频点(MHz)
  40. /// </summary>
  41. public double DownFreq { get; set; }
  42. /// <summary>
  43. /// 采样率
  44. /// </summary>
  45. public int Fs { get; set; }
  46. /// <summary>
  47. /// 通道编号
  48. /// </summary>
  49. public int ChNum { get; set; }
  50. /// <summary>
  51. /// 文件存储路径
  52. /// </summary>
  53. public string StorePath { get; set; } = "";
  54. public string FullName
  55. {
  56. get => Path.Combine(StorePath, FolderName, FileName);
  57. }
  58. public string FolderName => $"{SigTime:yyyyMMdd_HH}";
  59. public string FileName => $"{SigTime:yyyyMMddHHmmss}_{SatCode}_{UpFreq:F3}MHz_{DownFreq:F3}MHz_C{Fs}_CH{ChNum}.dat";
  60. public override string ToString()
  61. {
  62. return FullName;
  63. }
  64. public static Regex DefaultAdFileNameRegex = new Regex(@"^(\d{14})_(.*)_(\d+\.\d+)MHz_(\d+\.\d+)MHz_C(\d+)_CH(\d+)$");
  65. public static WqAdFileInfo Parse(string fileName)
  66. {
  67. if (string.IsNullOrWhiteSpace(fileName)) return null;
  68. fileName = Path.GetFileNameWithoutExtension(fileName);
  69. var matchRes = DefaultAdFileNameRegex.Match(fileName);
  70. if (!matchRes.Success) return null;
  71. var result = new WqAdFileInfo();
  72. int i = 1;
  73. result.SigTime = DateTime.ParseExact(matchRes.Groups[i++].Value, "yyyyMMddHHmmss", null);
  74. result.SatCode = matchRes.Groups[i++].Value;
  75. result.UpFreq = double.Parse(matchRes.Groups[i++].Value);
  76. result.DownFreq = double.Parse(matchRes.Groups[i++].Value);
  77. result.Fs = int.Parse(matchRes.Groups[i++].Value);
  78. result.ChNum = int.Parse(matchRes.Groups[i++].Value);
  79. return result;
  80. }
  81. }
  82. //public class AdFileResult
  83. //{
  84. // /// <summary>
  85. // /// 开始时间
  86. // /// </summary>
  87. // public DateTime StartTime { get; set; }
  88. // /// <summary>
  89. // /// 通道号
  90. // /// </summary>
  91. // public int ChNum { get; set; }
  92. // /// <summary>
  93. // /// 卫星编码
  94. // /// </summary>
  95. // public string SatCode { get; set; }
  96. // /// <summary>
  97. // /// 上行频点,Hz
  98. // /// </summary>
  99. // public long UpFreq { get; set; }
  100. // /// <summary>
  101. // /// 下行频点,Hz
  102. // /// </summary>
  103. // public long DownFreq { get; set; }
  104. // /// <summary>
  105. // /// 信号带宽,Hz
  106. // /// </summary>
  107. // public int BandWidth { get; set; }
  108. // /// <summary>
  109. // /// 采集卡抽取倍数
  110. // /// </summary>
  111. // public int Mutil { get; set; }
  112. // /// <summary>
  113. // /// DDC抽取倍数
  114. // /// </summary>
  115. // public int DDCMutil { get; set; }
  116. // /// <summary>
  117. // /// 采样率
  118. // /// </summary>
  119. // public int Fs { get; set; }
  120. // /// <summary>
  121. // /// 文件夹
  122. // /// </summary>
  123. // public string FolderName { get; set; }
  124. // /// <summary>
  125. // /// 文件名
  126. // /// </summary>
  127. // public string FileName { get; set; }
  128. //}
  129. }