| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DW5S.DTO{    /// <summary>    /// 多个时隙的CPU参估参数模型    /// </summary>    public class CpuCgMultiDto    {        /// <summary>        /// 上传后返回的文件名        /// </summary>        public string file1 { get; set; }        /// <summary>        /// 上传后返回的文件名        /// </summary>        public string file2 { get; set; }        /// <summary>        /// 样点位置        /// </summary>        public List<SmpPosition> smpPositions { get; set; } = new List<SmpPosition>();        /// <summary>        /// 采样率(Hz)        /// </summary>        [Range(0, 100e6)]        public double samplingRate { get; set; }        /// <summary>        /// 信号带宽(Hz)        /// </summary>        [Range(0, 100e6)]        public double BandHz { get; set; } = 0;        /// <summary>        /// 时差中心(us)        /// </summary>        public double dtCenter { get; set; }        /// <summary>        /// 时差范围(us)        /// </summary>        [Range(0, 100000d)]        public double dtRange { get; set; }        /// <summary>        /// 频差范围(单位Hz,默认16384)        /// </summary>        public double dfRange { get; set; } = 16384;        /// <summary>        /// 信噪比门限dB        /// </summary>        [Range(10d, 50d)]        public double snrThreshold { get; set; }        /// <summary>        /// 模型参数自定义验证(复杂的验证逻辑在这里面写)        /// </summary>        /// <param name="validationContext"></param>        /// <returns></returns>        public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)        {            //if (this.Age<18)            //    yield return new ValidationResult("你太年轻了", new[] { nameof(this.Age) });            yield return null;        }    }    /// <summary>    /// 时隙样点信息    /// </summary>    public class SmpPosition    {        /// <summary>        ///         /// </summary>        public SmpPosition() { }        /// <summary>        ///         /// </summary>        /// <param name="smpStart"></param>        /// <param name="smpCount"></param>        public SmpPosition(long smpStart, long smpCount)        {            this.smpStart = smpStart;            this.smpCount = smpCount;        }        /// <summary>        /// 54专用,避免样点转时间出现毫秒级误差        /// </summary>        [Obsolete]        public float TimeSeconds { get; set; }        /// <summary>        /// 开始样点        /// </summary>        [Range(0,long.MaxValue)]        public long smpStart { get; set; }        /// <summary>        /// 样点数        /// </summary>        [Range(0,long.MaxValue)]        public long smpCount { get; set; }    }}
 |