GasPanelViewModel.cs 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614
  1. using Aitex.Core.Common.DeviceData;
  2. using Aitex.Core.RT.Log;
  3. using Aitex.Core.UI.ControlDataContext;
  4. using Aitex.Core.UI.MVVM;
  5. using Aitex.Core.Util;
  6. using FurnaceGasPanelUI.Models;
  7. using MECF.Framework.Common.DataCenter;
  8. using MECF.Framework.Common.OperationCenter;
  9. using MECF.Framework.UI.Core.Control;
  10. using MECF.Framework.UI.Core.ExtendedControls;
  11. using OpenSEMI.ClientBase;
  12. using System;
  13. using System.Collections.Generic;
  14. using System.Linq;
  15. using System.Windows;
  16. using System.Windows.Input;
  17. namespace FurnaceGasPanelUI.Views.Maintenances.ELK
  18. {
  19. public class GasPanelViewModel : ThermalGasPanelUIViewModelBase
  20. {
  21. public ICommand CmdSetMfcFlow { get; set; }
  22. public ICommand CmdSetMfmFlow { get; set; }
  23. public bool _ismanagerPermission = true;
  24. public Window WinOwner { get; set; }
  25. public bool IsManagerPermission
  26. {
  27. get
  28. {
  29. return _ismanagerPermission;
  30. }
  31. set
  32. {
  33. _ismanagerPermission = value;
  34. NotifyOfPropertyChange("IsManagerPermission");
  35. }
  36. }
  37. private bool _isRecipeEdit = false;
  38. private string backGroundStr = "#FFB0D1F1";
  39. public bool ManualEnable { get; set; } = true;
  40. public string ManualEnableColor
  41. {
  42. get
  43. {
  44. if (ManualEnable)
  45. {
  46. return "Green";
  47. }
  48. return backGroundStr;
  49. }
  50. }
  51. public void SwichManualEnable()
  52. {
  53. ManualEnable = true;
  54. }
  55. public void SwichMonitor()
  56. {
  57. ManualEnable = false;
  58. }
  59. public void SwichRecipe()
  60. {
  61. IsRecipeEdit = true;
  62. }
  63. public bool MonitorChecked { get; set; } = true;
  64. public bool ManualChecked { get; set; } = false;
  65. public bool IsRecipeEdit
  66. {
  67. get
  68. {
  69. return _isRecipeEdit;
  70. }
  71. set
  72. {
  73. _isRecipeEdit = value;
  74. NotifyOfPropertyChange("IsRecipeEdit");
  75. }
  76. }
  77. public bool EditTrue { get; set; } = false;
  78. [Subscription("PM1.SensorRecipeOK")]
  79. public AITSensorData SensorRecipeOK { get; set; }
  80. [Subscription("PM1.SensorPROCManualOK")]
  81. public AITSensorData SensorPROCManualOK { get; set; }
  82. [Subscription("System.VentValve.DeviceData")]
  83. public AITValveData VentValveData { get; set; }
  84. [Subscription("System.PumpValve.DeviceData")]
  85. public AITValveData PumpValveData { get; set; }
  86. [Subscription("PM1.SensorTubeATMPressure.DeviceData")]
  87. public AITSensorData SensorTubeATMPressure { get; set; }
  88. [Subscription("System.TubePressure.DeviceData")]
  89. public AITPressureMeterData TubePressureData { get; set; }
  90. [Subscription("PM1.SensorVAC1.Value")]
  91. public bool VAC1 { get; set; }
  92. [Subscription("PM1.SensorVAC2.Value")]
  93. public bool VAC2 { get; set; }
  94. [Subscription("PM1.SensorVAC3.Value")]
  95. public bool VAC3 { get; set; }
  96. [Subscription("PM1.SensorVAC4.Value")]
  97. public bool VAC4 { get; set; }
  98. [Subscription("PM1.SensorVAC5.Value")]
  99. public bool VAC5 { get; set; }
  100. [Subscription("PM1.SensorVAC6.Value")]
  101. public bool VAC6 { get; set; }
  102. [Subscription("PM1.SensorVAC7.Value")]
  103. public bool VAC7 { get; set; }
  104. [Subscription("PM1.SensorVAC8.Value")]
  105. public bool VAC8 { get; set; }
  106. [Subscription("PM1.SensorPS13LStatus.Value")]
  107. public bool VACATM { get; set; }
  108. [Subscription("PM1.SensorVACDEPOOK.Value")]
  109. public bool DEPOOK { get; set; }
  110. [Subscription("PM1.SensorVACHFOK.Value")]
  111. public bool HFClnOK { get; set; }
  112. [Subscription("PM1.SensorVACF2OK.Value")]
  113. public bool F2ClnOK { get; set; }
  114. [Subscription("PM1.SensorHCDTANKHH.Value")]
  115. public bool HCDTANKHH { get; set; }
  116. [Subscription("PM1.SensorHCDTANKH.Value")]
  117. public bool HCDTANKH { get; set; }
  118. [Subscription("PM1.SensorHCDTANKM.Value")]
  119. public bool HCDTANKM { get; set; }
  120. [Subscription("PM1.SensorHCDTANKL.Value")]
  121. public bool HCDTANKL { get; set; }
  122. [Subscription("PM1.SensorCSOURCETANKHH.Value")]
  123. public bool CSOURCETANKHH { get; set; }
  124. [Subscription("PM1.SensorCSOURCETANKH.Value")]
  125. public bool CSOURCETANKH { get; set; }
  126. [Subscription("PM1.SensorCSOURCETANKM.Value")]
  127. public bool CSOURCETANKM { get; set; }
  128. [Subscription("PM1.SensorCSOURCETANKL.Value")]
  129. public bool CSOURCETANKL { get; set; }
  130. [Subscription("PM1.SensorLDS1SystemReady.Value")]
  131. public bool LDS1SystemReady { get; set; }
  132. [Subscription("PM1.SensorLDS2SystemReady.Value")]
  133. public bool LDS2SystemReady { get; set; }
  134. #region Valves
  135. [Subscription("PM1.ValveAV1.DeviceData")] public AITValveData ValveAV1 { get; set; }
  136. [Subscription("PM1.ValveAV2.DeviceData")] public AITValveData ValveAV2 { get; set; }
  137. [Subscription("PM1.ValveAV3.DeviceData")] public AITValveData ValveAV3 { get; set; }
  138. [Subscription("PM1.ValveAV4.DeviceData")] public AITValveData ValveAV4 { get; set; }
  139. [Subscription("PM1.ValveAV5.DeviceData")] public AITValveData ValveAV5 { get; set; }
  140. [Subscription("PM1.ValveAV6.DeviceData")] public AITValveData ValveAV6 { get; set; }
  141. [Subscription("PM1.ValveAV7.DeviceData")] public AITValveData ValveAV7 { get; set; }
  142. [Subscription("PM1.ValveAV8.DeviceData")] public AITValveData ValveAV8 { get; set; }
  143. [Subscription("PM1.ValveAV9.DeviceData")] public AITValveData ValveAV9 { get; set; }
  144. [Subscription("PM1.ValveAV10.DeviceData")] public AITValveData ValveAV10 { get; set; }
  145. [Subscription("PM1.ValveAV11.DeviceData")] public AITValveData ValveAV11 { get; set; }
  146. [Subscription("PM1.ValveAV12.DeviceData")] public AITValveData ValveAV12 { get; set; }
  147. [Subscription("PM1.ValveAV13.DeviceData")] public AITValveData ValveAV13 { get; set; }
  148. [Subscription("PM1.ValveAV14.DeviceData")] public AITValveData ValveAV14 { get; set; }
  149. [Subscription("PM1.ValveAV15.DeviceData")] public AITValveData ValveAV15 { get; set; }
  150. [Subscription("PM1.ValveAV16.DeviceData")] public AITValveData ValveAV16 { get; set; }
  151. [Subscription("PM1.ValveAV17.DeviceData")] public AITValveData ValveAV17 { get; set; }
  152. [Subscription("PM1.ValveAV18.DeviceData")] public AITValveData ValveAV18 { get; set; }
  153. [Subscription("PM1.ValveAV19.DeviceData")] public AITValveData ValveAV19 { get; set; }
  154. [Subscription("PM1.ValveAV20.DeviceData")] public AITValveData ValveAV20 { get; set; }
  155. [Subscription("PM1.ValveAV21.DeviceData")] public AITValveData ValveAV21 { get; set; }
  156. [Subscription("PM1.ValveAV22.DeviceData")] public AITValveData ValveAV22 { get; set; }
  157. [Subscription("PM1.ValveAV23.DeviceData")] public AITValveData ValveAV23 { get; set; }
  158. [Subscription("PM1.ValveAV24.DeviceData")] public AITValveData ValveAV24 { get; set; }
  159. [Subscription("PM1.ValveAV25.DeviceData")] public AITValveData ValveAV25 { get; set; }
  160. [Subscription("PM1.ValveAV26.DeviceData")] public AITValveData ValveAV26 { get; set; }
  161. [Subscription("PM1.ValveAV27.DeviceData")] public AITValveData ValveAV27 { get; set; }
  162. [Subscription("PM1.ValveAV28.DeviceData")] public AITValveData ValveAV28 { get; set; }
  163. [Subscription("PM1.ValveAV29.DeviceData")] public AITValveData ValveAV29 { get; set; }
  164. [Subscription("PM1.ValveAV30.DeviceData")] public AITValveData ValveAV30 { get; set; }
  165. [Subscription("PM1.ValveAV31.DeviceData")] public AITValveData ValveAV31 { get; set; }
  166. [Subscription("PM1.ValveAV32.DeviceData")] public AITValveData ValveAV32 { get; set; }
  167. [Subscription("PM1.ValveAV33.DeviceData")] public AITValveData ValveAV33 { get; set; }
  168. [Subscription("PM1.ValveAV34.DeviceData")] public AITValveData ValveAV34 { get; set; }
  169. [Subscription("PM1.ValveAV35.DeviceData")] public AITValveData ValveAV35 { get; set; }
  170. [Subscription("PM1.ValveAV36.DeviceData")] public AITValveData ValveAV36 { get; set; }
  171. [Subscription("PM1.ValveAV37.DeviceData")] public AITValveData ValveAV37 { get; set; }
  172. [Subscription("PM1.ValveAV38.DeviceData")] public AITValveData ValveAV38 { get; set; }
  173. [Subscription("PM1.ValveAV39.DeviceData")] public AITValveData ValveAV39 { get; set; }
  174. [Subscription("PM1.ValveAV40.DeviceData")] public AITValveData ValveAV40 { get; set; }
  175. [Subscription("PM1.ValveAV41.DeviceData")] public AITValveData ValveAV41 { get; set; }
  176. [Subscription("PM1.ValveAV42.DeviceData")] public AITValveData ValveAV42 { get; set; }
  177. [Subscription("PM1.ValveAV43.DeviceData")] public AITValveData ValveAV43 { get; set; }
  178. [Subscription("PM1.ValveAV44.DeviceData")] public AITValveData ValveAV44 { get; set; }
  179. [Subscription("PM1.ValveAV45.DeviceData")] public AITValveData ValveAV45 { get; set; }
  180. [Subscription("PM1.ValveAV46.DeviceData")] public AITValveData ValveAV46 { get; set; }
  181. [Subscription("PM1.ValveAV47.DeviceData")] public AITValveData ValveAV47 { get; set; }
  182. [Subscription("PM1.ValveAV48.DeviceData")] public AITValveData ValveAV48 { get; set; }
  183. [Subscription("PM1.ValveAV49.DeviceData")] public AITValveData ValveAV49 { get; set; }
  184. [Subscription("PM1.ValveAV50.DeviceData")] public AITValveData ValveAV50 { get; set; }
  185. [Subscription("PM1.ValveAV51.DeviceData")] public AITValveData ValveAV51 { get; set; }
  186. [Subscription("PM1.ValveAV52.DeviceData")] public AITValveData ValveAV52 { get; set; }
  187. [Subscription("PM1.ValveAV53.DeviceData")] public AITValveData ValveAV53 { get; set; }
  188. [Subscription("PM1.ValveAV54.DeviceData")] public AITValveData ValveAV54 { get; set; }
  189. [Subscription("PM1.ValveAV55.DeviceData")] public AITValveData ValveAV55 { get; set; }
  190. [Subscription("PM1.ValveAV56.DeviceData")] public AITValveData ValveAV56 { get; set; }
  191. [Subscription("PM1.ValveAV57.DeviceData")] public AITValveData ValveAV57 { get; set; }
  192. [Subscription("PM1.ValveAV58.DeviceData")] public AITValveData ValveAV58 { get; set; }
  193. [Subscription("PM1.ValveAV59.DeviceData")] public AITValveData ValveAV59 { get; set; }
  194. [Subscription("PM1.ValveAV60.DeviceData")] public AITValveData ValveAV60 { get; set; }
  195. [Subscription("PM1.ValveAV61.DeviceData")] public AITValveData ValveAV61 { get; set; }
  196. [Subscription("PM1.ValveAV62.DeviceData")] public AITValveData ValveAV62 { get; set; }
  197. [Subscription("PM1.ValveAV65.DeviceData")] public AITValveData ValveAV65 { get; set; }
  198. [Subscription("PM1.ValveAV66.DeviceData")] public AITValveData ValveAV66 { get; set; }
  199. [Subscription("PM1.ValveAV67.DeviceData")] public AITValveData ValveAV67 { get; set; }
  200. [Subscription("PM1.ValveAV68.DeviceData")] public AITValveData ValveAV68 { get; set; }
  201. [Subscription("PM1.ValveAV69.DeviceData")] public AITValveData ValveAV69 { get; set; }
  202. [Subscription("PM1.ValveAV70.DeviceData")] public AITValveData ValveAV70 { get; set; }
  203. [Subscription("PM1.APC.ModeFeedback")]
  204. public int APCModeFeedback { get; set; }
  205. [Subscription("PM1.ValveAV71.DeviceData")] public AITValveData ValveAV71Data { get; set; }
  206. public AITValveData ValveAV71
  207. {
  208. get
  209. {
  210. return new AITValveData()
  211. {
  212. DeviceName = ValveAV71Data.DeviceName,
  213. DisplayName = ValveAV71Data.DisplayName,
  214. UniqueName = ValveAV71Data.UniqueName,
  215. DefaultValue = ValveAV71Data.DefaultValue,
  216. SetPoint = ValveAV71Data.SetPoint,
  217. Feedback = APCModeFeedback != 5,
  218. ILKDiValue = ValveAV71Data.ILKDiValue,
  219. IsILKOK = true,
  220. VirtualFeedback = ValveAV71Data.VirtualFeedback
  221. };
  222. }
  223. }
  224. [Subscription("PM1.ValveAV72.DeviceData")] public AITValveData ValveAV72 { get; set; }
  225. [Subscription("PM1.ValveAV73.DeviceData")] public AITValveData ValveAV73 { get; set; }
  226. [Subscription("PM1.ValveAV74.DeviceData")] public AITValveData ValveAV74 { get; set; }
  227. [Subscription("PM1.ValveAV75.DeviceData")] public AITValveData ValveAV75 { get; set; }
  228. [Subscription("PM1.ValveAV76.DeviceData")] public AITValveData ValveAV76 { get; set; }
  229. [Subscription("PM1.ValveAV77.DeviceData")] public AITValveData ValveAV77 { get; set; }
  230. [Subscription("PM1.ValveAV78.DeviceData")] public AITValveData ValveAV78 { get; set; }
  231. [Subscription("PM1.ValveAV79.DeviceData")] public AITValveData ValveAV79 { get; set; }
  232. [Subscription("PM1.ValveAV80.DeviceData")] public AITValveData ValveAV80 { get; set; }
  233. [Subscription("PM1.ValveAV81.DeviceData")] public AITValveData ValveAV81 { get; set; }
  234. [Subscription("PM1.ValveAV82.DeviceData")] public AITValveData ValveAV82 { get; set; }
  235. [Subscription("PM1.ValveAV83.DeviceData")] public AITValveData ValveAV83 { get; set; }
  236. [Subscription("PM1.ValveAV84.DeviceData")] public AITValveData ValveAV84 { get; set; }
  237. [Subscription("PM1.ValveAV85.DeviceData")] public AITValveData ValveAV85 { get; set; }
  238. [Subscription("PM1.ValveAV86.DeviceData")] public AITValveData ValveAV86 { get; set; }
  239. [Subscription("PM1.ValveAV87.DeviceData")] public AITValveData ValveAV87 { get; set; }
  240. [Subscription("PM1.ValveAV88.DeviceData")] public AITValveData ValveAV88 { get; set; }
  241. [Subscription("PM1.ValveAV89.DeviceData")] public AITValveData ValveAV89 { get; set; }
  242. [Subscription("PM1.ValveAV90.DeviceData")] public AITValveData ValveAV90 { get; set; }
  243. [Subscription("PM1.ValveAV91.DeviceData")] public AITValveData ValveAV91 { get; set; }
  244. [Subscription("PM1.ValveAV92.DeviceData")] public AITValveData ValveAV92 { get; set; }
  245. [Subscription("PM1.ValveAV93.DeviceData")] public AITValveData ValveAV93 { get; set; }
  246. [Subscription("PM1.ValveAV94.DeviceData")] public AITValveData ValveAV94 { get; set; }
  247. [Subscription("PM1.ValveAV95.DeviceData")] public AITValveData ValveAV95 { get; set; }
  248. [Subscription("PM1.ValveAV96.DeviceData")] public AITValveData ValveAV96 { get; set; }
  249. [Subscription("PM1.ValveAV97.DeviceData")] public AITValveData ValveAV97 { get; set; }
  250. [Subscription("PM1.ValveAV98.DeviceData")] public AITValveData ValveAV98 { get; set; }
  251. [Subscription("PM1.ValveAV99.DeviceData")] public AITValveData ValveAV99 { get; set; }
  252. [Subscription("PM1.ValveAV100.DeviceData")] public AITValveData ValveAV100 { get; set; }
  253. [Subscription("PM1.ValveAV101.DeviceData")] public AITValveData ValveAV101 { get; set; }
  254. [Subscription("PM1.ValveAV102.DeviceData")] public AITValveData ValveAV102 { get; set; }
  255. [Subscription("PM1.ValveAV103.DeviceData")] public AITValveData ValveAV103 { get; set; }
  256. [Subscription("PM1.ValveAV104.DeviceData")] public AITValveData ValveAV104 { get; set; }
  257. [Subscription("PM1.ValveAV105.DeviceData")] public AITValveData ValveAV105 { get; set; }
  258. [Subscription("PM1.ValveAV106.DeviceData")] public AITValveData ValveAV106 { get; set; }
  259. [Subscription("PM1.ValveAV107.DeviceData")] public AITValveData ValveAV107 { get; set; }
  260. [Subscription("PM1.ValveAV108.DeviceData")] public AITValveData ValveAV108 { get; set; }
  261. [Subscription("PM1.ValveAV109.DeviceData")] public AITValveData ValveAV109 { get; set; }
  262. [Subscription("PM1.ValveAV110.DeviceData")] public AITValveData ValveAV110 { get; set; }
  263. [Subscription("PM1.ValveAV111.DeviceData")] public AITValveData ValveAV111 { get; set; }
  264. [Subscription("PM1.ValveAV112.DeviceData")] public AITValveData ValveAV112 { get; set; }
  265. [Subscription("PM1.ValveAV113.DeviceData")] public AITValveData ValveAV113 { get; set; }
  266. [Subscription("PM1.ValveAV114.DeviceData")] public AITValveData ValveAV114 { get; set; }
  267. [Subscription("PM1.ValveAV115.DeviceData")] public AITValveData ValveAV115 { get; set; }
  268. [Subscription("PM1.ValveAV116.DeviceData")] public AITValveData ValveAV116 { get; set; }
  269. [Subscription("PM1.ValveAV117.DeviceData")] public AITValveData ValveAV117 { get; set; }
  270. [Subscription("PM1.ValveAV118.DeviceData")] public AITValveData ValveAV118 { get; set; }
  271. [Subscription("PM1.ValveAV119.DeviceData")] public AITValveData ValveAV119 { get; set; }
  272. [Subscription("PM1.ValveAV120.DeviceData")] public AITValveData ValveAV120 { get; set; }
  273. [Subscription("PM1.ValveAV121.DeviceData")] public AITValveData ValveAV121 { get; set; }
  274. [Subscription("PM1.ValveAV122.DeviceData")] public AITValveData ValveAV122 { get; set; }
  275. [Subscription("PM1.ValveAV123.DeviceData")] public AITValveData ValveAV123 { get; set; }
  276. [Subscription("PM1.ValveAV124.DeviceData")] public AITValveData ValveAV124 { get; set; }
  277. [Subscription("PM1.ValveAV125.DeviceData")] public AITValveData ValveAV125 { get; set; }
  278. [Subscription("PM1.ValveAV126.DeviceData")] public AITValveData ValveAV126 { get; set; }
  279. [Subscription("PM1.ValveAV127.DeviceData")] public AITValveData ValveAV127 { get; set; }
  280. [Subscription("PM1.ValveAV128.DeviceData")] public AITValveData ValveAV128 { get; set; }
  281. [Subscription("PM1.ValveAV129.DeviceData")] public AITValveData ValveAV129 { get; set; }
  282. [Subscription("PM1.ValveAV130.DeviceData")] public AITValveData ValveAV130 { get; set; }
  283. [Subscription("PM1.ValveAV131.DeviceData")] public AITValveData ValveAV131 { get; set; }
  284. [Subscription("PM1.ValveAV132.DeviceData")] public AITValveData ValveAV132 { get; set; }
  285. [Subscription("PM1.ValveAV133.DeviceData")] public AITValveData ValveAV133 { get; set; }
  286. [Subscription("PM1.ValveAV134.DeviceData")] public AITValveData ValveAV134 { get; set; }
  287. [Subscription("PM1.ValveAV135.DeviceData")] public AITValveData ValveAV135 { get; set; }
  288. [Subscription("PM1.ValveAV136.DeviceData")] public AITValveData ValveAV136 { get; set; }
  289. [Subscription("PM1.ValveAV91.DeviceData")]
  290. public AITValveData ValveDPR { get; set; }
  291. public string ValveDPRBrush
  292. {
  293. get
  294. {
  295. if (ValveDPR != null && ValveDPR.Feedback)
  296. {
  297. return "Green";
  298. }
  299. return backGroundStr;
  300. }
  301. }
  302. [Subscription("PM1.ValveBlowerPowerOn.DeviceData")]
  303. public AITValveData ValveBWR { get; set; }
  304. public string ValveBWRBrush
  305. {
  306. get
  307. {
  308. if (ValveBWR != null && ValveBWR.Feedback)
  309. {
  310. return "Green";
  311. }
  312. return backGroundStr;
  313. }
  314. }
  315. [Subscription("PM1.IsCEXHOn")]
  316. public bool IsCEXHOn { get; set; }
  317. public string CEXHBrush
  318. {
  319. get
  320. {
  321. if (IsCEXHOn)
  322. {
  323. return "Green";
  324. }
  325. return backGroundStr;
  326. }
  327. }
  328. [Subscription("PM1.IsF2ClnOn")]
  329. public bool IsF2ClnOn { get; set; }
  330. public string F2ClnBrush
  331. {
  332. get
  333. {
  334. if (IsF2ClnOn)
  335. {
  336. return "Green";
  337. }
  338. return backGroundStr;
  339. }
  340. }
  341. [Subscription("PM1.IsHFClnOn")]
  342. public bool IsHFClnOn { get; set; }
  343. public string HFClnBrush
  344. {
  345. get
  346. {
  347. if (IsHFClnOn)
  348. {
  349. return "Green";
  350. }
  351. return backGroundStr;
  352. }
  353. }
  354. [Subscription("PM1.IsDEPOOn")]
  355. public bool IsDEPOOn { get; set; }
  356. public string DEPOBrush
  357. {
  358. get
  359. {
  360. if (IsDEPOOn)
  361. {
  362. return "Green";
  363. }
  364. return backGroundStr;
  365. }
  366. }
  367. [Subscription("PM1.HTR1Enable")]
  368. public bool IsHTR1Enable { get; set; }
  369. public string HTR1Brush
  370. {
  371. get
  372. {
  373. if (IsHTR1Enable)
  374. {
  375. return "Green";
  376. }
  377. return backGroundStr;
  378. }
  379. }
  380. [Subscription("PM1.HTR2Enable")]
  381. public bool IsHTR2Enable { get; set; }
  382. public string HTR2Brush
  383. {
  384. get
  385. {
  386. if (IsHTR2Enable)
  387. {
  388. return "Green";
  389. }
  390. return backGroundStr;
  391. }
  392. }
  393. [Subscription("PM1.HTR3Enable")]
  394. public bool IsHTR3Enable { get; set; }
  395. public string HTR3Brush
  396. {
  397. get
  398. {
  399. if (IsHTR3Enable)
  400. {
  401. return "Green";
  402. }
  403. return backGroundStr;
  404. }
  405. }
  406. [Subscription("PM1.AUCPump.DeviceData")]
  407. public AITValveData AUCPump { get; set; }
  408. public string AUCPumpBrush
  409. {
  410. get
  411. {
  412. if (AUCPump != null && AUCPump.Feedback)
  413. {
  414. return "Green";
  415. }
  416. return backGroundStr;
  417. }
  418. }
  419. [Subscription("PM1.BothPump1.DeviceData")]
  420. public AITValveData BothPump1 { get; set; }
  421. public string BothPump1Brush
  422. {
  423. get
  424. {
  425. if (BothPump1 != null && BothPump1.Feedback)
  426. {
  427. return "Green";
  428. }
  429. return backGroundStr;
  430. }
  431. }
  432. [Subscription("PM1.BothPump2.DeviceData")]
  433. public AITValveData BothPump2 { get; set; }
  434. public string BothPump2Brush
  435. {
  436. get
  437. {
  438. if (BothPump2 != null && BothPump2.Feedback)
  439. {
  440. return "Green";
  441. }
  442. return backGroundStr;
  443. }
  444. }
  445. [Subscription("PM1.AGVPump.DeviceData")]
  446. public AITValveData AGVPump { get; set; }
  447. public string AGVPumpBrush
  448. {
  449. get
  450. {
  451. if (AGVPump != null && AGVPump.Feedback)
  452. {
  453. return "Green";
  454. }
  455. return backGroundStr;
  456. }
  457. }
  458. [Subscription("PM1.AGV2Pump.DeviceData")]
  459. public AITValveData AGV2Pump { get; set; }
  460. public string AGV2PumpBrush
  461. {
  462. get
  463. {
  464. if (AGV2Pump != null && AGV2Pump.Feedback)
  465. {
  466. return "Green";
  467. }
  468. return backGroundStr;
  469. }
  470. }
  471. [Subscription("PM1.HMNT.DeviceData")]
  472. public AITValveData HMNT { get; set; }
  473. public string HMNTBrush
  474. {
  475. get
  476. {
  477. if (HMNT != null && HMNT.Feedback)
  478. {
  479. return "Green";
  480. }
  481. return "#FFB0D1F1";
  482. }
  483. }
  484. [Subscription("PM1.HZERO.DeviceData")]
  485. public AITValveData HZERO { get; set; }
  486. public string HZEROBrush
  487. {
  488. get
  489. {
  490. if (HZERO != null && HZERO.Feedback)
  491. {
  492. return "Green";
  493. }
  494. return "#FFB0D1F1";
  495. }
  496. }
  497. [Subscription("PM1.CMNT.DeviceData")]
  498. public AITValveData CMNT { get; set; }
  499. public string CMNTBrush
  500. {
  501. get
  502. {
  503. if (CMNT != null && CMNT.Feedback)
  504. {
  505. return "Green";
  506. }
  507. return "#FFB0D1F1";
  508. }
  509. }
  510. [Subscription("PM1.CZERO.DeviceData")]
  511. public AITValveData CZERO { get; set; }
  512. public string CZEROBrush
  513. {
  514. get
  515. {
  516. if (CZERO != null && CZERO.Feedback)
  517. {
  518. return "Green";
  519. }
  520. return "#FFB0D1F1";
  521. }
  522. }
  523. [Subscription("PM1.HREF.DeviceData")]
  524. public AITValveData HREF { get; set; }
  525. public string HREFBrush
  526. {
  527. get
  528. {
  529. if (HREF != null && HREF.Feedback)
  530. {
  531. return "Green";
  532. }
  533. return "#FFB0D1F1";
  534. }
  535. }
  536. [Subscription("PM1.CREF.DeviceData")]
  537. public AITValveData CREF2 { get; set; }
  538. public string CREF2Brush
  539. {
  540. get
  541. {
  542. if (CREF2 != null && CREF2.Feedback)
  543. {
  544. return "Green";
  545. }
  546. return "#FFB0D1F1";
  547. }
  548. }
  549. [Subscription("PM1.IsCREFOn")]
  550. public bool IsCREFOn { get; set; }
  551. public string CREFBrush
  552. {
  553. get
  554. {
  555. if (IsCREFOn)
  556. {
  557. return "Green";
  558. }
  559. return "#FFB0D1F1";
  560. }
  561. }
  562. [Subscription("PM1.IsSIREFOn")]
  563. public bool IsSIREFOn { get; set; }
  564. public string SIREFBrush
  565. {
  566. get
  567. {
  568. if (IsSIREFOn)
  569. {
  570. return "Green";
  571. }
  572. return "#FFB0D1F1";
  573. }
  574. }
  575. #endregion
  576. private Dictionary<string, bool> DictValveIsILKOK = new Dictionary<string, bool>();
  577. #region MFCs
  578. [Subscription("PM1.MFC1.DeviceData")]
  579. public AITMfcData MFC1Data { get; set; }
  580. [Subscription("PM1.MFC2.DeviceData")]
  581. public AITMfcData MFC2Data { get; set; }
  582. [Subscription("PM1.MFC3.DeviceData")]
  583. public AITMfcData MFC3Data { get; set; }
  584. [Subscription("PM1.MFC4.DeviceData")]
  585. public AITMfcData MFC4Data { get; set; }
  586. [Subscription("PM1.MFC5.DeviceData")]
  587. public AITMfcData MFC5Data { get; set; }
  588. [Subscription("PM1.MFC6.DeviceData")]
  589. public AITMfcData MFC6Data { get; set; }
  590. [Subscription("PM1.MFC7.DeviceData")]
  591. public AITMfcData MFC7Data { get; set; }
  592. [Subscription("PM1.MFC8.DeviceData")]
  593. public AITMfcData MFC8Data { get; set; }
  594. [Subscription("PM1.MFC9.DeviceData")]
  595. public AITMfcData MFC9Data { get; set; }
  596. [Subscription("PM1.MFC10.DeviceData")]
  597. public AITMfcData MFC10Data { get; set; }
  598. [Subscription("PM1.MFC11.DeviceData")]
  599. public AITMfcData MFC11Data { get; set; }
  600. [Subscription("PM1.MFC12.DeviceData")]
  601. public AITMfcData MFC12Data { get; set; }
  602. [Subscription("PM1.MFC13.DeviceData")]
  603. public AITMfcData MFC13Data { get; set; }
  604. [Subscription("PM1.MFC16.DeviceData")]
  605. public AITMfcData MFC16Data { get; set; }
  606. [Subscription("PM1.MFC17.DeviceData")]
  607. public AITMfcData MFC17Data { get; set; }
  608. [Subscription("PM1.MFC31.DeviceData")]
  609. public AITMfcData MFC31Data { get; set; }
  610. [Subscription("PM1.MFC32.DeviceData")]
  611. public AITMfcData MFC32Data { get; set; }
  612. #endregion
  613. [Subscription("PM1.MFM6.DeviceData")]
  614. public AITWaterFlowMeterData MFM6Flow { get; set; }
  615. [Subscription("PM1.MFM7.DeviceData")]
  616. public AITWaterFlowMeterData MFM7Flow { get; set; }
  617. [Subscription("PM1.MFM8.DeviceData")]
  618. public AITWaterFlowMeterData MFM8Flow { get; set; }
  619. [Subscription("PM1.MFM9.DeviceData")]
  620. public AITWaterFlowMeterData MFM9Flow { get; set; }
  621. [Subscription("PM1.MFM11.DeviceData")]
  622. public AITWaterFlowMeterData MFM11Flow { get; set; }
  623. [Subscription("PM1.MFM12.DeviceData")]
  624. public AITWaterFlowMeterData MFM12Flow { get; set; }
  625. [Subscription("PM1.MFM13.DeviceData")]
  626. public AITWaterFlowMeterData MFM13Flow { get; set; }
  627. [Subscription("PM1.MFM16.DeviceData")]
  628. public AITWaterFlowMeterData MFM16Flow { get; set; }
  629. [Subscription("PM1.RfPower.IsPowerOn")]
  630. public bool IsPowerOn { get; set; }
  631. [Subscription("PM1.RfPower.PowerSetPoint")]
  632. public float PowerSetPoint { get; set; }
  633. [Subscription("PM1.RfPower.ForwardPower")]
  634. public float ForwardPower { get; set; }
  635. [Subscription("PM1.RfMatch.Capacitance1PositionFeedBack")]
  636. public float Capacitance1PositionFeedBack { get; set; }
  637. [Subscription("PM1.RfMatch.Capacitance2PositionFeedBack")]
  638. public float Capacitance2PositionFeedBack { get; set; }
  639. [Subscription("PM1.RfMatch.VppFeedBack")]
  640. public float VppFeedBack { get; set; }
  641. public ICommand CmdSetValve { get; set; }
  642. private GasPanelStateType _selectedGasStateType = GasPanelStateType.Monitor;
  643. public GasPanelStateType SelectedGasStateType
  644. {
  645. get
  646. {
  647. return _selectedGasStateType;
  648. }
  649. set
  650. {
  651. _selectedGasStateType = value;
  652. NotifyOfPropertyChange(nameof(SelectedGasStateType));
  653. }
  654. }
  655. public AnalogDeviceDataItem MFC1
  656. {
  657. get
  658. {
  659. return new AnalogDeviceDataItem
  660. {
  661. Type = "MFC",
  662. DeviceName = MFC1Data.UniqueName,
  663. DeviceId = MFC1Data.DeviceSchematicId,
  664. DisplayName = MFC1Data.DisplayName,
  665. Scale = MFC1Data.Scale,
  666. Unit = MFC1Data.Unit,
  667. FeedBack = MFC1Data.FeedBack,
  668. SetPoint = MFC1Data.SetPoint,
  669. VirtualFeedBack = MFC1Data.VirtualFeedBack
  670. };
  671. }
  672. }
  673. public AnalogDeviceDataItem MFC2
  674. {
  675. get
  676. {
  677. return new AnalogDeviceDataItem
  678. {
  679. Type = "MFC",
  680. DeviceName = MFC2Data.UniqueName,
  681. DeviceId = MFC2Data.DeviceSchematicId,
  682. DisplayName = MFC2Data.DisplayName,
  683. Scale = MFC2Data.Scale,
  684. Unit = MFC2Data.Unit,
  685. FeedBack = MFC2Data.FeedBack,
  686. SetPoint = MFC2Data.SetPoint,
  687. VirtualFeedBack = MFC2Data.VirtualFeedBack
  688. };
  689. }
  690. }
  691. public AnalogDeviceDataItem MFC3
  692. {
  693. get
  694. {
  695. return new AnalogDeviceDataItem
  696. {
  697. Type = "MFC",
  698. DeviceName = MFC3Data.UniqueName,
  699. DeviceId = MFC3Data.DeviceSchematicId,
  700. DisplayName = MFC3Data.DisplayName,
  701. Scale = MFC3Data.Scale,
  702. Unit = MFC3Data.Unit,
  703. FeedBack = MFC3Data.FeedBack,
  704. SetPoint = MFC3Data.SetPoint,
  705. VirtualFeedBack = MFC3Data.VirtualFeedBack
  706. };
  707. }
  708. }
  709. public AnalogDeviceDataItem MFC4
  710. {
  711. get
  712. {
  713. return new AnalogDeviceDataItem
  714. {
  715. Type = "MFC",
  716. DeviceName = MFC4Data.UniqueName,
  717. DeviceId = MFC4Data.DeviceSchematicId,
  718. DisplayName = MFC4Data.DisplayName,
  719. Scale = MFC4Data.Scale,
  720. Unit = MFC4Data.Unit,
  721. FeedBack = MFC4Data.FeedBack,
  722. SetPoint = MFC4Data.SetPoint,
  723. VirtualFeedBack = MFC4Data.VirtualFeedBack
  724. };
  725. }
  726. }
  727. public AnalogDeviceDataItem MFC5
  728. {
  729. get
  730. {
  731. return new AnalogDeviceDataItem
  732. {
  733. Type = "MFC",
  734. DeviceName = MFC5Data.UniqueName,
  735. DeviceId = MFC5Data.DeviceSchematicId,
  736. DisplayName = MFC5Data.DisplayName,
  737. Scale = MFC5Data.Scale,
  738. Unit = MFC5Data.Unit,
  739. FeedBack = MFC5Data.FeedBack,
  740. SetPoint = MFC5Data.SetPoint,
  741. VirtualFeedBack = MFC5Data.VirtualFeedBack
  742. };
  743. }
  744. }
  745. public AnalogDeviceDataItem MFC6
  746. {
  747. get
  748. {
  749. return new AnalogDeviceDataItem
  750. {
  751. Type = "MFC",
  752. DeviceName = MFC6Data.UniqueName,
  753. DeviceId = MFC6Data.DeviceSchematicId,
  754. DisplayName = MFC6Data.DisplayName,
  755. Scale = MFC6Data.Scale,
  756. Unit = MFC6Data.Unit,
  757. FeedBack = MFC6Data.FeedBack,
  758. SetPoint = MFC6Data.SetPoint,
  759. VirtualFeedBack = MFC6Data.VirtualFeedBack
  760. };
  761. }
  762. }
  763. public AnalogDeviceDataItem MFC7
  764. {
  765. get
  766. {
  767. return new AnalogDeviceDataItem
  768. {
  769. Type = "MFC",
  770. DeviceName = MFC7Data.UniqueName,
  771. DeviceId = MFC7Data.DeviceSchematicId,
  772. DisplayName = MFC7Data.DisplayName,
  773. Scale = MFC7Data.Scale,
  774. Unit = MFC7Data.Unit,
  775. FeedBack = MFC7Data.FeedBack,
  776. SetPoint = MFC7Data.SetPoint,
  777. VirtualFeedBack = MFC7Data.VirtualFeedBack
  778. };
  779. }
  780. }
  781. public AnalogDeviceDataItem MFC8
  782. {
  783. get
  784. {
  785. return new AnalogDeviceDataItem
  786. {
  787. Type = "MFC",
  788. DeviceName = MFC8Data.UniqueName,
  789. DeviceId = MFC8Data.DeviceSchematicId,
  790. DisplayName = MFC8Data.DisplayName,
  791. Scale = MFC8Data.Scale,
  792. Unit = MFC8Data.Unit,
  793. FeedBack = MFC8Data.FeedBack,
  794. SetPoint = MFC8Data.SetPoint,
  795. VirtualFeedBack = MFC8Data.VirtualFeedBack
  796. };
  797. }
  798. }
  799. public AnalogDeviceDataItem MFC9
  800. {
  801. get
  802. {
  803. return new AnalogDeviceDataItem
  804. {
  805. Type = "MFC",
  806. DeviceName = MFC9Data.UniqueName,
  807. DeviceId = MFC9Data.DeviceSchematicId,
  808. DisplayName = MFC9Data.DisplayName,
  809. Scale = MFC9Data.Scale,
  810. Unit = MFC9Data.Unit,
  811. FeedBack = MFC9Data.FeedBack,
  812. SetPoint = MFC9Data.SetPoint,
  813. VirtualFeedBack = MFC9Data.VirtualFeedBack
  814. };
  815. }
  816. }
  817. public AnalogDeviceDataItem MFC10
  818. {
  819. get
  820. {
  821. return new AnalogDeviceDataItem
  822. {
  823. Type = "MFC",
  824. DeviceName = MFC10Data.UniqueName,
  825. DeviceId = MFC10Data.DeviceSchematicId,
  826. DisplayName = MFC10Data.DisplayName,
  827. Scale = MFC10Data.Scale,
  828. Unit = MFC10Data.Unit,
  829. FeedBack = MFC10Data.FeedBack,
  830. SetPoint = MFC10Data.SetPoint,
  831. VirtualFeedBack = MFC10Data.VirtualFeedBack
  832. };
  833. }
  834. }
  835. public AnalogDeviceDataItem MFC11
  836. {
  837. get
  838. {
  839. return new AnalogDeviceDataItem
  840. {
  841. Type = "MFC",
  842. DeviceName = MFC11Data.UniqueName,
  843. DeviceId = MFC11Data.DeviceSchematicId,
  844. DisplayName = MFC11Data.DisplayName,
  845. Scale = MFC11Data.Scale,
  846. Unit = MFC11Data.Unit,
  847. FeedBack = MFC11Data.FeedBack,
  848. SetPoint = MFC11Data.SetPoint,
  849. VirtualFeedBack = MFC11Data.VirtualFeedBack
  850. };
  851. }
  852. }
  853. public AnalogDeviceDataItem MFC12
  854. {
  855. get
  856. {
  857. return new AnalogDeviceDataItem
  858. {
  859. Type = "MFC",
  860. DeviceName = MFC12Data.UniqueName,
  861. DeviceId = MFC12Data.DeviceSchematicId,
  862. DisplayName = MFC12Data.DisplayName,
  863. Scale = MFC12Data.Scale,
  864. Unit = MFC12Data.Unit,
  865. FeedBack = MFC12Data.FeedBack,
  866. SetPoint = MFC12Data.SetPoint,
  867. VirtualFeedBack = MFC12Data.VirtualFeedBack
  868. };
  869. }
  870. }
  871. public AnalogDeviceDataItem MFC13
  872. {
  873. get
  874. {
  875. return new AnalogDeviceDataItem
  876. {
  877. Type = "MFC",
  878. DeviceName = MFC13Data.UniqueName,
  879. DeviceId = MFC13Data.DeviceSchematicId,
  880. DisplayName = MFC13Data.DisplayName,
  881. Scale = MFC13Data.Scale,
  882. Unit = MFC13Data.Unit,
  883. FeedBack = MFC13Data.FeedBack,
  884. SetPoint = MFC13Data.SetPoint,
  885. VirtualFeedBack = MFC13Data.VirtualFeedBack
  886. };
  887. }
  888. }
  889. public AnalogDeviceDataItem MFC16
  890. {
  891. get
  892. {
  893. return new AnalogDeviceDataItem
  894. {
  895. Type = "MFC",
  896. DeviceName = MFC16Data.UniqueName,
  897. DeviceId = MFC16Data.DeviceSchematicId,
  898. DisplayName = MFC16Data.DisplayName,
  899. Scale = MFC16Data.Scale,
  900. Unit = MFC16Data.Unit,
  901. FeedBack = MFC16Data.FeedBack,
  902. SetPoint = MFC16Data.SetPoint,
  903. VirtualFeedBack = MFC16Data.VirtualFeedBack
  904. };
  905. }
  906. }
  907. public AnalogDeviceDataItem MFC17
  908. {
  909. get
  910. {
  911. return new AnalogDeviceDataItem
  912. {
  913. Type = "MFC",
  914. DeviceName = MFC17Data.UniqueName,
  915. DeviceId = MFC17Data.DeviceSchematicId,
  916. DisplayName = MFC17Data.DisplayName,
  917. Scale = MFC17Data.Scale,
  918. Unit = MFC17Data.Unit,
  919. FeedBack = MFC17Data.FeedBack,
  920. SetPoint = MFC17Data.SetPoint,
  921. VirtualFeedBack = MFC17Data.VirtualFeedBack
  922. };
  923. }
  924. }
  925. public AnalogDeviceDataItem MFC31
  926. {
  927. get
  928. {
  929. return new AnalogDeviceDataItem
  930. {
  931. Type = "MFC",
  932. DeviceName = MFC31Data.UniqueName,
  933. DeviceId = MFC31Data.DeviceSchematicId,
  934. DisplayName = MFC31Data.DisplayName,
  935. Scale = MFC31Data.Scale,
  936. Unit = MFC31Data.Unit,
  937. FeedBack = MFC31Data.FeedBack,
  938. SetPoint = MFC31Data.SetPoint,
  939. VirtualFeedBack = MFC31Data.VirtualFeedBack
  940. };
  941. }
  942. }
  943. public AnalogDeviceDataItem MFC32
  944. {
  945. get
  946. {
  947. return new AnalogDeviceDataItem
  948. {
  949. Type = "MFC",
  950. DeviceName = MFC32Data.UniqueName,
  951. DeviceId = MFC32Data.DeviceSchematicId,
  952. DisplayName = MFC32Data.DisplayName,
  953. Scale = MFC32Data.Scale,
  954. Unit = MFC32Data.Unit,
  955. FeedBack = MFC32Data.FeedBack,
  956. SetPoint = MFC32Data.SetPoint,
  957. VirtualFeedBack = MFC32Data.VirtualFeedBack
  958. };
  959. }
  960. }
  961. public AnalogDeviceDataItem MFM6
  962. {
  963. get
  964. {
  965. return new AnalogDeviceDataItem
  966. {
  967. Type = "MFM",
  968. DeviceName = MFM6Flow.DisplayName,
  969. DeviceId = MFM6Flow.DeviceSchematicId,
  970. DisplayName = MFM6Flow.DisplayName,
  971. Scale = MFM6Flow.Scale,
  972. Unit = MFM6Flow.Unit,
  973. FeedBack = MFM6Flow.FeedBack,
  974. SetPoint = MFM6Flow.SetPoint,
  975. };
  976. }
  977. }
  978. public AnalogDeviceDataItem MFM7
  979. {
  980. get
  981. {
  982. return new AnalogDeviceDataItem
  983. {
  984. Type = "MFM",
  985. DeviceName = MFM7Flow.DisplayName,
  986. DeviceId = MFM7Flow.DeviceSchematicId,
  987. DisplayName = MFM7Flow.DisplayName,
  988. Scale = MFM7Flow.Scale,
  989. Unit = MFM7Flow.Unit,
  990. FeedBack = MFM7Flow.FeedBack,
  991. SetPoint = MFM7Flow.SetPoint,
  992. };
  993. }
  994. }
  995. public AnalogDeviceDataItem MFM8
  996. {
  997. get
  998. {
  999. return new AnalogDeviceDataItem
  1000. {
  1001. Type = "MFM",
  1002. DeviceName = MFM8Flow.DisplayName,
  1003. DeviceId = MFM8Flow.DeviceSchematicId,
  1004. DisplayName = MFM8Flow.DisplayName,
  1005. Scale = MFM8Flow.Scale,
  1006. Unit = MFM8Flow.Unit,
  1007. FeedBack = MFM8Flow.FeedBack,
  1008. SetPoint = MFM8Flow.SetPoint,
  1009. };
  1010. }
  1011. }
  1012. public AnalogDeviceDataItem MFM9
  1013. {
  1014. get
  1015. {
  1016. return new AnalogDeviceDataItem
  1017. {
  1018. Type = "MFM",
  1019. DeviceName = MFM9Flow.DisplayName,
  1020. DeviceId = MFM9Flow.DeviceSchematicId,
  1021. DisplayName = MFM9Flow.DisplayName,
  1022. Scale = MFM9Flow.Scale,
  1023. Unit = MFM9Flow.Unit,
  1024. FeedBack = MFM9Flow.FeedBack,
  1025. SetPoint = MFM9Flow.SetPoint,
  1026. };
  1027. }
  1028. }
  1029. public AnalogDeviceDataItem MFM11
  1030. {
  1031. get
  1032. {
  1033. return new AnalogDeviceDataItem
  1034. {
  1035. Type = "MFM",
  1036. DeviceName = MFM11Flow.DisplayName,
  1037. DeviceId = MFM11Flow.DeviceSchematicId,
  1038. DisplayName = MFM11Flow.DisplayName,
  1039. Scale = MFM11Flow.Scale,
  1040. Unit = MFM11Flow.Unit,
  1041. FeedBack = MFM11Flow.FeedBack,
  1042. SetPoint = MFM11Flow.SetPoint,
  1043. };
  1044. }
  1045. }
  1046. public AnalogDeviceDataItem MFM12
  1047. {
  1048. get
  1049. {
  1050. return new AnalogDeviceDataItem
  1051. {
  1052. Type = "MFM",
  1053. DeviceName = MFM12Flow.DisplayName,
  1054. DeviceId = MFM12Flow.DeviceSchematicId,
  1055. DisplayName = MFM12Flow.DisplayName,
  1056. Scale = MFM12Flow.Scale,
  1057. Unit = MFM12Flow.Unit,
  1058. FeedBack = MFM12Flow.FeedBack,
  1059. SetPoint = MFM12Flow.SetPoint,
  1060. };
  1061. }
  1062. }
  1063. public AnalogDeviceDataItem MFM13
  1064. {
  1065. get
  1066. {
  1067. return new AnalogDeviceDataItem
  1068. {
  1069. Type = "MFM",
  1070. DeviceName = MFM13Flow.DisplayName,
  1071. DeviceId = MFM13Flow.DeviceSchematicId,
  1072. DisplayName = MFM13Flow.DisplayName,
  1073. Scale = MFM13Flow.Scale,
  1074. Unit = MFM13Flow.Unit,
  1075. FeedBack = MFM13Flow.FeedBack,
  1076. SetPoint = MFM13Flow.SetPoint,
  1077. };
  1078. }
  1079. }
  1080. public AnalogDeviceDataItem MFM16
  1081. {
  1082. get
  1083. {
  1084. return new AnalogDeviceDataItem
  1085. {
  1086. Type = "MFM",
  1087. DeviceName = MFM16Flow.DisplayName,
  1088. DeviceId = MFM16Flow.DeviceSchematicId,
  1089. DisplayName = MFM16Flow.DisplayName,
  1090. Scale = MFM16Flow.Scale,
  1091. Unit = MFM16Flow.Unit,
  1092. FeedBack = MFM16Flow.FeedBack,
  1093. SetPoint = MFM16Flow.SetPoint,
  1094. };
  1095. }
  1096. }
  1097. public string IsRfPowerOn
  1098. {
  1099. get
  1100. {
  1101. return IsPowerOn ? "On" : "Off";
  1102. }
  1103. }
  1104. private bool _manualCheckSelect = false;
  1105. private bool _manualCheck = true;
  1106. public bool ManualCheck
  1107. {
  1108. get => _manualCheck;
  1109. set
  1110. {
  1111. _manualCheck = value;
  1112. NotifyOfPropertyChange(nameof(ManualCheck));
  1113. }
  1114. }
  1115. private bool _manualCheckHide;
  1116. public bool ManumalCheckHide
  1117. {
  1118. get => _manualCheckHide;
  1119. set
  1120. {
  1121. _manualCheckHide = value;
  1122. NotifyOfPropertyChange(nameof(ManumalCheckHide));
  1123. }
  1124. }
  1125. public bool ValveTrue { get; set; } = true;
  1126. public bool ValveFalse { get; set; } = false;
  1127. private bool _enablePLCPointControl = false;
  1128. public bool EnablePLCPointControl
  1129. {
  1130. get => _enablePLCPointControl;
  1131. set
  1132. {
  1133. _enablePLCPointControl = value;
  1134. NotifyOfPropertyChange(nameof(EnablePLCPointControl));
  1135. }
  1136. }
  1137. public GasPanelViewModel()
  1138. {
  1139. CmdSetMfcFlow = new DelegateCommand<object>(PerformCmdSetMfcFlow);
  1140. CmdSetMfmFlow = new DelegateCommand<object>(PerformCmdSetMfmFlow);
  1141. }
  1142. public void SelectedGasStateTypeCmd(string cmd)
  1143. {
  1144. switch (cmd)
  1145. {
  1146. case "Manual":
  1147. SelectedGasStateType = GasPanelStateType.Manual;
  1148. ManualEnable = true;
  1149. break;
  1150. case "Monitor":
  1151. SelectedGasStateType = GasPanelStateType.Monitor;
  1152. ManualEnable = true;
  1153. break;
  1154. case "Recipe":
  1155. SelectedGasStateType = GasPanelStateType.Recipe;
  1156. ManualEnable = false;
  1157. break;
  1158. default:
  1159. break;
  1160. }
  1161. }
  1162. protected override void OnActivate()
  1163. {
  1164. base.OnActivate();
  1165. // EnableServiceControl = (bool)QueryDataClient.Instance.Service.GetConfig("System.IsServiceControlMode");
  1166. // IsMfcNRInstalled = (bool)QueryDataClient.Instance.Service.GetConfig("PM1.MFC.MfcNR.IsMFCInstalled");
  1167. }
  1168. public void SetEditClick()
  1169. {
  1170. IsRecipeEdit = true;
  1171. // EnableServiceControl = false;
  1172. }
  1173. protected override void OnDeactivate(bool close)
  1174. {
  1175. base.OnDeactivate(close);
  1176. //IsManagerPermission = false;
  1177. }
  1178. public void SetManual()
  1179. {
  1180. if (!_manualCheckSelect)
  1181. {
  1182. _manualCheckSelect = !_manualCheckSelect;
  1183. IsManagerPermission = true;
  1184. EnablePLCPointControl = false;
  1185. }
  1186. else
  1187. {
  1188. IsManagerPermission = true;
  1189. ManualCheck = false;
  1190. ManumalCheckHide = true;
  1191. _manualCheckSelect = !_manualCheckSelect;
  1192. EnablePLCPointControl = true;
  1193. }
  1194. }
  1195. public void OpenAll()
  1196. {
  1197. if (!VentValveData.IsOpen)
  1198. InvokeClient.Instance.Service.DoOperation($"{VentValveData.UniqueName}.{AITValveOperation.GVTurnValve}", true);
  1199. if (!PumpValveData.IsOpen)
  1200. InvokeClient.Instance.Service.DoOperation($"{PumpValveData.UniqueName}.{AITValveOperation.GVTurnValve}", true);
  1201. }
  1202. public void CloseAll()
  1203. {
  1204. if (PumpValveData.IsOpen)
  1205. InvokeClient.Instance.Service.DoOperation($"{PumpValveData.UniqueName}.{AITValveOperation.GVTurnValve}", false);
  1206. if (VentValveData.IsOpen)
  1207. InvokeClient.Instance.Service.DoOperation($"{VentValveData.UniqueName}.{AITValveOperation.GVTurnValve}", false);
  1208. }
  1209. private void PerformCmdSetMfcFlow(object param)
  1210. {
  1211. object[] args = (object[])param; //0:devicename, 1:operation, 2:args
  1212. if (args.Length == 3)
  1213. {
  1214. InvokeClient.Instance.Service.DoOperation($"{args[0]}.{args[1]}", args[2]);
  1215. }
  1216. }
  1217. private void PerformCmdSetMfmFlow(object param)
  1218. {
  1219. //object[] args = (object[])param; //0:devicename, 1:operation, 2:args
  1220. //if (args.Length == 3)
  1221. //{
  1222. // InvokeClient.Instance.Service.DoOperation($"PM1.{args[0]}.{args[1]}", args[2]);
  1223. //}
  1224. }
  1225. bool isSensorRecipeOK = false;
  1226. Dictionary<string, object> oldresult;
  1227. private Dictionary<string, object> ClearNotChangedValue(Dictionary<string, object> result)
  1228. {
  1229. Dictionary<string, object> temp = result;
  1230. if (oldresult == null)
  1231. {
  1232. oldresult = result;
  1233. }
  1234. else
  1235. {
  1236. try
  1237. {
  1238. List<string> strkeys = new List<string>();
  1239. foreach (var key in result.Keys)
  1240. {
  1241. if (_subscribedKeys.Contains(key) && oldresult.ContainsKey(key) && result.ContainsKey(key))
  1242. {
  1243. if (result[key].GetType() == typeof(AITValveData) && (((AITValveData)oldresult[key]).Feedback != ((AITValveData)result[key]).Feedback
  1244. || ((AITValveData)oldresult[key]).VirtualFeedback != ((AITValveData)result[key]).VirtualFeedback))
  1245. {
  1246. strkeys.Add(key);
  1247. }
  1248. else if (result[key].GetType() == typeof(AITSensorData) && ((AITSensorData)oldresult[key]).Value != ((AITSensorData)result[key]).Value)
  1249. {
  1250. strkeys.Add(key);
  1251. }
  1252. else if (result[key].GetType() == typeof(AITMfcData) && (((AITMfcData)oldresult[key]).FeedBack != ((AITMfcData)result[key]).FeedBack ||
  1253. ((AITMfcData)oldresult[key]).VirtualFeedBack != ((AITMfcData)result[key]).VirtualFeedBack))
  1254. {
  1255. strkeys.Add(key);
  1256. }
  1257. else if (result[key].GetType() == typeof(float) && (float)oldresult[key] == (float)result[key])
  1258. {
  1259. strkeys.Add(key);
  1260. }
  1261. else if (result[key].GetType() == typeof(int) && (int)oldresult[key] == (int)result[key])
  1262. {
  1263. strkeys.Add(key);
  1264. }
  1265. else if (result[key].GetType() == typeof(bool) && (bool)oldresult[key] == (bool)result[key])
  1266. {
  1267. strkeys.Add(key);
  1268. }
  1269. }
  1270. }
  1271. for (int i = 0; i < strkeys.Count; i++)
  1272. {
  1273. temp.Remove(strkeys[i]);
  1274. }
  1275. }
  1276. catch (Exception ex)
  1277. {
  1278. LOG.Error("由RT返回的数据更新失败" + "ClearNotChangedValue", ex);
  1279. }
  1280. }
  1281. return temp;
  1282. }
  1283. protected override void Poll()
  1284. {
  1285. if (_subscribedKeys.Count > 0)
  1286. {
  1287. Dictionary<string, object> result = QueryDataClient.Instance.Service.PollData(_subscribedKeys);
  1288. Dictionary<string, object> Tempresult = new Dictionary<string, object>(result);
  1289. if (SelectedGasStateType != GasPanelStateType.Monitor)
  1290. {
  1291. result = ClearNotChangedValue(result);
  1292. }
  1293. oldresult = Tempresult;
  1294. if (result == null)
  1295. {
  1296. LOG.Error("获取RT数据失败");
  1297. return;
  1298. }
  1299. if (result.Count != _subscribedKeys.Count)
  1300. {
  1301. string unknowKeys = string.Empty;
  1302. foreach (string key in _subscribedKeys)
  1303. {
  1304. if (!result.ContainsKey(key))
  1305. {
  1306. unknowKeys += key + "\r\n";
  1307. }
  1308. }
  1309. }
  1310. InvokeBeforeUpdateProperty(result);
  1311. UpdateValue(result);
  1312. Application.Current?.Dispatcher.Invoke(new Action(() =>
  1313. {
  1314. if (result.Count != 0)
  1315. {
  1316. InvokePropertyChanged();
  1317. }
  1318. InvokeAfterUpdateProperty(result);
  1319. }));
  1320. }
  1321. }
  1322. protected override void InvokeBeforeUpdateProperty(Dictionary<string, object> data)
  1323. {
  1324. base.InvokeBeforeUpdateProperty(data);
  1325. }
  1326. protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
  1327. {
  1328. base.InvokeAfterUpdateProperty(data);
  1329. if (SensorRecipeOK != null && SensorRecipeOK.Value)
  1330. {
  1331. if (isSensorRecipeOK != SensorRecipeOK.Value)
  1332. {
  1333. _manualCheckSelect = false;
  1334. IsManagerPermission = true;
  1335. IsRecipeEdit = true;
  1336. // EnableServiceControl = false;
  1337. }
  1338. isSensorRecipeOK = SensorRecipeOK.Value;
  1339. var properties = GetType().GetProperties();
  1340. if (SelectedGasStateType == GasPanelStateType.Monitor )
  1341. {
  1342. foreach (var item in properties)
  1343. {
  1344. var tempObj = item.GetValue(this);
  1345. if (tempObj is AITValveData)
  1346. {
  1347. var aitTempObj = (AITValveData)tempObj;
  1348. if (DictValveIsILKOK.ContainsKey(aitTempObj.DeviceName) && DictValveIsILKOK[aitTempObj.DeviceName] != aitTempObj.IsILKOK)
  1349. {
  1350. DictValveIsILKOK[aitTempObj.DeviceName] = aitTempObj.IsILKOK;
  1351. NotifyOfPropertyChange(aitTempObj.DeviceName);
  1352. }
  1353. }
  1354. }
  1355. }
  1356. }
  1357. }
  1358. public void SwichValue(string name)
  1359. {
  1360. if (SelectedGasStateType == GasPanelStateType.Monitor || SelectedGasStateType == GasPanelStateType.Recipe) return;
  1361. var dialog = new SwitchValueDialog { };
  1362. dialog.IsOpen = true;
  1363. switch (name.ToUpper())
  1364. {
  1365. case "BWR":
  1366. dialog.IsOpen = ValveBWR.Feedback;
  1367. break;
  1368. case "DPR":
  1369. dialog.IsOpen = ValveDPR.Feedback;
  1370. break;
  1371. case "CEXH":
  1372. dialog.IsOpen = IsCEXHOn;
  1373. break;
  1374. case "F2":
  1375. dialog.IsOpen = IsF2ClnOn;
  1376. break;
  1377. case "HF":
  1378. dialog.IsOpen = IsHFClnOn;
  1379. break;
  1380. case "DEPO":
  1381. dialog.IsOpen = IsDEPOOn;
  1382. break;
  1383. }
  1384. dialog.Owner = WinOwner;
  1385. dialog.Topmost = true;
  1386. dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;
  1387. dialog.DeviceName = $"Swich {name}";
  1388. dialog.ShowDialog();
  1389. if ((bool)dialog.IsSave)
  1390. {
  1391. switch (name.ToUpper())
  1392. {
  1393. case "BWR":
  1394. InvokeClient.Instance.Service.DoOperation($"{ValveBWR.UniqueName}.{AITValveOperation.GVTurnValve}", dialog.IsOpen);
  1395. break;
  1396. case "DPR":
  1397. InvokeClient.Instance.Service.DoOperation($"{ValveDPR.UniqueName}.{AITValveOperation.GVTurnValve}", dialog.IsOpen);
  1398. break;
  1399. case "CEXH":
  1400. InvokeClient.Instance.Service.DoOperation($"PM1.SetCEXHEnable", dialog.IsOpen);
  1401. break;
  1402. case "F2":
  1403. InvokeClient.Instance.Service.DoOperation($"PM1.SetF2ClnEnable", dialog.IsOpen);
  1404. break;
  1405. case "HF":
  1406. InvokeClient.Instance.Service.DoOperation($"PM1.SetHFClnEnable", dialog.IsOpen);
  1407. break;
  1408. case "DEPO":
  1409. InvokeClient.Instance.Service.DoOperation($"PM1.SetDEPOEnable", dialog.IsOpen);
  1410. break;
  1411. }
  1412. }
  1413. }
  1414. public void SetEnable(string name)
  1415. {
  1416. if (SelectedGasStateType == GasPanelStateType.Monitor || SelectedGasStateType == GasPanelStateType.Recipe) return;
  1417. var dialog = new SwitchValueDialog2 { };
  1418. dialog.IsOpen = true;
  1419. switch (name.ToUpper())
  1420. {
  1421. case "HTR1":
  1422. dialog.IsOpen = IsHTR1Enable;
  1423. break;
  1424. case "HTR2":
  1425. dialog.IsOpen = IsHTR2Enable;
  1426. break;
  1427. case "HTR3":
  1428. dialog.IsOpen = IsHTR3Enable;
  1429. break;
  1430. }
  1431. dialog.Owner = WinOwner;
  1432. dialog.Topmost = true;
  1433. dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;
  1434. dialog.DeviceName = $"Swich {name}";
  1435. dialog.ShowDialog();
  1436. if ((bool)dialog.IsSave)
  1437. {
  1438. switch (name.ToUpper())
  1439. {
  1440. case "HTR1":
  1441. InvokeClient.Instance.Service.DoOperation($"PM1.SetHTR1Enable", dialog.IsOpen);
  1442. break;
  1443. case "HTR2":
  1444. InvokeClient.Instance.Service.DoOperation($"PM1.SetHTR2Enable", dialog.IsOpen);
  1445. break;
  1446. case "HTR3":
  1447. InvokeClient.Instance.Service.DoOperation($"PM1.SetHTR3Enable", dialog.IsOpen);
  1448. break;
  1449. }
  1450. }
  1451. }
  1452. public void SelectPump(string _pumpname)
  1453. {
  1454. if (SelectedGasStateType == GasPanelStateType.Monitor || SelectedGasStateType == GasPanelStateType.Recipe) return;
  1455. if (!DialogBox.Confirm($"Are you sure change {_pumpname} status?"))
  1456. return;
  1457. if (_pumpname == "AUC")
  1458. {
  1459. InvokeClient.Instance.Service.DoOperation($"{AUCPump.UniqueName}.{AITValveOperation.GVTurnValve}", !AUCPump.Feedback);
  1460. }
  1461. if (_pumpname == "AGV1")
  1462. {
  1463. InvokeClient.Instance.Service.DoOperation($"{AGVPump.UniqueName}.{AITValveOperation.GVTurnValve}", !AGVPump.Feedback);
  1464. }
  1465. if (_pumpname == "AGV2")
  1466. {
  1467. InvokeClient.Instance.Service.DoOperation($"{AGV2Pump.UniqueName}.{AITValveOperation.GVTurnValve}", !AGV2Pump.Feedback);
  1468. }
  1469. if (_pumpname == "Both")
  1470. {
  1471. InvokeClient.Instance.Service.DoOperation($"{BothPump1.UniqueName}.{AITValveOperation.GVTurnValve}", !BothPump1.Feedback);
  1472. }
  1473. }
  1474. }
  1475. }