using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace Ips.Library.Entity { public class WqAdFileInfo { public WqAdFileInfo() { } public WqAdFileInfo(DateTime sigTime, string satCode, double upFreq, double downFreq, int fs, int chNum, string storePath = "") { SigTime = sigTime; SatCode = satCode; UpFreq = upFreq; DownFreq = downFreq; Fs = fs; ChNum = chNum; StorePath = storePath; } /// /// 信号时间 /// public DateTime SigTime { get; set; } /// /// 站点编码 /// public string AntCode { get; set; } /// /// 卫星编码 /// public string SatCode { get; set; } /// /// 上行频点(MHz) /// public double UpFreq { get; set; } /// /// 下行频点(MHz) /// public double DownFreq { get; set; } /// /// 采样率 /// public int Fs { get; set; } /// /// 通道编号 /// public int ChNum { get; set; } /// /// 文件存储路径 /// public string StorePath { get; set; } = ""; public string FullName { get => Path.Combine(StorePath, FolderName, FileName); } public string FolderName => $"{SigTime:yyyyMMdd_HH}"; public string FileName => $"{SigTime:yyyyMMddHHmmss}_{SatCode}_{UpFreq:F3}MHz_{DownFreq:F3}MHz_C{Fs}_CH{ChNum}.dat"; public override string ToString() { return FullName; } public static Regex DefaultAdFileNameRegex = new Regex(@"^(\d{14})_(.*)_(\d+\.\d+)MHz_(\d+\.\d+)MHz_C(\d+)_CH(\d+)$"); public static WqAdFileInfo Parse(string fileName) { if (string.IsNullOrWhiteSpace(fileName)) return null; fileName = Path.GetFileNameWithoutExtension(fileName); var matchRes = DefaultAdFileNameRegex.Match(fileName); if (!matchRes.Success) return null; var result = new WqAdFileInfo(); int i = 1; result.SigTime = DateTime.ParseExact(matchRes.Groups[i++].Value, "yyyyMMddHHmmss", null); result.SatCode = matchRes.Groups[i++].Value; result.UpFreq = double.Parse(matchRes.Groups[i++].Value); result.DownFreq = double.Parse(matchRes.Groups[i++].Value); result.Fs = int.Parse(matchRes.Groups[i++].Value); result.ChNum = int.Parse(matchRes.Groups[i++].Value); return result; } } //public class AdFileResult //{ // /// // /// 开始时间 // /// // public DateTime StartTime { get; set; } // /// // /// 通道号 // /// // public int ChNum { get; set; } // /// // /// 卫星编码 // /// // public string SatCode { get; set; } // /// // /// 上行频点,Hz // /// // public long UpFreq { get; set; } // /// // /// 下行频点,Hz // /// // public long DownFreq { get; set; } // /// // /// 信号带宽,Hz // /// // public int BandWidth { get; set; } // /// // /// 采集卡抽取倍数 // /// // public int Mutil { get; set; } // /// // /// DDC抽取倍数 // /// // public int DDCMutil { get; set; } // /// // /// 采样率 // /// // public int Fs { get; set; } // /// // /// 文件夹 // /// // public string FolderName { get; set; } // /// // /// 文件名 // /// // public string FileName { get; set; } //} }