RecipeGasPanelSettingViewModel.cs 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626
  1. using Aitex.Core.Common.DeviceData;
  2. using Aitex.Core.UI.ControlDataContext;
  3. using Aitex.Core.UI.MVVM;
  4. using Aitex.Core.Util;
  5. using FurnaceUI.Models;
  6. using MECF.Framework.Common.OperationCenter;
  7. using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using FurnaceUI.Views.Recipes;
  14. using System.Windows.Input;
  15. using System.Windows;
  16. using Aitex.Core.UI.DeviceControl;
  17. using OpenSEMI.ClientBase;
  18. using Aitex.Core.UI.Control;
  19. using MECF.Framework.UI.Core.Control;
  20. using MECF.Framework.UI.Core.ExtendedControls;
  21. using System.Runtime.InteropServices;
  22. namespace FurnaceUI.Views.Editors.SiBCN
  23. {
  24. public class RecipeGasPanelSettingViewModel : FurnaceUIViewModelBase, IDisposable
  25. {
  26. public Window WinOwner { get; set; }
  27. public bool IsCEXHOn { get; set; }
  28. public string CEXHBrush
  29. {
  30. get
  31. {
  32. if (IsCEXHOn)
  33. {
  34. return "Green";
  35. }
  36. return "#FFB0D1F1";
  37. }
  38. }
  39. public bool IsF2ClnOn { get; set; }
  40. public string F2ClnBrush
  41. {
  42. get
  43. {
  44. if (IsF2ClnOn)
  45. {
  46. return "Green";
  47. }
  48. return "#FFB0D1F1";
  49. }
  50. }
  51. public bool IsDEPOOn { get; set; }
  52. public string DEPOBrush
  53. {
  54. get
  55. {
  56. if (IsDEPOOn)
  57. {
  58. return "Green";
  59. }
  60. return "#FFB0D1F1";
  61. }
  62. }
  63. //[Subscription("PM1.IsHFClnOn")]
  64. public bool IsHFClnOn { get; set; }
  65. public string HFClnBrush
  66. {
  67. get
  68. {
  69. if (IsHFClnOn)
  70. {
  71. return "Green";
  72. }
  73. return "#FFB0D1F1";
  74. }
  75. }
  76. [Subscription("PM1.ValveBlowerPowerOn.DeviceData")]
  77. public AITValveData ValveBWR { get; set; }
  78. public string ValveBWRBrush
  79. {
  80. get
  81. {
  82. if (ValveBWR != null && ValveBWR.VirtualFeedback)
  83. {
  84. return "Green";
  85. }
  86. return "#FFB0D1F1";
  87. }
  88. }
  89. //[Subscription("PM1.HTR1Enable")]
  90. public bool IsHTR1Enable { get; set; }
  91. public string HTR1Brush
  92. {
  93. get
  94. {
  95. if (IsHTR1Enable)
  96. {
  97. return "Green";
  98. }
  99. return "#FFB0D1F1";
  100. }
  101. }
  102. //[Subscription("PM1.HTR2Enable")]
  103. public bool IsHTR2Enable { get; set; }
  104. public string HTR2Brush
  105. {
  106. get
  107. {
  108. if (IsHTR2Enable)
  109. {
  110. return "Green";
  111. }
  112. return "#FFB0D1F1";
  113. }
  114. }
  115. public bool IsHTR3Enable { get; set; }
  116. public string HTR3Brush
  117. {
  118. get
  119. {
  120. if (IsHTR3Enable)
  121. {
  122. return "Green";
  123. }
  124. return "#FFB0D1F1";
  125. }
  126. }
  127. [Subscription("PM1.ValveAV91.DeviceData")]
  128. public AITValveData ValveDPR { get; set; }
  129. public string ValveDPRBrush
  130. {
  131. get
  132. {
  133. if (ValveDPR != null && ValveDPR.VirtualFeedback)
  134. {
  135. return "Green";
  136. }
  137. return "#FFB0D1F1";
  138. }
  139. }
  140. [Subscription("PM1.AUCPump.DeviceData")]
  141. public AITValveData AUCPump { get; set; }
  142. public string AUCPumpBrush
  143. {
  144. get
  145. {
  146. if (AUCPump != null && AUCPump.VirtualFeedback)
  147. {
  148. return "Green";
  149. }
  150. return "#FFB0D1F1";
  151. }
  152. }
  153. [Subscription("PM1.BothPump.DeviceData")]
  154. public AITValveData BothPump { get; set; }
  155. public string BothPumpBrush
  156. {
  157. get
  158. {
  159. if (BothPump != null && BothPump.VirtualFeedback)
  160. {
  161. return "Green";
  162. }
  163. return "#FFB0D1F1";
  164. }
  165. }
  166. [Subscription("PM1.AGVPump.DeviceData")]
  167. public AITValveData AGVPump { get; set; }
  168. public string AGVPumpBrush
  169. {
  170. get
  171. {
  172. if (AGVPump != null && AGVPump.VirtualFeedback)
  173. {
  174. return "Green";
  175. }
  176. return "#FFB0D1F1";
  177. }
  178. }
  179. public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
  180. public bool _ismanagerPermission = true;
  181. public bool IsManagerPermission
  182. {
  183. get
  184. {
  185. return _ismanagerPermission;
  186. }
  187. set
  188. {
  189. _ismanagerPermission = value;
  190. NotifyOfPropertyChange("IsManagerPermission");
  191. }
  192. }
  193. #region Valves
  194. [Subscription("PM1.ValveAV1.DeviceData")] public AITValveData ValveAV1 { get; set; }
  195. [Subscription("PM1.ValveAV2.DeviceData")] public AITValveData ValveAV2 { get; set; }
  196. [Subscription("PM1.ValveAV3.DeviceData")] public AITValveData ValveAV3 { get; set; }
  197. [Subscription("PM1.ValveAV4.DeviceData")] public AITValveData ValveAV4 { get; set; }
  198. [Subscription("PM1.ValveAV5.DeviceData")] public AITValveData ValveAV5 { get; set; }
  199. [Subscription("PM1.ValveAV6.DeviceData")] public AITValveData ValveAV6 { get; set; }
  200. [Subscription("PM1.ValveAV7.DeviceData")] public AITValveData ValveAV7 { get; set; }
  201. [Subscription("PM1.ValveAV8.DeviceData")] public AITValveData ValveAV8 { get; set; }
  202. [Subscription("PM1.ValveAV9.DeviceData")] public AITValveData ValveAV9 { get; set; }
  203. [Subscription("PM1.ValveAV10.DeviceData")] public AITValveData ValveAV10 { get; set; }
  204. [Subscription("PM1.ValveAV11.DeviceData")] public AITValveData ValveAV11 { get; set; }
  205. [Subscription("PM1.ValveAV12.DeviceData")] public AITValveData ValveAV12 { get; set; }
  206. [Subscription("PM1.ValveAV13.DeviceData")] public AITValveData ValveAV13 { get; set; }
  207. [Subscription("PM1.ValveAV14.DeviceData")] public AITValveData ValveAV14 { get; set; }
  208. [Subscription("PM1.ValveAV15.DeviceData")] public AITValveData ValveAV15 { get; set; }
  209. [Subscription("PM1.ValveAV16.DeviceData")] public AITValveData ValveAV16 { get; set; }
  210. [Subscription("PM1.ValveAV17.DeviceData")] public AITValveData ValveAV17 { get; set; }
  211. [Subscription("PM1.ValveAV18.DeviceData")] public AITValveData ValveAV18 { get; set; }
  212. [Subscription("PM1.ValveAV19.DeviceData")] public AITValveData ValveAV19 { get; set; }
  213. [Subscription("PM1.ValveAV20.DeviceData")] public AITValveData ValveAV20 { get; set; }
  214. [Subscription("PM1.ValveAV21.DeviceData")] public AITValveData ValveAV21 { get; set; }
  215. [Subscription("PM1.ValveAV22.DeviceData")] public AITValveData ValveAV22 { get; set; }
  216. [Subscription("PM1.ValveAV23.DeviceData")] public AITValveData ValveAV23 { get; set; }
  217. [Subscription("PM1.ValveAV24.DeviceData")] public AITValveData ValveAV24 { get; set; }
  218. [Subscription("PM1.ValveAV25.DeviceData")] public AITValveData ValveAV25 { get; set; }
  219. [Subscription("PM1.ValveAV26.DeviceData")] public AITValveData ValveAV26 { get; set; }
  220. [Subscription("PM1.ValveAV27.DeviceData")] public AITValveData ValveAV27 { get; set; }
  221. [Subscription("PM1.ValveAV28.DeviceData")] public AITValveData ValveAV28 { get; set; }
  222. [Subscription("PM1.ValveAV29.DeviceData")] public AITValveData ValveAV29 { get; set; }
  223. [Subscription("PM1.ValveAV30.DeviceData")] public AITValveData ValveAV30 { get; set; }
  224. [Subscription("PM1.ValveAV31.DeviceData")] public AITValveData ValveAV31 { get; set; }
  225. [Subscription("PM1.ValveAV32.DeviceData")] public AITValveData ValveAV32 { get; set; }
  226. [Subscription("PM1.ValveAV33.DeviceData")] public AITValveData ValveAV33 { get; set; }
  227. [Subscription("PM1.ValveAV34.DeviceData")] public AITValveData ValveAV34 { get; set; }
  228. [Subscription("PM1.ValveAV35.DeviceData")] public AITValveData ValveAV35 { get; set; }
  229. [Subscription("PM1.ValveAV36.DeviceData")] public AITValveData ValveAV36 { get; set; }
  230. [Subscription("PM1.ValveAV37.DeviceData")] public AITValveData ValveAV37 { get; set; }
  231. [Subscription("PM1.ValveAV38.DeviceData")] public AITValveData ValveAV38 { get; set; }
  232. [Subscription("PM1.ValveAV39.DeviceData")] public AITValveData ValveAV39 { get; set; }
  233. [Subscription("PM1.ValveAV40.DeviceData")] public AITValveData ValveAV40 { get; set; }
  234. [Subscription("PM1.ValveAV41.DeviceData")] public AITValveData ValveAV41 { get; set; }
  235. [Subscription("PM1.ValveAV42.DeviceData")] public AITValveData ValveAV42 { get; set; }
  236. [Subscription("PM1.ValveAV43.DeviceData")] public AITValveData ValveAV43 { get; set; }
  237. [Subscription("PM1.ValveAV44.DeviceData")] public AITValveData ValveAV44 { get; set; }
  238. [Subscription("PM1.ValveAV45.DeviceData")] public AITValveData ValveAV45 { get; set; }
  239. [Subscription("PM1.ValveAV46.DeviceData")] public AITValveData ValveAV46 { get; set; }
  240. [Subscription("PM1.ValveAV47.DeviceData")] public AITValveData ValveAV47 { get; set; }
  241. [Subscription("PM1.ValveAV48.DeviceData")] public AITValveData ValveAV48 { get; set; }
  242. [Subscription("PM1.ValveAV49.DeviceData")] public AITValveData ValveAV49 { get; set; }
  243. [Subscription("PM1.ValveAV50.DeviceData")] public AITValveData ValveAV50 { get; set; }
  244. [Subscription("PM1.ValveAV51.DeviceData")] public AITValveData ValveAV51 { get; set; }
  245. [Subscription("PM1.ValveAV52.DeviceData")] public AITValveData ValveAV52 { get; set; }
  246. [Subscription("PM1.ValveAV53.DeviceData")] public AITValveData ValveAV53 { get; set; }
  247. [Subscription("PM1.ValveAV55.DeviceData")] public AITValveData ValveAV55 { get; set; }
  248. [Subscription("PM1.ValveAV60.DeviceData")] public AITValveData ValveAV60 { get; set; }
  249. [Subscription("PM1.ValveAV68.DeviceData")] public AITValveData ValveAV68 { get; set; }
  250. [Subscription("PM1.APC.ModeFeedback")]
  251. public int APCModeFeedback { get; set; }
  252. [Subscription("PM1.ValveAV71.DeviceData")] public AITValveData ValveAV71Data { get; set; }
  253. public AITValveData ValveAV71
  254. {
  255. get
  256. {
  257. return new AITValveData()
  258. {
  259. DeviceName = ValveAV71Data.DeviceName,
  260. DisplayName = ValveAV71Data.DisplayName,
  261. UniqueName = ValveAV71Data.UniqueName,
  262. DefaultValue = ValveAV71Data.DefaultValue,
  263. SetPoint = ValveAV71Data.SetPoint,
  264. Feedback = APCModeFeedback != 5,
  265. VirtualFeedback = ValveAV71Data.VirtualFeedback
  266. };
  267. }
  268. }
  269. [Subscription("PM1.ValveAV72.DeviceData")] public AITValveData ValveAV72 { get; set; }
  270. [Subscription("PM1.ValveAV73.DeviceData")] public AITValveData ValveAV73 { get; set; }
  271. [Subscription("PM1.ValveAV74.DeviceData")] public AITValveData ValveAV74 { get; set; }
  272. [Subscription("PM1.ValveAV75.DeviceData")] public AITValveData ValveAV75 { get; set; }
  273. [Subscription("PM1.ValveAV77.DeviceData")] public AITValveData ValveAV77 { get; set; }
  274. [Subscription("PM1.ValveAV81.DeviceData")] public AITValveData ValveAV81 { get; set; }
  275. [Subscription("PM1.ValveAV82.DeviceData")] public AITValveData ValveAV82 { get; set; }
  276. [Subscription("PM1.ValveAV83.DeviceData")] public AITValveData ValveAV83 { get; set; }
  277. #endregion
  278. [Subscription("PM1.SensorPureN2PressureOK.DeviceData")]
  279. public AITSensorData SensorPureN2PressureOK { get; set; }
  280. [Subscription("PM1.SensorNH3PressureOK.DeviceData")]
  281. public AITSensorData SensorNH3PressureOK { get; set; }
  282. [Subscription("PM1.SensorSiH2CL2PressureOK.DeviceData")]
  283. public AITSensorData SensorSiH2CL2PressureOK { get; set; }
  284. [Subscription("PM1.SensorN2OPressureOK.DeviceData")]
  285. public AITSensorData SensorN2OPressureOK { get; set; }
  286. [Subscription("PM1.SensorPSW1LOW.DeviceData")]
  287. public AITSensorData SensorPSW1LOW { get; set; }
  288. [Subscription("PM1.SensorPSW2LOW.DeviceData")]
  289. public AITSensorData SensorPSW2LOW { get; set; }
  290. [Subscription("PM1.SensorGUExhaustOK.DeviceData")]
  291. public AITSensorData SensorGUExhaustOK { get; set; }
  292. [Subscription("PM1.SensorVAC1.Value")]
  293. public bool VAC1 { get; set; }
  294. [Subscription("PM1.SensorVAC2.Value")]
  295. public bool VAC2 { get; set; }
  296. [Subscription("PM1.SensorVAC3.Value")]
  297. public bool VAC3 { get; set; }
  298. [Subscription("PM1.SensorVAC4.Value")]
  299. public bool VAC4 { get; set; }
  300. [Subscription("PM1.SensorVAC5.Value")]
  301. public bool VAC5 { get; set; }
  302. [Subscription("PM1.SensorVAC6.Value")]
  303. public bool VAC6 { get; set; }
  304. [Subscription("PM1.SensorVACATM.Value")]
  305. public bool VACATM { get; set; }
  306. [Subscription("PM1.SensorVACDEPOOK.Value")]
  307. public bool DEPOOK { get; set; }
  308. [Subscription("PM1.SensorVACHFOK.Value")]
  309. public bool HFClnOK { get; set; }
  310. [Subscription("PM1.SensorVACF2OK.Value")]
  311. public bool F2ClnOK { get; set; }
  312. #region MFCs
  313. [Subscription("PM1.MFC1.DeviceData")]
  314. public AITMfcData MFC1Data { get; set; }
  315. [Subscription("PM1.MFC2.DeviceData")]
  316. public AITMfcData MFC2Data { get; set; }
  317. [Subscription("PM1.MFC3.DeviceData")]
  318. public AITMfcData MFC3Data { get; set; }
  319. [Subscription("PM1.MFC4.DeviceData")]
  320. public AITMfcData MFC4Data { get; set; }
  321. [Subscription("PM1.MFC5.DeviceData")]
  322. public AITMfcData MFC5Data { get; set; }
  323. [Subscription("PM1.MFC6.DeviceData")]
  324. public AITMfcData MFC6Data { get; set; }
  325. [Subscription("PM1.MFC7.DeviceData")]
  326. public AITMfcData MFC7Data { get; set; }
  327. [Subscription("PM1.MFC8.DeviceData")]
  328. public AITMfcData MFC8Data { get; set; }
  329. [Subscription("PM1.MFC9.DeviceData")]
  330. public AITMfcData MFC9Data { get; set; }
  331. [Subscription("PM1.MFC10.DeviceData")]
  332. public AITMfcData MFC10Data { get; set; }
  333. [Subscription("PM1.MFC11.DeviceData")]
  334. public AITMfcData MFC11Data { get; set; }
  335. [Subscription("PM1.MFC12.DeviceData")]
  336. public AITMfcData MFC12Data { get; set; }
  337. [Subscription("PM1.MFC13.DeviceData")]
  338. public AITMfcData MFC13Data { get; set; }
  339. [Subscription("PM1.MFC14.DeviceData")]
  340. public AITMfcData MFC14Data { get; set; }
  341. [Subscription("PM1.MFC15.DeviceData")]
  342. public AITMfcData MFC15Data { get; set; }
  343. [Subscription("PM1.MFC16.DeviceData")]
  344. public AITMfcData MFC16Data { get; set; }
  345. [Subscription("PM1.MFC51.DeviceData")]
  346. public AITMfcData MFC51Data { get; set; }
  347. #endregion
  348. [Subscription("PM1.MFM1.DeviceData")]
  349. public AITWaterFlowMeterData Mfm1FlowData { get; set; }
  350. ///// <summary>
  351. ///// 设置鼠标的坐标
  352. ///// </summary>
  353. ///// <param name="x">横坐标</param>
  354. ///// <param name="y">纵坐标</param>
  355. //[DllImport("User32")]
  356. //public extern static void SetCursorPos(int x, int y);
  357. public ICommand CmdSetValve { get; set; }
  358. public ICommand CmdSetMfcFlow { get; set; }
  359. public ICommand CmdSetMfmFlow { get; set; }
  360. public int SelectedStepNo { get; set; }
  361. private string _selectedStepName;
  362. public string SelectedStepName
  363. {
  364. get
  365. {
  366. return _selectedStepName;
  367. }
  368. set
  369. {
  370. _selectedStepName = value;
  371. NotifyOfPropertyChange("SelectedStepName");
  372. }
  373. }
  374. private Step _step;
  375. public Step SelectedStep
  376. {
  377. get => _step;
  378. set
  379. {
  380. _step = value;
  381. NotifyOfPropertyChange("SelectedStep");
  382. }
  383. }
  384. public RecipeDataBase CurrentRecipe { get; set; }
  385. #region"MFC"
  386. private AnalogDeviceDataItem _mfc1;
  387. public AnalogDeviceDataItem MFC1
  388. {
  389. get => _mfc1;
  390. set
  391. {
  392. _mfc1 = value;
  393. NotifyOfPropertyChange("MFC1");
  394. }
  395. }
  396. private AnalogDeviceDataItem _mfc2;
  397. public AnalogDeviceDataItem MFC2
  398. {
  399. get => _mfc2;
  400. set
  401. {
  402. _mfc2 = value;
  403. NotifyOfPropertyChange("MFC2");
  404. }
  405. }
  406. private AnalogDeviceDataItem _mfc3;
  407. public AnalogDeviceDataItem MFC3
  408. {
  409. get => _mfc3;
  410. set
  411. {
  412. _mfc3 = value;
  413. NotifyOfPropertyChange("MFC3");
  414. }
  415. }
  416. private AnalogDeviceDataItem _mfc4;
  417. public AnalogDeviceDataItem MFC4
  418. {
  419. get => _mfc4;
  420. set
  421. {
  422. _mfc4 = value;
  423. NotifyOfPropertyChange("MFC4");
  424. }
  425. }
  426. private AnalogDeviceDataItem _mfc5;
  427. public AnalogDeviceDataItem MFC5
  428. {
  429. get => _mfc5;
  430. set
  431. {
  432. _mfc5 = value;
  433. NotifyOfPropertyChange("MFC5");
  434. }
  435. }
  436. private AnalogDeviceDataItem _mfc6;
  437. public AnalogDeviceDataItem MFC6
  438. {
  439. get => _mfc6;
  440. set
  441. {
  442. _mfc6 = value;
  443. NotifyOfPropertyChange("MFC6");
  444. }
  445. }
  446. private AnalogDeviceDataItem _mfc7;
  447. public AnalogDeviceDataItem MFC7
  448. {
  449. get => _mfc7;
  450. set
  451. {
  452. _mfc7 = value;
  453. NotifyOfPropertyChange("MFC7");
  454. }
  455. }
  456. private AnalogDeviceDataItem _mfc8;
  457. public AnalogDeviceDataItem MFC8
  458. {
  459. get => _mfc8;
  460. set
  461. {
  462. _mfc8 = value;
  463. NotifyOfPropertyChange("MFC8");
  464. }
  465. }
  466. private AnalogDeviceDataItem _mfc9;
  467. public AnalogDeviceDataItem MFC9
  468. {
  469. get => _mfc9;
  470. set
  471. {
  472. _mfc9 = value;
  473. NotifyOfPropertyChange("MFC9");
  474. }
  475. }
  476. private AnalogDeviceDataItem _mfc10;
  477. public AnalogDeviceDataItem MFC10
  478. {
  479. get => _mfc10;
  480. set
  481. {
  482. _mfc10 = value;
  483. NotifyOfPropertyChange("MFC10");
  484. }
  485. }
  486. private AnalogDeviceDataItem _mfc11;
  487. public AnalogDeviceDataItem MFC11
  488. {
  489. get => _mfc11;
  490. set
  491. {
  492. _mfc11 = value;
  493. NotifyOfPropertyChange("MFC11");
  494. }
  495. }
  496. private AnalogDeviceDataItem _mfc12;
  497. public AnalogDeviceDataItem MFC12
  498. {
  499. get => _mfc12;
  500. set
  501. {
  502. _mfc12 = value;
  503. NotifyOfPropertyChange("MFC12");
  504. }
  505. }
  506. private AnalogDeviceDataItem _mfc13;
  507. public AnalogDeviceDataItem MFC13
  508. {
  509. get => _mfc13;
  510. set
  511. {
  512. _mfc13 = value;
  513. NotifyOfPropertyChange("MFC13");
  514. }
  515. }
  516. private AnalogDeviceDataItem _mfc14;
  517. public AnalogDeviceDataItem MFC14
  518. {
  519. get => _mfc14;
  520. set
  521. {
  522. _mfc14 = value;
  523. NotifyOfPropertyChange("MFC14");
  524. }
  525. }
  526. private AnalogDeviceDataItem _mfc15;
  527. public AnalogDeviceDataItem MFC15
  528. {
  529. get => _mfc15;
  530. set
  531. {
  532. _mfc15 = value;
  533. NotifyOfPropertyChange("MFC15");
  534. }
  535. }
  536. private AnalogDeviceDataItem _mfc16;
  537. public AnalogDeviceDataItem MFC16
  538. {
  539. get => _mfc16;
  540. set
  541. {
  542. _mfc16 = value;
  543. NotifyOfPropertyChange("MFC16");
  544. }
  545. }
  546. #endregion
  547. private Visibility _borderVisibility = Visibility.Visible;
  548. public Visibility BorderVisibility
  549. {
  550. get { return _borderVisibility; }
  551. set { _borderVisibility = value; this.NotifyOfPropertyChange(nameof(BorderVisibility)); }
  552. }
  553. private AnalogDeviceDataItem _mfm1Flow;
  554. public AnalogDeviceDataItem Mfm1Flow
  555. {
  556. get => _mfm1Flow;
  557. set
  558. {
  559. _mfm1Flow = value;
  560. NotifyOfPropertyChange("Mfm1Flow");
  561. }
  562. }
  563. public delegate void ChangedStepHandler(Step step);
  564. public event ChangedStepHandler ChangedStepEvent;
  565. private bool _isUsePREVBtn = false;
  566. public bool IsUsePREVBtn
  567. {
  568. get => _isUsePREVBtn;
  569. set
  570. {
  571. _isUsePREVBtn = value;
  572. NotifyOfPropertyChange("IsUsePREVBtn");
  573. }
  574. }
  575. private bool _isUseNEXTBtn = false;
  576. public bool IsUseNEXTBtn
  577. {
  578. get => _isUseNEXTBtn;
  579. set
  580. {
  581. _isUseNEXTBtn = value;
  582. NotifyOfPropertyChange("IsUseNEXTBtn");
  583. }
  584. }
  585. private GasPanelStateType _selectedGasStateType = GasPanelStateType.Monitor;
  586. public GasPanelStateType SelectedGasStateType
  587. {
  588. get
  589. {
  590. return _selectedGasStateType;
  591. }
  592. set
  593. {
  594. _selectedGasStateType = value;
  595. NotifyOfPropertyChange(nameof(SelectedGasStateType));
  596. }
  597. }
  598. private void SetPREVAndNEXTBtn()
  599. {
  600. if (SelectedStep != null && CurrentRecipe != null)
  601. {
  602. if (CurrentRecipe.Steps.Count == 0)
  603. {
  604. IsUsePREVBtn = false;
  605. IsUseNEXTBtn = false;
  606. }
  607. else
  608. {
  609. if (SelectedStep.StepNo > CurrentRecipe.Steps[0].StepNo)
  610. {
  611. IsUsePREVBtn = true;
  612. }
  613. else
  614. {
  615. IsUsePREVBtn = false;
  616. }
  617. if (SelectedStep.StepNo < CurrentRecipe.Steps[CurrentRecipe.Steps.Count - 1].StepNo)
  618. {
  619. IsUseNEXTBtn = true;
  620. }
  621. else
  622. {
  623. IsUseNEXTBtn = false;
  624. }
  625. }
  626. }
  627. }
  628. public void SetChangedStep(Step step)
  629. {
  630. if (ChangedStepEvent != null)
  631. {
  632. ChangedStepEvent(step);
  633. }
  634. }
  635. protected override void OnViewLoaded(object view)
  636. {
  637. base.OnViewLoaded(view);
  638. IsManagerPermission = true;
  639. SetValveVirtualFeedbackValue();
  640. // CreateAITValveDataDefault();
  641. CreateMfcDefault();
  642. CreateMfmDefault();
  643. SetPREVAndNEXTBtn();
  644. CmdSetValve = new DelegateCommand<object>(SetValveCommand);
  645. CmdSetMfcFlow = new DelegateCommand<object>(PerformCmdSetMfcFlow);
  646. CmdSetMfmFlow = new DelegateCommand<object>(PerformCmdSetMfmFlow);
  647. SelectedGasStateType = GasPanelStateType.Recipe;
  648. ((RecipeGasPanelSettingView)view).RdoRecipe.IsChecked = true;
  649. }
  650. public void SetValveCommand(object param)
  651. {
  652. object[] args = (object[])param;
  653. if (args.Length == 3)
  654. if (SelectedStep != null && SelectedStep.ValveSets.Count > 0 && SelectedStep.ValveSets.FirstOrDefault(x => x.Name == (string)args[0]) != null)
  655. {
  656. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == (string)args[0]).SetValue((bool)args[2]);
  657. //InvokeClient.Instance.Service.DoOperation($"{args[0]}.{args[1]}", args[2]);
  658. // SetValveFollow((string)args[0], (bool)args[2]);
  659. }
  660. //SetCursorPos(0, 0);
  661. }
  662. private void SetValveFollow(string controlName, bool value)
  663. {
  664. int firstIndex = CurrentRecipe.Steps.IndexOf(SelectedStep);
  665. if (firstIndex < CurrentRecipe.Steps.Count)
  666. {
  667. for (int i = firstIndex + 1; i < CurrentRecipe.Steps.Count; i++)
  668. {
  669. if (!CurrentRecipe.Steps[i].ValveIsSaved)
  670. {
  671. break;
  672. }
  673. else
  674. {
  675. CurrentRecipe.Steps[i].ValveSets.FirstOrDefault(x => x.Name == controlName).Value = value;
  676. }
  677. }
  678. }
  679. }
  680. public void SelectedGasStateTypeCmd(string cmd)
  681. {
  682. BorderVisibility = Visibility.Collapsed;
  683. switch (cmd)
  684. {
  685. case "Manual":
  686. SelectedGasStateType = GasPanelStateType.Manual;
  687. break;
  688. case "Monitor":
  689. SelectedGasStateType = GasPanelStateType.Monitor;
  690. break;
  691. case "Recipe":
  692. SelectedGasStateType = GasPanelStateType.Recipe;
  693. BorderVisibility = Visibility.Visible;
  694. break;
  695. default:
  696. break;
  697. }
  698. //SetCursorPos(0, 0);
  699. }
  700. private void PerformCmdSetMfcFlow(object param)
  701. {
  702. object[] args = (object[])param; //0:devicename, 1:operation, 2:args
  703. if (args.Length == 3)
  704. {
  705. InvokeClient.Instance.Service.DoOperation($"{args[0]}.{args[1]}", args[2]);
  706. if (SelectedStep != null)
  707. {
  708. var mfc = SelectedStep.MFCSets.FirstOrDefault(x => x.ControlName == ((string)args[0]).Replace("PM1.", ""));
  709. if (mfc != null)
  710. {
  711. mfc.SetValue.SetValue(args[2].ToString());
  712. }
  713. }
  714. }
  715. // SetCursorPos(0, 0);
  716. }
  717. private void PerformCmdSetMfmFlow(object param)
  718. {
  719. object[] args = (object[])param; //0:devicename, 1:operation, 2:args
  720. if (args.Length == 3)
  721. {
  722. InvokeClient.Instance.Service.DoOperation($"PM1.{args[0]}.{args[1]}", args[2]);
  723. }
  724. // SetCursorPos(0, 0);
  725. }
  726. public AnalogDeviceDataItem AITMfcDataToAnalogDeviceDataItem(AITMfcData aITMfcData)
  727. {
  728. var strtemp = $"{aITMfcData.DeviceName}.Flow";
  729. string mfcStrValue = "0.00";
  730. if (SelectedStep != null)
  731. {
  732. var mfc = SelectedStep.MFCSets.FirstOrDefault(x => x.ControlName == aITMfcData.DeviceName);
  733. if (mfc != null)
  734. {
  735. mfcStrValue = mfc.SetValue.Value;
  736. }
  737. }
  738. else
  739. {
  740. Console.WriteLine(strtemp);
  741. }
  742. return new AnalogDeviceDataItem
  743. {
  744. Type = aITMfcData.Type,
  745. DeviceName = aITMfcData.UniqueName,
  746. DeviceId = aITMfcData.DeviceSchematicId,
  747. DisplayName = aITMfcData.DisplayName,
  748. Scale = aITMfcData.Scale,
  749. Unit = aITMfcData.Unit,
  750. FeedBack = double.Parse(mfcStrValue),
  751. SetPoint = double.Parse(mfcStrValue),
  752. VirtualFeedBack = double.Parse(mfcStrValue),
  753. };
  754. }
  755. public AnalogDeviceDataItem UpdateAITMfcDataToAnalogDeviceDataItem(AITMfcData aITMfcData)
  756. {
  757. var strtemp = $"{aITMfcData.DeviceName}.Flow";
  758. string mfcStrValue = "0.00";
  759. return new AnalogDeviceDataItem
  760. {
  761. Type = aITMfcData.Type,
  762. DeviceName = aITMfcData.UniqueName,
  763. DeviceId = aITMfcData.DeviceSchematicId,
  764. DisplayName = aITMfcData.DisplayName,
  765. Scale = aITMfcData.Scale,
  766. Unit = aITMfcData.Unit,
  767. FeedBack = SelectedGasStateType == GasPanelStateType.Monitor ? aITMfcData.FeedBack : aITMfcData.SetPoint,
  768. SetPoint = double.Parse(mfcStrValue),
  769. VirtualFeedBack = aITMfcData.VirtualFeedBack,
  770. };
  771. }
  772. public void CreateMfcDefault()
  773. {
  774. MFC1 = AITMfcDataToAnalogDeviceDataItem(MFC1Data);
  775. MFC2 = AITMfcDataToAnalogDeviceDataItem(MFC2Data);
  776. MFC3 = AITMfcDataToAnalogDeviceDataItem(MFC3Data);
  777. MFC4 = AITMfcDataToAnalogDeviceDataItem(MFC4Data);
  778. MFC5 = AITMfcDataToAnalogDeviceDataItem(MFC5Data);
  779. MFC6 = AITMfcDataToAnalogDeviceDataItem(MFC6Data);
  780. MFC7 = AITMfcDataToAnalogDeviceDataItem(MFC7Data);
  781. MFC8 = AITMfcDataToAnalogDeviceDataItem(MFC8Data);
  782. MFC9 = AITMfcDataToAnalogDeviceDataItem(MFC9Data);
  783. MFC10 = AITMfcDataToAnalogDeviceDataItem(MFC10Data);
  784. MFC11 = AITMfcDataToAnalogDeviceDataItem(MFC11Data);
  785. MFC12 = AITMfcDataToAnalogDeviceDataItem(MFC12Data);
  786. MFC13 = AITMfcDataToAnalogDeviceDataItem(MFC13Data);
  787. MFC14 = AITMfcDataToAnalogDeviceDataItem(MFC14Data);
  788. MFC15 = AITMfcDataToAnalogDeviceDataItem(MFC15Data);
  789. MFC16 = AITMfcDataToAnalogDeviceDataItem(MFC16Data);
  790. //MFC51 = AITMfcDataToAnalogDeviceDataItem(MFC51Data);
  791. }
  792. public void CreateMfmDefault()
  793. {
  794. Mfm1Flow = new AnalogDeviceDataItem()
  795. {
  796. Type = Mfm1FlowData.Type,
  797. Unit = Mfm1FlowData.Unit,
  798. DeviceId = Mfm1FlowData.DeviceSchematicId,
  799. DefaultValue = Mfm1FlowData.DefaultValue,
  800. Description = Mfm1FlowData.Description,
  801. DeviceName = Mfm1FlowData.DeviceName,
  802. DisplayName = Mfm1FlowData.DisplayName,
  803. ErroMessage = Mfm1FlowData.ErroMessage,
  804. Factor = Mfm1FlowData.Factor,
  805. FeedBack = Mfm1FlowData.FeedBack,
  806. Scale = Mfm1FlowData.Scale,
  807. SetPoint = Mfm1FlowData.SetPoint,
  808. IsWarning = Mfm1FlowData.IsWarning,
  809. FormatString = "F2"
  810. };
  811. // AITWaterFlowMeterData MfmD1Flow
  812. }
  813. public void SetValveVirtualFeedbackValue()
  814. {
  815. //if (ValveAV1 != null)
  816. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV1.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV1.DeviceName.Trim()] == "Open"); }
  817. //if (ValveAV2 != null)
  818. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV2.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV2.DeviceName.Trim()] == "Open"); }
  819. //if (ValveAV3 != null)
  820. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV3.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV3.DeviceName.Trim()] == "Open"); }
  821. //if (ValveAV4 != null)
  822. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV4.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV4.DeviceName.Trim()] == "Open"); }
  823. //if (ValveAV5 != null)
  824. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV5.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV5.DeviceName.Trim()] == "Open"); }
  825. //if (ValveAV6 != null)
  826. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV6.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV6.DeviceName.Trim()] == "Open"); }
  827. //if (ValveAV7 != null)
  828. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV7.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV7.DeviceName.Trim()] == "Open"); }
  829. //if (ValveAV8 != null)
  830. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV8.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV8.DeviceName.Trim()] == "Open"); }
  831. //if (ValveAV9 != null)
  832. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV9.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV9.DeviceName.Trim()] == "Open"); }
  833. //if (ValveAV10 != null)
  834. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV10.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV10.DeviceName.Trim()] == "Open"); }
  835. //if (ValveAV11 != null)
  836. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV11.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV11.DeviceName.Trim()] == "Open"); }
  837. //if (ValveAV12 != null)
  838. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV12.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV12.DeviceName.Trim()] == "Open"); }
  839. //if (ValveAV13 != null)
  840. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV13.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV13.DeviceName.Trim()] == "Open"); }
  841. //if (ValveAV14 != null)
  842. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV14.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV14.DeviceName.Trim()] == "Open"); }
  843. //if (ValveAV15 != null)
  844. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV15.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV15.DeviceName.Trim()] == "Open"); }
  845. //if (ValveAV16 != null)
  846. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV16.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV16.DeviceName.Trim()] == "Open"); }
  847. //if (ValveAV17 != null)
  848. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV17.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV17.DeviceName.Trim()] == "Open"); }
  849. //if (ValveAV18 != null)
  850. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV18.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV18.DeviceName.Trim()] == "Open"); }
  851. //if (ValveAV19 != null)
  852. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV19.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV19.DeviceName.Trim()] == "Open"); }
  853. //if (ValveAV20 != null)
  854. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV20.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV20.DeviceName.Trim()] == "Open"); }
  855. //if (ValveAV21 != null)
  856. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV21.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV21.DeviceName.Trim()] == "Open"); }
  857. //if (ValveAV22 != null)
  858. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV22.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV22.DeviceName.Trim()] == "Open"); }
  859. //if (ValveAV23 != null)
  860. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV23.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV23.DeviceName.Trim()] == "Open"); }
  861. //if (ValveAV24 != null)
  862. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV24.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV24.DeviceName.Trim()] == "Open"); }
  863. //if (ValveAV25 != null)
  864. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV25.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV25.DeviceName.Trim()] == "Open"); }
  865. //if (ValveAV26 != null)
  866. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV26.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV26.DeviceName.Trim()] == "Open"); }
  867. //if (ValveAV27 != null)
  868. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV27.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV27.DeviceName.Trim()] == "Open"); }
  869. //if (ValveAV28 != null)
  870. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV28.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV28.DeviceName.Trim()] == "Open"); }
  871. //if (ValveAV29 != null)
  872. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV29.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV29.DeviceName.Trim()] == "Open"); }
  873. //if (ValveAV30 != null)
  874. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV30.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV30.DeviceName.Trim()] == "Open"); }
  875. //if (ValveAV31 != null)
  876. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV31.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV31.DeviceName.Trim()] == "Open"); }
  877. //if (ValveAV32 != null)
  878. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV32.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV32.DeviceName.Trim()] == "Open"); }
  879. //if (ValveAV33 != null)
  880. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV33.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV33.DeviceName.Trim()] == "Open"); }
  881. //if (ValveAV34 != null)
  882. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV34.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV34.DeviceName.Trim()] == "Open"); }
  883. //if (ValveAV35 != null)
  884. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV35.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV35.DeviceName.Trim()] == "Open"); }
  885. //if (ValveAV36 != null)
  886. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV36.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV36.DeviceName.Trim()] == "Open"); }
  887. //if (ValveAV37 != null)
  888. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV37.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV37.DeviceName.Trim()] == "Open"); }
  889. //if (ValveAV38 != null)
  890. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV38.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV38.DeviceName.Trim()] == "Open"); }
  891. //if (ValveAV39 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV39.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV39.DeviceName.Trim()] == "Open"); }
  892. //if (ValveAV40 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV40.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV40.DeviceName.Trim()] == "Open"); }
  893. //if (ValveAV41 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV41.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV41.DeviceName.Trim()] == "Open"); }
  894. //if (ValveAV42 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV42.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV42.DeviceName.Trim()] == "Open"); }
  895. //if (ValveAV43 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV43.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV43.DeviceName.Trim()] == "Open"); }
  896. //if (ValveAV44 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV44.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV44.DeviceName.Trim()] == "Open"); }
  897. //if (ValveAV45 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV45.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV45.DeviceName.Trim()] == "Open"); }
  898. //if (ValveAV46 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV46.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV46.DeviceName.Trim()] == "Open"); }
  899. //if (ValveAV47 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV47.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV47.DeviceName.Trim()] == "Open"); }
  900. //if (ValveAV48 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV48.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV48.DeviceName.Trim()] == "Open"); }
  901. //if (ValveAV49 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV49.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV49.DeviceName.Trim()] == "Open"); }
  902. //if (ValveAV50 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV50.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV50.DeviceName.Trim()] == "Open"); }
  903. //if (ValveAV51 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV51.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV51.DeviceName.Trim()] == "Open"); }
  904. //if (ValveAV52 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV52.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV52.DeviceName.Trim()] == "Open"); }
  905. //if (ValveAV53 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV53.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV53.DeviceName.Trim()] == "Open"); }
  906. //if (ValveAV55 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV55.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV55.DeviceName.Trim()] == "Open"); }
  907. //if (ValveAV60 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV60.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV60.DeviceName.Trim()] == "Open"); }
  908. //if (ValveAV68 != null) { InvokeClient.Instance.Service.DoOperation($"{ValveAV68.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV68.DeviceName.Trim()] == "Open"); }
  909. //if (ValveAV71 != null)
  910. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV71.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV71.DeviceName.Trim()] == "Open"); }
  911. //if (ValveAV72 != null)
  912. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV72.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV72.DeviceName.Trim()] == "Open"); }
  913. //if (ValveAV73 != null)
  914. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV73.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV73.DeviceName.Trim()] == "Open"); }
  915. //if (ValveAV74 != null)
  916. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV74.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV74.DeviceName.Trim()] == "Open"); }
  917. //if (ValveAV75 != null)
  918. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV75.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV75.DeviceName.Trim()] == "Open"); }
  919. //if (ValveAV77 != null)
  920. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV77.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV77.DeviceName.Trim()] == "Open"); }
  921. //if (ValveAV81 != null)
  922. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV81.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV81.DeviceName.Trim()] == "Open"); }
  923. //if (ValveAV82 != null)
  924. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV82.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV82.DeviceName.Trim()] == "Open"); }
  925. //if (ValveAV83 != null)
  926. //{ InvokeClient.Instance.Service.DoOperation($"{ValveAV83.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets[ValveAV83.DeviceName.Trim()] == "Open"); }
  927. //if (AGVPump != null)
  928. //{ InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["AGV"] == "Open"); }
  929. //if (BothPump != null)
  930. //{ InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["MBP"] == "Open"); }
  931. //if (AUCPump != null)
  932. //{ InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["DP"] == "Open"); }
  933. //if (ValveBWR != null)
  934. //{ InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", SelectedStep.ValveSets["BWR"] == "Open"); }
  935. //if (SelectedStep.ValveSets.ContainsKey("CEXH"))
  936. //{
  937. // IsCEXHOn = SelectedStep.ValveSets["CEXH"] == "Open";
  938. //}
  939. //else
  940. //{
  941. // IsCEXHOn = false;
  942. //}
  943. //if (SelectedStep.ValveSets.ContainsKey("DEPO"))
  944. //{
  945. // IsDEPOOn = SelectedStep.ValveSets["DEPO"] == "Open";
  946. //}
  947. //else
  948. //{
  949. // IsDEPOOn = false;
  950. //}
  951. //if (SelectedStep.ValveSets.ContainsKey("F2Cln"))
  952. //{
  953. // IsF2ClnOn = SelectedStep.ValveSets["F2Cln"] == "Open";
  954. //}
  955. //else
  956. //{
  957. // IsF2ClnOn = false;
  958. //}
  959. //if (SelectedStep.ValveSets.ContainsKey("HFCln"))
  960. //{
  961. // IsHFClnOn = SelectedStep.ValveSets["HFCln"] == "Open";
  962. //}
  963. //else
  964. //{
  965. // IsHFClnOn = false;
  966. //}
  967. Dictionary<string, bool> dictValve = new Dictionary<string, bool>();
  968. foreach (var item in SelectedStep.ValveSets)
  969. {
  970. dictValve[item.Name] = item.Value;
  971. }
  972. InvokeClient.Instance.Service.DoOperation($"PM1.SetAll{AITValveOperation.GVVirtualTurnValve}", dictValve);
  973. foreach (var item in SelectedStep.ValveSets)
  974. {
  975. switch (item.Name.ToUpper())
  976. {
  977. // case "VALVEAV1":
  978. // if (ValveAV1 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV1.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  979. // break;
  980. // case "VALVEAV2":
  981. // if (ValveAV2 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV2.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  982. // break;
  983. // case "VALVEAV3":
  984. // if (ValveAV3 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV3.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  985. // break;
  986. // case "VALVEAV4":
  987. // if (ValveAV4 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV4.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  988. // break;
  989. // case "VALVEAV5":
  990. // if (ValveAV5 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV5.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  991. // break;
  992. // case "VALVEAV6":
  993. // if (ValveAV6 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV6.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  994. // break;
  995. // case "VALVEAV7":
  996. // if (ValveAV7 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV7.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  997. // break;
  998. // case "VALVEAV8":
  999. // if (ValveAV8 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV8.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1000. // break;
  1001. // case "VALVEAV9":
  1002. // if (ValveAV9 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV9.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1003. // break;
  1004. // case "VALVEAV10":
  1005. // if (ValveAV10 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV10.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1006. // break;
  1007. // case "VALVEAV11":
  1008. // if (ValveAV11 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV11.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1009. // break;
  1010. // case "VALVEAV12":
  1011. // if (ValveAV12 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV12.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1012. // break;
  1013. // case "VALVEAV13":
  1014. // if (ValveAV13 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV13.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1015. // break;
  1016. // case "VALVEAV14":
  1017. // if (ValveAV14 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV14.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1018. // break;
  1019. // case "VALVEAV15":
  1020. // if (ValveAV15 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV15.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1021. // break;
  1022. // case "VALVEAV16":
  1023. // if (ValveAV16 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV16.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1024. // break;
  1025. // case "VALVEAV17":
  1026. // if (ValveAV17 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV17.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1027. // break;
  1028. // case "VALVEAV18":
  1029. // if (ValveAV18 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV18.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1030. // break;
  1031. // case "VALVEAV19":
  1032. // if (ValveAV19 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV19.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1033. // break;
  1034. // case "VALVEAV20":
  1035. // if (ValveAV20 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV20.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1036. // break;
  1037. // case "VALVEAV21":
  1038. // if (ValveAV21 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV21.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1039. // break;
  1040. // case "VALVEAV22":
  1041. // if (ValveAV22 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV22.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1042. // break;
  1043. // case "VALVEAV23":
  1044. // if (ValveAV23 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV23.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1045. // break;
  1046. // case "VALVEAV24":
  1047. // if (ValveAV24 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV24.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1048. // break;
  1049. // case "VALVEAV25":
  1050. // if (ValveAV25 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV25.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1051. // break;
  1052. // case "VALVEAV26":
  1053. // if (ValveAV26 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV26.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1054. // break;
  1055. // case "VALVEAV27":
  1056. // if (ValveAV27 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV27.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1057. // break;
  1058. // case "VALVEAV28":
  1059. // if (ValveAV28 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV28.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1060. // break;
  1061. // case "VALVEAV29":
  1062. // if (ValveAV29 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV29.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1063. // break;
  1064. // case "VALVEAV30":
  1065. // if (ValveAV30 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV30.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1066. // break;
  1067. // case "VALVEAV31":
  1068. // if (ValveAV31 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV31.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1069. // break;
  1070. // case "VALVEAV32":
  1071. // if (ValveAV32 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV32.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1072. // break;
  1073. // case "VALVEAV33":
  1074. // if (ValveAV33 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV33.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1075. // break;
  1076. // case "VALVEAV34":
  1077. // if (ValveAV34 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV34.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1078. // break;
  1079. // case "VALVEAV35":
  1080. // if (ValveAV35 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV35.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1081. // break;
  1082. // case "VALVEAV36":
  1083. // if (ValveAV36 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV36.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1084. // break;
  1085. // case "VALVEAV37":
  1086. // if (ValveAV37 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV37.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1087. // break;
  1088. // case "VALVEAV38":
  1089. // if (ValveAV38 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV38.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1090. // break;
  1091. // case "VALVEAV39":
  1092. // if (ValveAV39 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV39.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1093. // break;
  1094. // case "VALVEAV40":
  1095. // if (ValveAV40 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV40.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1096. // break;
  1097. // case "VALVEAV41":
  1098. // if (ValveAV41 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV41.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1099. // break;
  1100. // case "VALVEAV42":
  1101. // if (ValveAV42 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV42.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1102. // break;
  1103. // case "VALVEAV43":
  1104. // if (ValveAV43 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV43.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1105. // break;
  1106. // case "VALVEAV44":
  1107. // if (ValveAV44 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV44.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1108. // break;
  1109. // case "VALVEAV45":
  1110. // if (ValveAV45 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV45.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1111. // break;
  1112. // case "VALVEAV46":
  1113. // if (ValveAV46 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV46.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1114. // break;
  1115. // case "VALVEAV47":
  1116. // if (ValveAV47 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV47.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1117. // break;
  1118. // case "VALVEAV48":
  1119. // if (ValveAV48 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV48.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1120. // break;
  1121. // case "VALVEAV49":
  1122. // if (ValveAV49 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV49.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1123. // break;
  1124. // case "VALVEAV50":
  1125. // if (ValveAV50 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV50.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1126. // break;
  1127. // case "VALVEAV51":
  1128. // if (ValveAV51 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV51.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1129. // break;
  1130. // case "VALVEAV52":
  1131. // if (ValveAV52 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV52.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1132. // break;
  1133. // case "VALVEAV53":
  1134. // if (ValveAV53 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV53.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1135. // break;
  1136. // case "VALVEAV55":
  1137. // if (ValveAV55 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV55.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1138. // break;
  1139. // case "VALVEAV60":
  1140. // if (ValveAV60 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV60.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1141. // break;
  1142. // case "VALVEAV68":
  1143. // if (ValveAV68 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV68.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1144. // break;
  1145. // case "VALVEAV71":
  1146. // if (ValveAV71 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV71.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1147. // break;
  1148. // case "VALVEAV72":
  1149. // if (ValveAV72 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV72.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1150. // break;
  1151. // case "VALVEAV73":
  1152. // if (ValveAV73 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV73.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1153. // break;
  1154. // case "VALVEAV74":
  1155. // if (ValveAV74 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV74.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1156. // break;
  1157. // case "VALVEAV75":
  1158. // if (ValveAV75 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV75.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1159. // break;
  1160. // case "VALVEAV77":
  1161. // if (ValveAV77 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV77.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1162. // break;
  1163. // case "VALVEAV81":
  1164. // if (ValveAV81 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV81.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1165. // break;
  1166. // case "VALVEAV82":
  1167. // if (ValveAV82 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV82.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1168. // break;
  1169. // case "VALVEAV83":
  1170. // if (ValveAV83 != null) InvokeClient.Instance.Service.DoOperation($"{ValveAV83.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1171. // break;
  1172. // case "AGV":
  1173. // if (AGVPump != null) InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1174. // break;
  1175. // case "MBP":
  1176. // if (BothPump != null) InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1177. // break;
  1178. // case "DP":
  1179. // if (AUCPump != null) InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1180. //
  1181. case "AGV":
  1182. if (AGVPump != null) InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1183. break;
  1184. case "DP":
  1185. if (BothPump != null) InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1186. break;
  1187. case "BWR":
  1188. if (ValveBWR != null) InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1189. break;
  1190. case "ValveAV91":
  1191. if (ValveDPR != null) InvokeClient.Instance.Service.DoOperation($"{ValveDPR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", item.Value);
  1192. break;
  1193. case "CEXH":
  1194. IsCEXHOn = item.Value;
  1195. break;
  1196. case "DEPO":
  1197. IsDEPOOn = item.Value;
  1198. break;
  1199. case "F2CLN":
  1200. IsF2ClnOn = item.Value;
  1201. break;
  1202. case "HFCLN":
  1203. IsHFClnOn = item.Value;
  1204. break;
  1205. case "HTR1":
  1206. IsHTR1Enable = item.Value;
  1207. break;
  1208. case "HTR2":
  1209. IsHTR2Enable = item.Value;
  1210. break;
  1211. case "HTR3":
  1212. IsHTR3Enable = item.Value;
  1213. break;
  1214. default:
  1215. break;
  1216. }
  1217. }
  1218. }
  1219. public void StepClick(string cmd)
  1220. {
  1221. bool isChangedStep = false;
  1222. // BeforeChangedStep();
  1223. switch (cmd)
  1224. {
  1225. case "PREV":
  1226. SelectedStep = CurrentRecipe.Steps.Where(x => x.StepNo == SelectedStep.StepNo - 1).FirstOrDefault();
  1227. isChangedStep = true;
  1228. break;
  1229. case "NEXT":
  1230. SelectedStep = CurrentRecipe.Steps.Where(x => x.StepNo == SelectedStep.StepNo + 1).FirstOrDefault();
  1231. isChangedStep = true;
  1232. break;
  1233. default:
  1234. break;
  1235. }
  1236. SelectedStepName = $"{SelectedStep.StepNo}:{SelectedStep.Name}";
  1237. if (isChangedStep && SelectedStep != null)
  1238. {
  1239. SetChangedStep(SelectedStep);
  1240. }
  1241. SetPREVAndNEXTBtn();
  1242. // CreateAITValveDataDefault();
  1243. SetValveVirtualFeedbackValue();
  1244. CreateMfcDefault();
  1245. CreateMfmDefault();
  1246. }
  1247. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  1248. {
  1249. base.InvokeAfterUpdateProperty(data);
  1250. MFCChangedUpdate();
  1251. }
  1252. private void MFCChangedUpdate()
  1253. {
  1254. if (MFC1.VirtualFeedBack != MFC1Data.VirtualFeedBack || MFC1.FeedBack != MFC1Data.FeedBack)
  1255. {
  1256. MFC1 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC1Data);
  1257. }
  1258. if (MFC2.VirtualFeedBack != MFC2Data.VirtualFeedBack || MFC2.FeedBack != MFC2Data.FeedBack)
  1259. {
  1260. MFC2 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC2Data);
  1261. }
  1262. if (MFC3.VirtualFeedBack != MFC3Data.VirtualFeedBack || MFC3.FeedBack != MFC3Data.FeedBack)
  1263. {
  1264. MFC3 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC3Data);
  1265. }
  1266. if (MFC4.VirtualFeedBack != MFC4Data.VirtualFeedBack || MFC4.FeedBack != MFC4Data.FeedBack)
  1267. {
  1268. MFC4 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC4Data);
  1269. }
  1270. if (MFC5.VirtualFeedBack != MFC5Data.VirtualFeedBack || MFC5.FeedBack != MFC5Data.FeedBack)
  1271. {
  1272. MFC5 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC5Data);
  1273. }
  1274. if (MFC6.VirtualFeedBack != MFC6Data.VirtualFeedBack || MFC6.FeedBack != MFC6Data.FeedBack)
  1275. {
  1276. MFC6 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC6Data);
  1277. }
  1278. if (MFC7.VirtualFeedBack != MFC7Data.VirtualFeedBack || MFC7.FeedBack != MFC7Data.FeedBack)
  1279. {
  1280. MFC7 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC7Data);
  1281. }
  1282. if (MFC8.VirtualFeedBack != MFC8Data.VirtualFeedBack || MFC8.FeedBack != MFC8Data.FeedBack)
  1283. {
  1284. MFC8 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC8Data);
  1285. }
  1286. if (MFC9.VirtualFeedBack != MFC9Data.VirtualFeedBack || MFC9.FeedBack != MFC9Data.FeedBack)
  1287. {
  1288. MFC9 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC9Data);
  1289. }
  1290. if (MFC10.VirtualFeedBack != MFC10Data.VirtualFeedBack || MFC10.FeedBack != MFC10Data.FeedBack)
  1291. {
  1292. MFC10 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC10Data);
  1293. }
  1294. if (MFC11.VirtualFeedBack != MFC11Data.VirtualFeedBack || MFC11.FeedBack != MFC11Data.FeedBack)
  1295. {
  1296. MFC11 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC11Data);
  1297. }
  1298. if (MFC12.VirtualFeedBack != MFC12Data.VirtualFeedBack || MFC12.FeedBack != MFC12Data.FeedBack)
  1299. {
  1300. MFC12 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC12Data);
  1301. }
  1302. if (MFC13.VirtualFeedBack != MFC13Data.VirtualFeedBack || MFC13.FeedBack != MFC13Data.FeedBack)
  1303. {
  1304. MFC13 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC13Data);
  1305. }
  1306. if (MFC14.VirtualFeedBack != MFC14Data.VirtualFeedBack || MFC14.FeedBack != MFC14Data.FeedBack)
  1307. {
  1308. MFC14 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC14Data);
  1309. }
  1310. if (MFC15.VirtualFeedBack != MFC15Data.VirtualFeedBack || MFC15.FeedBack != MFC15Data.FeedBack)
  1311. {
  1312. MFC15 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC15Data);
  1313. }
  1314. if (MFC16.VirtualFeedBack != MFC16Data.VirtualFeedBack || MFC16.FeedBack != MFC16Data.FeedBack)
  1315. {
  1316. MFC16 = UpdateAITMfcDataToAnalogDeviceDataItem(MFC16Data);
  1317. }
  1318. }
  1319. public void TempSetSave()
  1320. {
  1321. foreach (var item in SelectedStep.ValveSets)
  1322. {
  1323. switch (item.Name)
  1324. {
  1325. case "AGV":
  1326. item.Value = AGVPump.VirtualFeedback;
  1327. break;
  1328. //case "MBP":
  1329. // item.Value = BothPump.VirtualFeedback;
  1330. // break;
  1331. //case "DP":
  1332. // item.Value = AUCPump.VirtualFeedback;
  1333. // break;
  1334. case "BWR":
  1335. item.Value = ValveBWR.VirtualFeedback;
  1336. break;
  1337. case "DPR":
  1338. item.Value = ValveDPR.VirtualFeedback;
  1339. break;
  1340. case "CEXH":
  1341. item.Value = IsCEXHOn;
  1342. break;
  1343. case "F2Cln":
  1344. item.Value = IsF2ClnOn;
  1345. break;
  1346. case "DEPO":
  1347. item.Value = IsDEPOOn;
  1348. break;
  1349. case "HFCln":
  1350. item.Value = IsHFClnOn;
  1351. break;
  1352. case "HTR1":
  1353. item.Value = IsHTR1Enable;
  1354. break;
  1355. case "HTR2":
  1356. item.Value = IsHTR2Enable;
  1357. break;
  1358. case "HTR3":
  1359. item.Value = IsHTR3Enable;
  1360. break;
  1361. default:
  1362. break;
  1363. }
  1364. }
  1365. // List<string> mfcKeys = SelectedStep.MFCSets.Keys.ToList();
  1366. foreach (var mfcitem in SelectedStep.MFCSets)
  1367. {
  1368. var replaceStr = mfcitem.ControlName;
  1369. var property = this.GetType().GetProperties().Where(x => x.Name == replaceStr).FirstOrDefault();
  1370. if (property == null) continue;
  1371. object value = property.GetValue(this, null);
  1372. if (value != null)
  1373. {
  1374. mfcitem.SetValue.Value = (Math.Round(((AnalogDeviceDataItem)value).VirtualFeedBack, 3).ToString(""));
  1375. }
  1376. }
  1377. ((Window)GetView()).DialogResult = true;
  1378. }
  1379. public void SwichValue(string name)
  1380. {
  1381. string setCmd = "";
  1382. bool setValue=false;
  1383. switch (name.ToUpper())
  1384. {
  1385. case "BWR":
  1386. var valveBwr = !ValveBWR.VirtualFeedback;
  1387. setValue = valveBwr;
  1388. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "BWR").SetValue(valveBwr);
  1389. InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", valveBwr);
  1390. setCmd = "BWR";
  1391. break;
  1392. case "DPR":
  1393. var valveDpr = !ValveDPR.VirtualFeedback;
  1394. setValue = valveDpr;
  1395. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "ValveAV91").SetValue(valveDpr);
  1396. InvokeClient.Instance.Service.DoOperation($"{ValveDPR.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", valveDpr);
  1397. setCmd = "ValveAV91";
  1398. break;
  1399. case "CEXH":
  1400. IsCEXHOn = !IsCEXHOn;
  1401. setValue = IsCEXHOn;
  1402. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "CEXH").SetValue(IsCEXHOn);
  1403. setCmd = "CEXH";
  1404. break;
  1405. case "F2":
  1406. IsF2ClnOn = !IsF2ClnOn;
  1407. setValue = IsF2ClnOn;
  1408. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "F2Cln").SetValue(IsF2ClnOn);
  1409. setCmd = "F2Cln";
  1410. break;
  1411. case "HF":
  1412. IsHFClnOn = !IsHFClnOn;
  1413. setValue = IsHFClnOn;
  1414. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HFCln").SetValue(IsHFClnOn);
  1415. setCmd = "HFCln";
  1416. break;
  1417. case "DEPO":
  1418. IsDEPOOn = !IsDEPOOn;
  1419. setValue = IsDEPOOn;
  1420. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "DEPO").SetValue(IsDEPOOn);
  1421. setCmd = "DEPO";
  1422. break;
  1423. }
  1424. if (!string.IsNullOrEmpty(setCmd))
  1425. {
  1426. SetValveFollow(setCmd, setValue);
  1427. }
  1428. }
  1429. public void SetEnable(string name)
  1430. {
  1431. string setCmd = "";
  1432. bool setValue = false;
  1433. switch (name.ToUpper())
  1434. {
  1435. case "HTR1":
  1436. IsHTR1Enable = !IsHTR1Enable;
  1437. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR1").SetValue(IsHTR1Enable);
  1438. setCmd = "HTR1";
  1439. setValue = IsHTR1Enable;
  1440. break;
  1441. case "HTR2":
  1442. IsHTR2Enable = !IsHTR2Enable;
  1443. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR2").SetValue(IsHTR2Enable);
  1444. setCmd = "HTR2";
  1445. setValue = IsHTR2Enable;
  1446. break;
  1447. case "HTR3":
  1448. IsHTR3Enable = !IsHTR3Enable;
  1449. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "HTR3").SetValue(IsHTR3Enable);
  1450. setCmd = "HTR3";
  1451. setValue = IsHTR3Enable;
  1452. break;
  1453. }
  1454. if (!string.IsNullOrEmpty(setCmd))
  1455. {
  1456. SetValveFollow(setCmd, setValue);
  1457. }
  1458. }
  1459. public void SelectPump(string _pumpname)
  1460. {
  1461. //if (!DialogBox.Confirm($"Are you sure change {_pumpname} status?"))
  1462. // return;
  1463. if (_pumpname == "AUC")
  1464. {
  1465. InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", !AUCPump.VirtualFeedback);
  1466. }
  1467. if (_pumpname == "AGV")
  1468. {
  1469. var tempValue = !AGVPump.VirtualFeedback;
  1470. InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", tempValue);
  1471. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "AGV").SetValue(tempValue);
  1472. }
  1473. if (_pumpname == "Both")
  1474. {
  1475. var tempValue = !BothPump.VirtualFeedback;
  1476. InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", tempValue);
  1477. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "DP").SetValue(tempValue);
  1478. }
  1479. if (_pumpname == "DP")
  1480. {
  1481. var tempValue = !BothPump.VirtualFeedback;
  1482. InvokeClient.Instance.Service.DoOperation($"{BothPump.UniqueName}.{AITValveOperation.GVVirtualTurnValve}", tempValue);
  1483. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "DP").SetValue(tempValue);
  1484. SelectedStep.ValveSets.FirstOrDefault(x => x.Name == "MBP").SetValue(tempValue);
  1485. }
  1486. }
  1487. public void TempSetCancel()
  1488. {
  1489. ((Window)GetView()).DialogResult = false;
  1490. }
  1491. private bool disposed = false;
  1492. public void Dispose()
  1493. {
  1494. Dispose(true);
  1495. GC.SuppressFinalize(this); // 防止垃圾回收器再次调用析构函数
  1496. }
  1497. protected virtual void Dispose(bool disposing)
  1498. {
  1499. if (!disposed)
  1500. {
  1501. if (disposing)
  1502. {
  1503. this.OnDeactivate(true);
  1504. // 释放托管资源
  1505. }
  1506. // 释放非托管资源
  1507. disposed = true;
  1508. }
  1509. }
  1510. ~RecipeGasPanelSettingViewModel()
  1511. {
  1512. Dispose(false);
  1513. }
  1514. }
  1515. }