AITThrottleValveData.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. using System;
  2. using System.CodeDom;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Globalization;
  6. using System.Linq;
  7. using System.Reflection;
  8. using System.Runtime.Serialization;
  9. using System.Text;
  10. using System.Windows.Data;
  11. using System.Windows.Input;
  12. using Aitex.Core.UI.MVVM;
  13. using MECF.Framework.Common.CommonData;
  14. namespace Aitex.Core.Common.DeviceData
  15. {
  16. [Serializable]
  17. [DataContract]
  18. public enum PressureCtrlMode
  19. {
  20. [EnumMember]
  21. Undefined = 0,
  22. [EnumMember]
  23. TVPressureCtrl = 1,
  24. [EnumMember]
  25. TVPositionCtrl = 2,
  26. [EnumMember]
  27. TVOpen = 3,
  28. [EnumMember]
  29. TVClose = 4,
  30. [EnumMember]
  31. TVCalib = 5,
  32. }
  33. [Serializable]
  34. [DataContract]
  35. public enum PressureControlMode
  36. {
  37. [EnumMember]
  38. Idle = 0,
  39. [EnumMember]
  40. Homing = 1,
  41. [EnumMember]
  42. PositionControl = 2,
  43. [EnumMember]
  44. Hold = 4,
  45. [EnumMember]
  46. Close = 5,
  47. [EnumMember]
  48. Open = 6,
  49. [EnumMember]
  50. Press1Control = 7,
  51. [EnumMember]
  52. Press2Control = 8,
  53. [EnumMember]
  54. SlowVacuum = 16,
  55. }
  56. [DataContract]
  57. [Serializable]
  58. public class AITThrottleValveData : NotifiableItem, IDeviceData
  59. {
  60. [DataMember]
  61. public string Module { get; set; }
  62. [DataMember]
  63. public string DeviceName { get; set; }
  64. [DataMember]
  65. public string DisplayName { get; set; }
  66. [DataMember]
  67. public string DeviceSchematicId { get; set; }
  68. [DataMember]
  69. public string UnitPosition { get; set; }
  70. [DataMember]
  71. public string UnitPressure { get; set; }
  72. [DataMember]
  73. public string Description { get; set; }
  74. /// <summary>
  75. /// 量程
  76. /// </summary>
  77. [DataMember]
  78. public double MaxValuePosition { get; set; }
  79. [DataMember]
  80. public double MaxValuePressure { get; set; }
  81. /// <summary>
  82. /// MFC,PC
  83. /// </summary>
  84. [DataMember]
  85. public string Type { get; set; }
  86. [DataMember]
  87. public double Factor { get; set; }
  88. [DataMember]
  89. public int Mode { get; set; }
  90. [DataMember]
  91. public float PositionFeedback { get; set; }
  92. [DataMember]
  93. public float PressureFeedback { get; set; }
  94. [DataMember]
  95. public float Pressure1Feedback { get; set; }
  96. [DataMember]
  97. public float Pressure2Feedback { get; set; }
  98. [DataMember]
  99. public float PressureSetPoint { get; set; }
  100. [DataMember]
  101. public float PositionSetPoint { get; set; }
  102. [DataMember]
  103. public float SlowExhaustRateSetPoint { get; set; }
  104. [DataMember]
  105. public float SlowTargetPressureSetPoint { get; set; }
  106. [DataMember]
  107. public int State { get; set; }
  108. [DataMember]
  109. public int HomingStatus { get; set; }
  110. [DataMember]
  111. public int SelectedController { get; set; }
  112. [DataMember]
  113. public string AlarmWatchTable
  114. {
  115. get;
  116. set;
  117. }
  118. public string TextMode
  119. {
  120. get
  121. {
  122. switch (Mode)
  123. {
  124. case (int)(PressureCtrlMode.TVPositionCtrl):
  125. return "Position";
  126. case (int)(PressureCtrlMode.TVPressureCtrl):
  127. return "Pressure";
  128. case (int)(PressureCtrlMode.TVOpen):
  129. return "Open";
  130. case (int)(PressureCtrlMode.TVClose):
  131. return "Close";
  132. default:
  133. return "Undefined";
  134. }
  135. }
  136. }
  137. public AITThrottleValveData()
  138. {
  139. DisplayName = "Undefined";
  140. Factor = 1.0;
  141. UnitPosition = "%";
  142. UnitPressure = "mTorr";
  143. Type = "TV";
  144. MaxValuePosition = 100;
  145. MaxValuePressure = 1000;
  146. }
  147. public void Update(IDeviceData data)
  148. {
  149. throw new NotImplementedException();
  150. }
  151. }
  152. public enum AITThrottleValveOperation
  153. {
  154. SetMode,
  155. SetPosition,
  156. SetPressure,
  157. }
  158. public class AITThrottleValvePropertyName
  159. {
  160. public const string TVPositionSetPoint = "TVPositionSetPoint";
  161. public const string TVPosition = "TVPosition";
  162. public const string TVPressureSetPoint = "TVPressureSetPoint";
  163. public const string TVPressure = "TVPressure";
  164. }
  165. public class PressureCtrlModeConverter : IValueConverter
  166. {
  167. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  168. {
  169. if (value == null)
  170. {
  171. return null;
  172. }
  173. var status = (PressureCtrlMode)value;
  174. switch (status)
  175. {
  176. case PressureCtrlMode.TVOpen:
  177. return "Open";
  178. case PressureCtrlMode.TVClose:
  179. return "Close";
  180. case PressureCtrlMode.TVPositionCtrl:
  181. return "Position";
  182. case PressureCtrlMode.TVPressureCtrl:
  183. return "Pressure";
  184. case PressureCtrlMode.TVCalib:
  185. return "Calibration";
  186. case PressureCtrlMode.Undefined:
  187. return "Unknown";
  188. default:
  189. break;
  190. }
  191. return null;
  192. }
  193. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  194. {
  195. throw new NotImplementedException();
  196. }
  197. }
  198. }