123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- 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;
- }
- /// <summary>
- /// 信号时间
- /// </summary>
- public DateTime SigTime { get; set; }
- /// <summary>
- /// 站点编码
- /// </summary>
- public string AntCode { get; set; }
- /// <summary>
- /// 卫星编码
- /// </summary>
- public string SatCode { get; set; }
- /// <summary>
- /// 上行频点(MHz)
- /// </summary>
- public double UpFreq { get; set; }
- /// <summary>
- /// 下行频点(MHz)
- /// </summary>
- public double DownFreq { get; set; }
- /// <summary>
- /// 采样率
- /// </summary>
- public int Fs { get; set; }
- /// <summary>
- /// 通道编号
- /// </summary>
- public int ChNum { get; set; }
- /// <summary>
- /// 文件存储路径
- /// </summary>
- 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
- //{
- // /// <summary>
- // /// 开始时间
- // /// </summary>
- // public DateTime StartTime { get; set; }
- // /// <summary>
- // /// 通道号
- // /// </summary>
- // public int ChNum { get; set; }
- // /// <summary>
- // /// 卫星编码
- // /// </summary>
- // public string SatCode { get; set; }
- // /// <summary>
- // /// 上行频点,Hz
- // /// </summary>
- // public long UpFreq { get; set; }
- // /// <summary>
- // /// 下行频点,Hz
- // /// </summary>
- // public long DownFreq { get; set; }
- // /// <summary>
- // /// 信号带宽,Hz
- // /// </summary>
- // public int BandWidth { get; set; }
- // /// <summary>
- // /// 采集卡抽取倍数
- // /// </summary>
- // public int Mutil { get; set; }
- // /// <summary>
- // /// DDC抽取倍数
- // /// </summary>
- // public int DDCMutil { get; set; }
- // /// <summary>
- // /// 采样率
- // /// </summary>
- // public int Fs { get; set; }
- // /// <summary>
- // /// 文件夹
- // /// </summary>
- // public string FolderName { get; set; }
- // /// <summary>
- // /// 文件名
- // /// </summary>
- // public string FileName { get; set; }
- //}
- }
|