TskAdCard.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. using DevExpress.Xpo;
  2. using Ips.Library.Basic;
  3. using Ips.Library.Entity;
  4. using Ips.Sps.Adcs;
  5. using System;
  6. using System.Drawing.Drawing2D;
  7. using System.Runtime.CompilerServices;
  8. namespace Ips.Sps.Tsks
  9. {
  10. public class TskAdCard : XPObject
  11. {
  12. public TskAdCard() : base()
  13. {
  14. }
  15. public TskAdCard(Session session) : base(session)
  16. {
  17. }
  18. public override void AfterConstruction()
  19. {
  20. base.AfterConstruction();
  21. CardType = AdCardType.QFCarder;
  22. TriggerMode = AdTriggerMode.In;
  23. ClockerType = AdClockType.In;
  24. ClockFreq = 100;
  25. DdcFreq = 70;
  26. Mutil = 4;
  27. StorePath = @"e:\data";
  28. }
  29. private Tsk _tsk;
  30. [DisplayName("所属任务")]
  31. [Association]
  32. [MemberDesignTimeVisibility(false)]
  33. public Tsk Tsk
  34. {
  35. get => _tsk;
  36. set => SetPropertyValue(nameof(Tsk), ref _tsk, value);
  37. }
  38. private string _name;
  39. [Size(255)]
  40. [DisplayName("采集卡名称")]
  41. public string Name
  42. {
  43. get => _name;
  44. set => SetPropertyValue(nameof(Name), ref _name, value);
  45. }
  46. private AdCardType _cardType;
  47. [DisplayName("设备厂商")]
  48. [MemberDesignTimeVisibility(false)]
  49. public AdCardType CardType
  50. {
  51. get => _cardType;
  52. set => SetPropertyValue(nameof(CardType), ref _cardType, value);
  53. }
  54. private string _code;
  55. [DisplayName("采集卡编码")]
  56. public string Code
  57. {
  58. get => _code;
  59. set => SetPropertyValue(nameof(Code), ref _code, value);
  60. }
  61. private AdTriggerMode _triggerMode;
  62. [DisplayName("触发模式")]
  63. public AdTriggerMode TriggerMode
  64. {
  65. get => _triggerMode;
  66. set => SetPropertyValue(nameof(TriggerMode), ref _triggerMode, value);
  67. }
  68. private AdClockType _clockType;
  69. [DisplayName("时钟类型")]
  70. public AdClockType ClockerType
  71. {
  72. get => _clockType;
  73. set => SetPropertyValue(nameof(ClockerType), ref _clockType, value);
  74. }
  75. private double _clockFreq;
  76. [DisplayName("时钟频率(MHz)")]
  77. public double ClockFreq
  78. {
  79. get => _clockFreq;
  80. set => SetPropertyValue(nameof(ClockFreq), ref _clockFreq, value);
  81. }
  82. private double _ddcFreq;
  83. [DisplayName("DDC频率(MHz)")]
  84. public double DdcFreq
  85. {
  86. get => _ddcFreq;
  87. set => SetPropertyValue(nameof(DdcFreq), ref _ddcFreq, value);
  88. }
  89. //private bool _isInverse;
  90. //[DisplayName("反谱")]
  91. //public bool IsInverse
  92. //{
  93. // get => _isInverse;
  94. // set => SetPropertyValue(nameof(IsInverse), ref _isInverse, value);
  95. //}
  96. //[DisplayName("是否反谱"), NonPersistent]
  97. //public string IsInverseText
  98. //{
  99. // get => IsInverse ? "是" : "否";
  100. //}
  101. private int _mutil;
  102. [DisplayName("抽取倍数")]
  103. public int Mutil
  104. {
  105. get => _mutil;
  106. set => SetPropertyValue(nameof(Mutil), ref _mutil, value);
  107. }
  108. private string _storePath;
  109. [DisplayName("存储路径")]
  110. [Size(200)]
  111. public string StorePath
  112. {
  113. get => _storePath;
  114. set => SetPropertyValue(nameof(StorePath), ref _storePath, value);
  115. }
  116. [DisplayName("采集通道")]
  117. [Association, Aggregated]
  118. public XPCollection<TskAdChannel> Channels
  119. {
  120. get => GetCollection<TskAdChannel>(nameof(Channels));
  121. }
  122. public static TskAdCard CreateFrom(AdCard adCard, Session session)
  123. {
  124. TskAdCard _card = new TskAdCard(session);
  125. CopyCardProps(_card, adCard);
  126. return _card;
  127. }
  128. public void CopyFrom(AdCard adCard)
  129. {
  130. CopyCardProps(this, adCard);
  131. }
  132. private static void CopyCardProps(TskAdCard _card, AdCard adCard)
  133. {
  134. _card.Name = adCard.Name;
  135. _card.Code = adCard.Code;
  136. _card.CardType = adCard.CardType;
  137. _card.TriggerMode = adCard.TriggerMode;
  138. _card.ClockerType = adCard.ClockerType;
  139. _card.ClockFreq = adCard.ClockFreq;
  140. _card.DdcFreq = adCard.DdcFreq;
  141. _card.Mutil = adCard.Mutil;
  142. _card.StorePath = adCard.StorePath;
  143. _card.Channels.RemoveAll(m => true);
  144. foreach (var adChannel in adCard.Channels.OrderBy(m => m.ChNum))
  145. {
  146. var _adch = new TskAdChannel(_card.Session);
  147. _adch.ChNum = adChannel.ChNum;
  148. _adch.FixCenter = adChannel.FixCenter;
  149. _adch.CenterFreq = adChannel.CenterFreq;
  150. _adch.FrqAddr = adChannel.FrqAddr;
  151. _adch.FrqTurn = adChannel.FrqTurn;
  152. _adch.AntId = adChannel.AntId;
  153. _adch.SatIds = adChannel.SatIds;
  154. _card.Channels.Add(_adch);
  155. }
  156. }
  157. }
  158. }