ProcessUnitDefine.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Runtime.InteropServices;
  6. using System.Runtime.Serialization;
  7. using Venus_Core.Attributes;
  8. namespace Venus_Core
  9. {
  10. /// <summary>
  11. /// 设计概述:
  12. /// 本设计主要目的,为了满足复杂的刻蚀工艺需求(各个工艺参数之间相互关联), 和应对未来不断新增的工艺需求(新的设备、
  13. /// 新的工艺、新的材料等等), 同时又能对现存的Recipe保持最大的兼容
  14. ///
  15. /// 1. 将Process 的每道工艺分解为1个至多个逻辑工艺单元, 每个逻辑工艺单元通过 Class Name 和RT的工艺算法绑定,
  16. /// 同时也和 GUI Recipe Editor 的页面布局绑定。
  17. ///
  18. /// 2. 一个逻辑单元功能调试好, 并且有在客户端使用后, 此逻辑单元想关联的 RT Process 代码和GUI 界面代码,
  19. /// 不允许再修改, 只能增加新的Class 来实现新的工艺需求
  20. ///
  21. /// 3. 通过配置文件里面定义 ProcessUnit Class Name列表, 来定义当前机台支持的工艺功能, 也就是说如果Recipe文件里面保函了
  22. /// 配置文件里面没有列出的工艺单元, 表明本机台不支持此Recipe, 并报警提示用户
  23. /// </summary>
  24. public enum VenusUnits
  25. {
  26. PressureByPressureModeUnit,
  27. TCPUnit,
  28. BiasUnit,
  29. GasControlUnit,
  30. ESCHVUnit,
  31. ProcessKitUnit
  32. }
  33. public enum VenusCleanRecipeUnits
  34. {
  35. PressureByPressureModeUnit,
  36. TCPUnit,
  37. GasControlUnit,
  38. ProcessKitUnit
  39. }
  40. public enum Kepler2300Uints
  41. {
  42. PressureByPressureModeUnit,
  43. TCPUnit,
  44. BiasUnit,
  45. GasControlUnit,
  46. ProcessKitUnit
  47. }
  48. public enum Kepler2300CleanRecipeUints
  49. {
  50. PressureByPressureModeUnit,
  51. TCPUnit,
  52. GasControlUnit,
  53. ProcessKitUnit
  54. }
  55. public enum Kepler2200AUnits
  56. {
  57. Kepler2200PressureByPressureModeUnit,
  58. Kepler2200GasControlUnit,
  59. HeaterUnit,
  60. RFUnit
  61. }
  62. public enum Kepler2200BUnits
  63. {
  64. Kepler2200PressureByPressureModeUnit,
  65. Kepler2200GasControlUnit,
  66. HeaterUnit,
  67. RFBoxUnit,
  68. RFUnit
  69. }
  70. public enum VenusSEUnits
  71. {
  72. PressureByPressureModeUnit,
  73. TCPUnit,
  74. BiasUnit,
  75. VenusSEGasControlUnit,
  76. ESCHVUnit,
  77. ProcessKitUnit
  78. }
  79. public enum VenusDEUnits
  80. {
  81. PressureByPressureModeUnit,
  82. MagnetUnit,
  83. BiasUnit,
  84. VenusDEGasControlUnit,
  85. ESCHVUnit,
  86. ProcessKitUnit
  87. }
  88. public partial class PressureByPressureModeUnit : ProcessUnitBase
  89. {
  90. [IsTolerance]
  91. public string UnitName { get; set; } = "PressureModeUnit";
  92. [IsTolerance]
  93. [JsonConverter(typeof(StringEnumConverter))]
  94. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  95. [IsTolerance]
  96. [CustomName("ToleranceDelayTime(ms)")]
  97. public int ToleranceDelayTime { get; set; } = 3000;
  98. [CustomName("PressureMode")]
  99. public PressureUnitMode PressureUnitMode { get; set; }
  100. public float StartValue { get; set; }
  101. [IsTolerance]
  102. public int StartValueWarningRange { get; set; } = 5;
  103. [IsTolerance]
  104. public int StartValueAlarmRange { get; set; } = 10;
  105. public int ValvePositionPreset { get; set; }
  106. [IsCanConfigIgnore]
  107. public bool EnableRamp { get; set; }
  108. public int HoldTime { get; set; }
  109. public float TargetValue { get; set; }
  110. //public event PropertyChangedEventHandler PropertyChanged;
  111. //public void InvokePropertyChanged(string propertyName)
  112. //{
  113. // if (PropertyChanged != null)
  114. // {
  115. // PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
  116. // }
  117. //}
  118. }
  119. public partial class Kepler2200PressureByPressureModeUnit : ProcessUnitBase
  120. {
  121. [IsTolerance]
  122. public string UnitName { get; set; } = "ControlPressureUnit";
  123. [IsTolerance]
  124. [JsonConverter(typeof(StringEnumConverter))]
  125. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  126. [IsTolerance]
  127. [CustomName("ToleranceDelayTime(ms)")]
  128. public int ToleranceDelayTime { get; set; } = 3000;
  129. [CustomName("PressureMode")]
  130. [JsonConverter(typeof(StringEnumConverter))]
  131. public PressureUnitMode PressureUnitMode { get; set; }
  132. public float StartValue { get; set; }
  133. [IsTolerance]
  134. public int StartValueWarningRange { get; set; } = 5;
  135. [IsTolerance]
  136. public int StartValueAlarmRange { get; set; } = 10;
  137. public int ValvePositionPreset { get; set; }
  138. }
  139. public class HeaterUnit : ProcessUnitBase
  140. {
  141. [IsTolerance]
  142. public string UnitName { get; set; } = "HeaterUnit";
  143. [IsTolerance]
  144. [JsonConverter(typeof(StringEnumConverter))]
  145. public ToleranceMode ToleranceMode { get; set; }
  146. [IsTolerance]
  147. [CustomName("ToleranceDelayTime(ms)")]
  148. public int ToleranceDelayTime { get; set; }
  149. [CustomName("Heater Temperature(°C)")]
  150. public int HeaterTemp { get; set; }
  151. [IsTolerance]
  152. public int HeaterTempWarningRange { get; set; }
  153. [IsTolerance]
  154. public int HeaterTempAlarmRange { get; set; }
  155. [CustomName("Heater Ratio")]
  156. public int HeaterRatio { get; set; }
  157. public Suspect SuspectPosition { get; set; }
  158. //public int PositionOffset { get; set; }
  159. }
  160. public class TCPUnit : ProcessUnitBase
  161. {
  162. private string m_UnitName = "TCPUnit";
  163. [IsTolerance]
  164. public string UnitName
  165. {
  166. get { return m_UnitName; }
  167. set { m_UnitName = value; }
  168. }
  169. [IsTolerance]
  170. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  171. [IsTolerance]
  172. [CustomName("ToleranceDelayTime(ms)")]
  173. public int ToleranceDelayTime { get; set; } = 3000;
  174. [CustomName("RF Power(W)")]
  175. public int RFPower { get; set; }
  176. [IsTolerance]
  177. public int RFPowerWarningRange { get; set; } = 5;
  178. [IsTolerance]
  179. public int RFPowerAlarmRange { get; set; } = 10;
  180. [CustomName("C1(%)")]
  181. public float C1 { get; set; }
  182. [CustomName("C2(%)")]
  183. public float C2 { get; set; }
  184. [IsOnlyRead]
  185. [CustomName("AutoC1(%)")]
  186. public float AutoC1 { get; set; }
  187. [IsOnlyRead]
  188. [CustomName("AutoC2(%)")]
  189. public float AutoC2 { get; set; }
  190. [CustomName("RF Max ReflectedPower(W)")]
  191. public int MaxReflectedPower { get; set; }
  192. [JsonConverter(typeof(StringEnumConverter))]
  193. public MatchWorkMode MatchWorkMode { get; set; }
  194. private bool m_EnableRamp;
  195. [IsCanConfigIgnore]
  196. public bool EnableRamp
  197. {
  198. get { return m_EnableRamp; }
  199. set { m_EnableRamp = value; }
  200. }
  201. //public int StartPower { get; set; }
  202. public int TargetRFPower { get; set; }
  203. }
  204. public class BiasUnit : ProcessUnitBase
  205. {
  206. public string UnitName { get; set; } = "BiasUnit";
  207. [IsTolerance]
  208. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  209. [IsTolerance]
  210. [CustomName("ToleranceDelayTime(ms)")]
  211. public int ToleranceDelayTime { get; set; } = 3000;
  212. //public int RFPower { get; set; }
  213. [IsTolerance]
  214. public int RFPowerWarningRange { get; set; } = 5;
  215. [IsTolerance]
  216. public int RFPowerAlarmRange { get; set; } = 10;
  217. [CustomName("BiasRF Power(W)")]
  218. public int BiasRFPower { get; set; }
  219. [CustomName("BiasC1(%)")]
  220. public float BiasC1 { get; set; }
  221. [CustomName("BiasC2(%)")]
  222. public float BiasC2 { get; set; }
  223. [IsOnlyRead]
  224. [CustomName("AutoBiasC1(%)")]
  225. public float AutoBiasC1 { get; set; }
  226. [CustomName("AutoBiasC2(%)")]
  227. [IsOnlyRead]
  228. public float AutoBiasC2 { get; set; }
  229. [CustomName("BiasRF Max ReflectedPower(W)")]
  230. public int BiasMaxReflectedPower { get; set; }
  231. [JsonConverter(typeof(StringEnumConverter))]
  232. public MatchWorkMode BiasMatchWorkMode { get; set; }
  233. [JsonConverter(typeof(StringEnumConverter))]
  234. public GeneratorMode BiasGeneratorMode { get; set; }
  235. public int PulseRateFreq { get; set; }
  236. public int PulseDutyCycle { get; set; }
  237. [IsCanConfigIgnore]
  238. public bool EnableRamp { get; set; }
  239. [JsonConverter(typeof(StringEnumConverter))]
  240. public TargetMode TargetMode { get; set; }
  241. //public int StartBiasRFPower { get; set; }
  242. public int TargetBiasRFPower { get; set; }
  243. }
  244. public class RFUnit : ProcessUnitBase
  245. {
  246. private string m_UnitName = "RFUnit";
  247. [IsTolerance]
  248. public string UnitName
  249. {
  250. get { return m_UnitName; }
  251. set { m_UnitName = value; }
  252. }
  253. [IsTolerance]
  254. [JsonConverter(typeof(StringEnumConverter))]
  255. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  256. [IsTolerance]
  257. [CustomName("ToleranceDelayTime(ms)")]
  258. public int ToleranceDelayTime { get; set; } = 3000;
  259. [CustomName("RF Power(W)")]
  260. public int RFPower { get; set; }
  261. [IsTolerance]
  262. public int RFPowerWarningRange { get; set; } = 5;
  263. [IsTolerance]
  264. public int RFPowerAlarmRange { get; set; } = 10;
  265. [CustomName("C1(%)")]
  266. public float C1 { get; set; }
  267. [CustomName("C2(%)")]
  268. public float C2 { get; set; }
  269. [IsOnlyRead]
  270. [CustomName("AutoC1(%)")]
  271. public float AutoC1 { get; set; }
  272. [IsOnlyRead]
  273. [CustomName("AutoC2(%)")]
  274. public float AutoC2 { get; set; }
  275. [CustomName("RF Max ReflectedPower(W)")]
  276. public int MaxReflectedPower { get; set; }
  277. [JsonConverter(typeof(StringEnumConverter))]
  278. public MatchWorkMode MatchWorkMode { get; set; }
  279. }
  280. public class RFBoxUnit : ProcessUnitBase
  281. {
  282. [IsTolerance]
  283. public string UnitName { get; set; } = "RFBoxUnit";
  284. [CustomName("RFBox C1(%)")]
  285. public float C1 { get; set; }
  286. }
  287. public class GasControlUnit : ProcessUnitBase
  288. {
  289. public string UnitName { get; set; } = "GasControlUnit";
  290. [IsTolerance]
  291. public ToleranceMode ToleranceMode { get; set; }
  292. [IsTolerance]
  293. [CustomName("ToleranceDelayTime(ms)")]
  294. public int ToleranceDelayTime { get; set; }
  295. public int Gas1 { get; set; }
  296. [IsTolerance]
  297. public int Gas1WarningRange { get; set; }
  298. [IsTolerance]
  299. public int Gas1AlarmRange { get; set; }
  300. public int Gas2 { get; set; }
  301. [IsTolerance]
  302. public int Gas2WarningRange { get; set; }
  303. [IsTolerance]
  304. public int Gas2AlarmRange { get; set; }
  305. public int Gas3 { get; set; }
  306. [IsTolerance]
  307. public int Gas3WarningRange { get; set; }
  308. [IsTolerance]
  309. public int Gas3AlarmRange { get; set; }
  310. public int Gas4 { get; set; }
  311. [IsTolerance]
  312. public int Gas4WarningRange { get; set; }
  313. [IsTolerance]
  314. public int Gas4AlarmRange { get; set; }
  315. public int Gas5 { get; set; }
  316. [IsTolerance]
  317. public int Gas5WarningRange { get; set; }
  318. [IsTolerance]
  319. public int Gas5AlarmRange { get; set; }
  320. public int Gas6 { get; set; }
  321. [IsTolerance]
  322. public int Gas6WarningRange { get; set; }
  323. [IsTolerance]
  324. public int Gas6AlarmRange { get; set; }
  325. public int Gas7 { get; set; }
  326. [IsTolerance]
  327. public int Gas7WarningRange { get; set; }
  328. [IsTolerance]
  329. public int Gas7AlarmRange { get; set; }
  330. public int Gas8 { get; set; }
  331. [IsTolerance]
  332. public int Gas8WarningRange { get; set; }
  333. [IsTolerance]
  334. public int Gas8AlarmRange { get; set; }
  335. [IsCanConfigIgnore]
  336. public bool EnableRamp { get; set; }
  337. public int Gas1Target { get; set; }
  338. public int Gas2Target { get; set; }
  339. public int Gas3Target { get; set; }
  340. public int Gas4Target { get; set; }
  341. public int Gas5Target { get; set; }
  342. public int Gas6Target { get; set; }
  343. public int Gas7Target { get; set; }
  344. public int Gas8Target { get; set; }
  345. public int FlowRatie { get; set; }
  346. }
  347. public class Kepler2200GasControlUnit : ProcessUnitBase
  348. {
  349. [IsTolerance]
  350. public string UnitName { get; set; } = "GasUnit";
  351. [IsTolerance]
  352. public ToleranceMode ToleranceMode { get; set; }
  353. [IsTolerance]
  354. [CustomName("ToleranceDelayTime(ms)")]
  355. public int ToleranceDelayTime { get; set; }
  356. public float Gas1 { get; set; }
  357. [IsTolerance]
  358. public float Gas1WarningRange { get; set; }
  359. [IsTolerance]
  360. public float Gas1AlarmRange { get; set; }
  361. public int Gas2 { get; set; }
  362. [IsTolerance]
  363. public int Gas2WarningRange { get; set; }
  364. [IsTolerance]
  365. public int Gas2AlarmRange { get; set; }
  366. public int Gas3 { get; set; }
  367. [IsTolerance]
  368. public int Gas3WarningRange { get; set; }
  369. [IsTolerance]
  370. public int Gas3AlarmRange { get; set; }
  371. public int Gas4 { get; set; }
  372. [IsTolerance]
  373. public int Gas4WarningRange { get; set; }
  374. [IsTolerance]
  375. public int Gas4AlarmRange { get; set; }
  376. public int Gas5 { get; set; }
  377. [IsTolerance]
  378. public int Gas5WarningRange { get; set; }
  379. [IsTolerance]
  380. public int Gas5AlarmRange { get; set; }
  381. public int Gas6 { get; set; }
  382. [IsTolerance]
  383. public int Gas6WarningRange { get; set; }
  384. [IsTolerance]
  385. public int Gas6AlarmRange { get; set; }
  386. public int Gas7 { get; set; }
  387. [IsTolerance]
  388. public int Gas7WarningRange { get; set; }
  389. [IsTolerance]
  390. public int Gas7AlarmRange { get; set; }
  391. public int Gas8 { get; set; }
  392. [IsTolerance]
  393. public int Gas8WarningRange { get; set; }
  394. [IsTolerance]
  395. public int Gas8AlarmRange { get; set; }
  396. }
  397. public class MagnetUnit : ProcessUnitBase
  398. {
  399. public string UnitName { get; set; } = "Magnet";
  400. [IsTolerance]
  401. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  402. [IsTolerance]
  403. [CustomName("ToleranceDelayTime(ms)")]
  404. public int ToleranceDelayTime { get; set; } = 3000;
  405. public float MagnetIntensity { get; set; }
  406. [IsTolerance]
  407. public int IntensityWarningRange { get; set; } = 5;
  408. public float FieldRatio { get; set; }
  409. public int MagnetWaveform { get; set; }
  410. }
  411. public class VenusSEGasControlUnit : ProcessUnitBase
  412. {
  413. public string UnitName { get; set; } = "SEGasControlUnit";
  414. [IsTolerance]
  415. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  416. [IsTolerance]
  417. [CustomName("ToleranceDelayTime(ms)")]
  418. public int ToleranceDelayTime { get; set; } = 3000;
  419. public float Gas1 { get; set; }
  420. [IsTolerance]
  421. public float Gas1WarningRange { get; set; } = 5;
  422. [IsTolerance]
  423. public float Gas1AlarmRange { get; set; } = 10;
  424. public float Gas2 { get; set; }
  425. [IsTolerance]
  426. public float Gas2WarningRange { get; set; } = 5;
  427. [IsTolerance]
  428. public float Gas2AlarmRange { get; set; } = 10;
  429. public float Gas3 { get; set; }
  430. [IsTolerance]
  431. public float Gas3WarningRange { get; set; } = 5;
  432. [IsTolerance]
  433. public float Gas3AlarmRange { get; set; } = 10;
  434. public float Gas4 { get; set; }
  435. [IsTolerance]
  436. public float Gas4WarningRange { get; set; } = 5;
  437. [IsTolerance]
  438. public float Gas4AlarmRange { get; set; } = 10;
  439. public float Gas5 { get; set; }
  440. [IsTolerance]
  441. public float Gas5WarningRange { get; set; } = 5;
  442. [IsTolerance]
  443. public float Gas5AlarmRange { get; set; } = 10;
  444. public float Gas6 { get; set; }
  445. [IsTolerance]
  446. public float Gas6WarningRange { get; set; } = 5;
  447. [IsTolerance]
  448. public float Gas6AlarmRange { get; set; } = 10;
  449. public float Gas7 { get; set; }
  450. [IsTolerance]
  451. public float Gas7WarningRange { get; set; } = 5;
  452. [IsTolerance]
  453. public float Gas7AlarmRange { get; set; } = 10;
  454. public float Gas8 { get; set; }
  455. [IsTolerance]
  456. public float Gas8WarningRange { get; set; } = 5;
  457. [IsTolerance]
  458. public float Gas8AlarmRange { get; set; } = 10;
  459. public float Gas9 { get; set; }
  460. [IsTolerance]
  461. public float Gas9WarningRange { get; set; } = 5;
  462. [IsTolerance]
  463. public float Gas9AlarmRange { get; set; } = 10;
  464. public float Gas10 { get; set; }
  465. [IsTolerance]
  466. public float Gas10WarningRange { get; set; } = 5;
  467. [IsTolerance]
  468. public float Gas10AlarmRange { get; set; } = 10;
  469. public float Gas11 { get; set; }
  470. [IsTolerance]
  471. public float Gas11WarningRange { get; set; } = 5;
  472. [IsTolerance]
  473. public float Gas11AlarmRange { get; set; } = 10;
  474. public float Gas12 { get; set; }
  475. [IsTolerance]
  476. public float Gas12WarningRange { get; set; } = 5;
  477. [IsTolerance]
  478. public float Gas12AlarmRange { get; set; } = 10;
  479. }
  480. public class VenusDEGasControlUnit : ProcessUnitBase
  481. {
  482. public string UnitName { get; set; } = "DEGasControlUnit";
  483. [IsTolerance]
  484. public ToleranceMode ToleranceMode { get; set; } = ToleranceMode.Value;
  485. [IsTolerance]
  486. [CustomName("ToleranceDelayTime(ms)")]
  487. public int ToleranceDelayTime { get; set; } = 3000;
  488. public float Gas1 { get; set; }
  489. [IsTolerance]
  490. public float Gas1WarningRange { get; set; } = 5;
  491. [IsTolerance]
  492. public float Gas1AlarmRange { get; set; } = 10;
  493. public float Gas2 { get; set; }
  494. [IsTolerance]
  495. public float Gas2WarningRange { get; set; } = 5;
  496. [IsTolerance]
  497. public float Gas2AlarmRange { get; set; } = 10;
  498. public float Gas3 { get; set; }
  499. [IsTolerance]
  500. public float Gas3WarningRange { get; set; } = 5;
  501. [IsTolerance]
  502. public float Gas3AlarmRange { get; set; } = 10;
  503. public float Gas4 { get; set; }
  504. [IsTolerance]
  505. public float Gas4WarningRange { get; set; } = 5;
  506. [IsTolerance]
  507. public float Gas4AlarmRange { get; set; } = 10;
  508. public float Gas5 { get; set; }
  509. [IsTolerance]
  510. public float Gas5WarningRange { get; set; } = 5;
  511. [IsTolerance]
  512. public float Gas5AlarmRange { get; set; } = 10;
  513. public float Gas6 { get; set; }
  514. [IsTolerance]
  515. public float Gas6WarningRange { get; set; } = 5;
  516. [IsTolerance]
  517. public float Gas6AlarmRange { get; set; } = 10;
  518. public float Gas7 { get; set; }
  519. [IsTolerance]
  520. public float Gas7WarningRange { get; set; } = 5;
  521. [IsTolerance]
  522. public float Gas7AlarmRange { get; set; } = 10;
  523. public float Gas8 { get; set; }
  524. [IsTolerance]
  525. public float Gas8WarningRange { get; set; } = 5;
  526. [IsTolerance]
  527. public float Gas8AlarmRange { get; set; } = 10;
  528. public float Gas9 { get; set; }
  529. [IsTolerance]
  530. public float Gas9WarningRange { get; set; } = 5;
  531. [IsTolerance]
  532. public float Gas9AlarmRange { get; set; } = 10;
  533. public float Gas10 { get; set; }
  534. [IsTolerance]
  535. public float Gas10WarningRange { get; set; } = 5;
  536. [IsTolerance]
  537. public float Gas10AlarmRange { get; set; } = 10;
  538. public float Gas11 { get; set; }
  539. [IsTolerance]
  540. public float Gas11WarningRange { get; set; } = 5;
  541. [IsTolerance]
  542. public float Gas11AlarmRange { get; set; } = 10;
  543. public float Gas12 { get; set; }
  544. [IsTolerance]
  545. public float Gas12WarningRange { get; set; } = 5;
  546. [IsTolerance]
  547. public float Gas12AlarmRange { get; set; } = 10;
  548. }
  549. public class ESCHVUnit : ProcessUnitBase
  550. {
  551. public string UnitName { get; set; } = "ESCHVUnit";
  552. [CustomName("BacksideHelium(Torr)")]
  553. public int BacksideHelium { get; set; }
  554. [CustomName("HeCheckDelayTime(ms)")]
  555. public int CheckDelay { get; set; }
  556. public float MinHeFlow { get; set; }
  557. public float MaxHeFlow { get; set; }
  558. public int ESCClampValtage { get; set; }
  559. }
  560. public class ProcessKitUnit : ProcessUnitBase
  561. {
  562. public string UnitName { get; set; } = "ProcessKitUnit";
  563. private MovementPosition m_LiftPinPostion;
  564. [JsonConverter(typeof(StringEnumConverter))]
  565. public MovementPosition LiftPinPostion
  566. {
  567. get { return m_LiftPinPostion; }
  568. set { m_LiftPinPostion = value; }
  569. }
  570. [JsonConverter(typeof(StringEnumConverter))]
  571. public MovementPosition WeprBasrPinPosition { get; set; }
  572. }
  573. }