ChannelIdExt.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. using System;
  2. using System.Collections.Generic;
  3. namespace Uestc.Auto6.Dso.ComModel
  4. {
  5. public enum ChannelId
  6. {
  7. C1 = 0, C2, C3, C4, C5, C6, C7, C8,
  8. M1 = 100, M2, M3, M4, M5, M6, M7, M8,
  9. M9, M10, M11, M12, M13, M14, M15, M16,
  10. M17, M18, M19, M20, M21, M22, M23, M24,
  11. M25, M26, M27, M28, M29, M30, M31, M32,
  12. M33, M34, M35, M36, M37, M38, M39, M40,
  13. M41, M42, M43, M44, M45, M46, M47, M48,
  14. R1 = 200, R2, R3, R4, R5, R6, R7, R8,
  15. R9, R10, R11, R12, R13, R14, R15, R16,
  16. B1 = 300, B2,
  17. D1 = 400, D2, D3, D4, D5, D6, D7, D8,
  18. D9, D10, D11, D12, D13, D14, D15, D16,
  19. D17, D18, D19, D20, D21, D22, D23, D24,
  20. D25, D26, D27, D28, D29, D30, D31, D32,
  21. D33, D34, D35, D36, D37, D38, D39, D40,
  22. D41, D42, D43, D44, D45, D46, D47, D48,
  23. D49, D50, D51, D52, D53, D54, D55, D56,
  24. D57, D58, D59, D60, D61, D62, D63, D64,
  25. P1 = 1100, P2, P3, P4, P5, P6, P7, P8,
  26. P9, P10, P11, P12, P13, P14, P15, P16,
  27. AWG1 = 1200, AWG2, AWG3, AWG4,
  28. DVM = 1240,
  29. Ext = 1250, Ext5, AC,
  30. USER = 1300,
  31. RF1 = 1400, RF2, RF3, RF4, RF5, RF6, RF7, RF8, RF,
  32. AVT1 = 1500, AVT2, AVT3, AVT4, AVT5, AVT6, AVT7, AVT8, AVT,
  33. PVT1 = 1600, PVT2, PVT3, PVT4, PVT5, PVT6, PVT7, PVT8, PVT,
  34. PVF1 = 1700, PVF2, PVF3, PVF4, PVF5, PVF6, PVF7, PVF8, PVF,
  35. PGD1 = 1800, PGD2, PGD3, PGD4, PGD5, PGD6, PGD7, PGD8, PGD,
  36. TVF1 = 1900, TVF2, TVF3, TVF4, TVF5, TVF6, TVF7, TVF8, TVF,
  37. FVT1 = 2000, FVT2, FVT3, FVT4, FVT5, FVT6, FVT7, FVT8, FVT,
  38. }
  39. public static class ChannelIdExt
  40. {
  41. static ChannelIdExt()
  42. {
  43. MaxAChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxAChId)]?.ToString() ?? "C4");
  44. MaxMChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxMChId)]?.ToString() ?? "M8");
  45. MaxRChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxRChId)]?.ToString() ?? "R4");
  46. MaxDChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxDChId)]?.ToString() ?? "D16");
  47. MaxBChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxBChId)]?.ToString() ?? "B2");
  48. MaxPChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPChId)]?.ToString() ?? "P8");
  49. MaxAwgId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxAwgId)]?.ToString() ?? "AWG1");
  50. MaxRFChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxRFChId)]?.ToString() ?? "RF");
  51. MaxAVTChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxAVTChId)]?.ToString() ?? "AVT");
  52. MaxPVTChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPVTChId)]?.ToString() ?? "PVT");
  53. MaxPVFChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPVFChId)]?.ToString() ?? "PVF");
  54. MaxPGDChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPGDChId)]?.ToString() ?? "PGD");
  55. MaxTVFChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPGDChId)]?.ToString() ?? "TVF");
  56. MaxFVTChId = Enum.Parse<ChannelId>(AppConfigureHelper.AppSettings[nameof(MaxPGDChId)]?.ToString() ?? "FVT");
  57. AnaChnlNum = MaxAChId - MinAChId + 1;
  58. DigiChnlNum = MaxDChId - MinDChId + 1;
  59. MathChnlNum = MaxMChId - MinMChId + 1;
  60. RefChnlNum = MaxRChId - MinRChId + 1;
  61. BusChnlNum = MaxBChId - MinBChId + 1;
  62. MeasChnlNum = MaxPChId - MinPChId + 1;
  63. AwgNum = MaxAwgId - MinAwgId + 1;
  64. RFChnlNum = MaxRFChId - MinRFChId + 1;
  65. }
  66. public static readonly Int32 AnaChnlNum;
  67. public static readonly Int32 DigiChnlNum;
  68. public static readonly Int32 MathChnlNum;
  69. public static readonly Int32 RefChnlNum;
  70. public static readonly Int32 BusChnlNum;
  71. public static readonly Int32 MeasChnlNum;
  72. public static readonly Int32 AwgNum;
  73. public static readonly Int32 DvmNum = 1;
  74. public static readonly Int32 RFChnlNum;
  75. public static readonly Int32 AVTChnlNum;
  76. public static readonly Int32 PVTChnlNum;
  77. public static readonly Int32 PVFChnlNum;
  78. public static readonly Int32 PGDChnlNum;
  79. public static readonly Int32 TVFChnlNum;
  80. public static readonly Int32 FVTChnlNum;
  81. public static readonly ChannelId MinAChId = ChannelId.C1;
  82. public static readonly ChannelId MaxAChId;
  83. public static Boolean IsAnalog(this ChannelId id) => id >= MinAChId && id <= MaxAChId;
  84. public static IEnumerable<ChannelId> GetAnalogs()
  85. {
  86. for (ChannelId id = MinAChId; id <= MaxAChId; id++)
  87. {
  88. yield return id;
  89. }
  90. //return Enum.GetValues<ChannelId>().Where(id => id.IsAnalog());
  91. }
  92. public static readonly ChannelId MinMChId = ChannelId.M1;
  93. public static readonly ChannelId MaxMChId;
  94. public static Boolean IsMath(this ChannelId id) => id >= MinMChId && id <= MaxMChId;
  95. public static IEnumerable<ChannelId> GetMaths()
  96. {
  97. for (ChannelId id = MinMChId; id <= MaxMChId; id++)
  98. {
  99. yield return id;
  100. }
  101. }
  102. public static readonly ChannelId MinRChId = ChannelId.R1;
  103. public static readonly ChannelId MaxRChId;
  104. public static Boolean IsReference(this ChannelId id) => id >= MinRChId && id <= MaxRChId;
  105. public static IEnumerable<ChannelId> GetReferences()
  106. {
  107. for (ChannelId id = MinRChId; id <= MaxRChId; id++)
  108. {
  109. yield return id;
  110. }
  111. }
  112. public static readonly ChannelId MinDChId = ChannelId.D1;
  113. public static readonly ChannelId MaxDChId;
  114. public static Boolean IsDigital(this ChannelId id) => id >= MinDChId && id <= MaxDChId;
  115. public static IEnumerable<ChannelId> GetDigitals()
  116. {
  117. for (ChannelId id = MinDChId; id <= MaxDChId; id++)
  118. {
  119. yield return id;
  120. }
  121. }
  122. public static readonly ChannelId MinBChId = ChannelId.B1;
  123. public static readonly ChannelId MaxBChId;
  124. public static Boolean IsDecode(this ChannelId id) => id >= MinBChId && id <= MaxBChId;
  125. public static IEnumerable<ChannelId> GetDecodes()
  126. {
  127. for (ChannelId id = MinBChId; id <= MaxBChId; id++)
  128. {
  129. yield return id;
  130. }
  131. }
  132. public static readonly ChannelId MinPChId = ChannelId.P1;
  133. public static readonly ChannelId MaxPChId;
  134. public static Boolean IsMeasure(this ChannelId id) => id >= MinPChId && id <= MaxPChId;
  135. public static IEnumerable<ChannelId> GetMeasures()
  136. {
  137. for (ChannelId id = MinPChId; id <= MaxPChId; id++)
  138. {
  139. yield return id;
  140. }
  141. }
  142. public static readonly ChannelId MinAwgId = ChannelId.AWG1;
  143. public static readonly ChannelId MaxAwgId;
  144. public static Boolean IsAWG(this ChannelId id) => id >= MinAwgId && id <= MaxAwgId;
  145. public static IEnumerable<ChannelId> GetAWGs()
  146. {
  147. for (ChannelId id = MinAwgId; id <= MaxAwgId; id++)
  148. {
  149. yield return id;
  150. }
  151. }
  152. //public static Boolean IsExtTrigger(this ChannelId id) => id >= ChannelId.Ext && id < ChannelId.USER;
  153. public static Boolean IsExtTrigger(this ChannelId id) => id == ChannelId.Ext;
  154. public static IEnumerable<ChannelId> GetTriggerSources()
  155. {
  156. for (ChannelId id = MinAChId; id <= MaxAChId; id++)
  157. {
  158. yield return id;
  159. }
  160. for (ChannelId id = MinDChId; id <= MaxDChId; id++)
  161. {
  162. yield return id;
  163. }
  164. yield return ChannelId.Ext;
  165. }
  166. public static readonly ChannelId MinRFChId = ChannelId.RF1;
  167. public static readonly ChannelId MaxRFChId;
  168. public static Boolean IsRadioFrequency(this ChannelId id) => id >= MinRFChId && id <= MaxRFChId;
  169. public static IEnumerable<ChannelId> GetRadioFrequencies()
  170. {
  171. for (ChannelId id = MinRFChId; id <= MaxRFChId; id++)
  172. yield return id;
  173. }
  174. public static readonly ChannelId MinAVTChId = ChannelId.AVT1;
  175. public static readonly ChannelId MaxAVTChId;
  176. public static Boolean IsAmpVSTime(this ChannelId id) => id >= MinAVTChId && id <= MaxAVTChId;
  177. public static IEnumerable<ChannelId> GetAmpVSTimes()
  178. {
  179. for (ChannelId id = MinAVTChId; id <= MaxAVTChId; id++)
  180. yield return id;
  181. }
  182. public static readonly ChannelId MinPVTChId = ChannelId.PVT1;
  183. public static readonly ChannelId MaxPVTChId;
  184. public static Boolean IsPhaseVSTime(this ChannelId id) => id >= MinPVTChId && id <= MaxPVTChId;
  185. public static IEnumerable<ChannelId> GetPhaseVSTimes()
  186. {
  187. for (ChannelId id = MinPVTChId; id <= MaxPVTChId; id++)
  188. yield return id;
  189. }
  190. public static readonly ChannelId MinPVFChId = ChannelId.PVF1;
  191. public static readonly ChannelId MaxPVFChId;
  192. public static Boolean IsPhaseVSFrequency(this ChannelId id) => id >= MinPVFChId && id <= MaxPVFChId;
  193. public static IEnumerable<ChannelId> GetPhaseVSFrequencies()
  194. {
  195. for (ChannelId id = MinPVFChId; id <= MaxPVFChId; id++)
  196. yield return id;
  197. }
  198. public static readonly ChannelId MinPGDChId = ChannelId.PGD1;
  199. public static readonly ChannelId MaxPGDChId;
  200. public static Boolean IsPhaseGroupDelay(this ChannelId id) => id >= MinPGDChId && id <= MaxPGDChId;
  201. public static IEnumerable<ChannelId> GetPhaseGroupDelaies()
  202. {
  203. for (ChannelId id = MinPGDChId; id <= MaxPGDChId; id++)
  204. yield return id;
  205. }
  206. public static readonly ChannelId MinTVFChId = ChannelId.TVF1;
  207. public static readonly ChannelId MaxTVFChId;
  208. public static Boolean IsTimeVSFrequency(this ChannelId id) => id >= MinTVFChId && id <= MaxTVFChId;
  209. public static IEnumerable<ChannelId> GetTimeVSFrequencies()
  210. {
  211. for (ChannelId id = MinTVFChId; id <= MaxTVFChId; id++)
  212. yield return id;
  213. }
  214. public static readonly ChannelId MinFVTChId = ChannelId.FVT1;
  215. public static readonly ChannelId MaxFVTChId;
  216. public static Boolean IsFrequencyVSTime(this ChannelId id) => id >= MinFVTChId && id <= MaxFVTChId;
  217. public static IEnumerable<ChannelId> GetFrequencyVSTimes()
  218. {
  219. for (ChannelId id = MinFVTChId; id <= MaxFVTChId; id++)
  220. yield return id;
  221. }
  222. }
  223. }