CpuCgMultiDto.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DW5S.DTO
  8. {
  9. /// <summary>
  10. /// 多个时隙的CPU参估参数模型
  11. /// </summary>
  12. public class CpuCgMultiDto
  13. {
  14. /// <summary>
  15. /// 上传后返回的文件名
  16. /// </summary>
  17. public string file1 { get; set; }
  18. /// <summary>
  19. /// 上传后返回的文件名
  20. /// </summary>
  21. public string file2 { get; set; }
  22. /// <summary>
  23. /// 样点位置
  24. /// </summary>
  25. public List<SmpPosition> smpPositions { get; set; } = new List<SmpPosition>();
  26. /// <summary>
  27. /// 采样率(Hz)
  28. /// </summary>
  29. [Range(0, 100e6)]
  30. public double samplingRate { get; set; }
  31. /// <summary>
  32. /// 信号带宽(Hz)
  33. /// </summary>
  34. [Range(0, 100e6)]
  35. public double BandHz { get; set; } = 0;
  36. /// <summary>
  37. /// 时差中心(us)
  38. /// </summary>
  39. public double dtCenter { get; set; }
  40. /// <summary>
  41. /// 时差范围(us)
  42. /// </summary>
  43. [Range(0, 100000d)]
  44. public double dtRange { get; set; }
  45. /// <summary>
  46. /// 频差范围(单位Hz,默认16384)
  47. /// </summary>
  48. public double dfRange { get; set; } = 16384;
  49. /// <summary>
  50. /// 信噪比门限dB
  51. /// </summary>
  52. [Range(10d, 50d)]
  53. public double snrThreshold { get; set; }
  54. /// <summary>
  55. /// 模型参数自定义验证(复杂的验证逻辑在这里面写)
  56. /// </summary>
  57. /// <param name="validationContext"></param>
  58. /// <returns></returns>
  59. public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
  60. {
  61. //if (this.Age<18)
  62. // yield return new ValidationResult("你太年轻了", new[] { nameof(this.Age) });
  63. yield return null;
  64. }
  65. }
  66. /// <summary>
  67. /// 时隙样点信息
  68. /// </summary>
  69. public class SmpPosition
  70. {
  71. /// <summary>
  72. ///
  73. /// </summary>
  74. public SmpPosition() { }
  75. /// <summary>
  76. ///
  77. /// </summary>
  78. /// <param name="smpStart"></param>
  79. /// <param name="smpCount"></param>
  80. public SmpPosition(long smpStart, long smpCount)
  81. {
  82. this.smpStart = smpStart;
  83. this.smpCount = smpCount;
  84. }
  85. /// <summary>
  86. /// 54专用,避免样点转时间出现毫秒级误差
  87. /// </summary>
  88. [Obsolete]
  89. public float TimeSeconds { get; set; }
  90. /// <summary>
  91. /// 开始样点
  92. /// </summary>
  93. [Range(0,long.MaxValue)]
  94. public long smpStart { get; set; }
  95. /// <summary>
  96. /// 样点数
  97. /// </summary>
  98. [Range(0,long.MaxValue)]
  99. public long smpCount { get; set; }
  100. }
  101. }