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; }
//}
}