| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436 | 
							- using Aitex.Core.Common.DeviceData;
 
- using Aitex.Core.Util;
 
- using Caliburn.Micro;
 
- using Caliburn.Micro.Core;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.Common.RecipeCenter;
 
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
 
- using MECF.Framework.UI.Client.CenterViews.Dialogs;
 
- using MECF.Framework.UI.Core.Control;
 
- using OpenSEMI.ClientBase;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Linq;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- using FurnaceUI.Models;
 
- using FurnaceUI.Views.Editors;
 
- namespace FurnaceUI.Views.Operations
 
- {
 
-     public class GasDetailViewModel : FurnaceUIViewModelBase
 
-     {
 
-         private GasDetailView _view;
 
-         #region MFC
 
-         [Subscription("PM1.MFC1.DeviceData")]
 
-         public AITMfcData MFC1Data { get; set; }
 
-         [Subscription("PM1.MFC2.DeviceData")]
 
-         public AITMfcData MFC2Data { get; set; }
 
-         [Subscription("PM1.MFC3.DeviceData")]
 
-         public AITMfcData MFC3Data { get; set; }
 
-         [Subscription("PM1.MFC4.DeviceData")]
 
-         public AITMfcData MFC4Data { get; set; }
 
-         [Subscription("PM1.MFC5.DeviceData")]
 
-         public AITMfcData MFC5Data { get; set; }
 
-         [Subscription("PM1.MFC6.DeviceData")]
 
-         public AITMfcData MFC6Data { get; set; }
 
-         [Subscription("PM1.MFC7.DeviceData")]
 
-         public AITMfcData MFC7Data { get; set; }
 
-         [Subscription("PM1.MFC8.DeviceData")]
 
-         public AITMfcData MFC8Data { get; set; }
 
-         [Subscription("PM1.MFC9.DeviceData")]
 
-         public AITMfcData MFC9Data { get; set; }
 
-         [Subscription("PM1.MFC10.DeviceData")]
 
-         public AITMfcData MFC10Data { get; set; }
 
-         [Subscription("PM1.MFC11.DeviceData")]
 
-         public AITMfcData MFC11Data { get; set; }
 
-         [Subscription("PM1.MFC12.DeviceData")]
 
-         public AITMfcData MFC12Data { get; set; }
 
-         [Subscription("PM1.MFC13.DeviceData")]
 
-         public AITMfcData MFC13Data { get; set; }
 
-         [Subscription("PM1.MFC14.DeviceData")]
 
-         public AITMfcData MFC14Data { get; set; }
 
-         [Subscription("PM1.MFC15.DeviceData")]
 
-         public AITMfcData MFC15Data { get; set; }
 
-         [Subscription("PM1.MFC16.DeviceData")]
 
-         public AITMfcData MFC16Data { get; set; }
 
-         [Subscription("PM1.MFC17.DeviceData")]
 
-         public AITMfcData MFC17Data { get; set; }
 
-         [Subscription("PM1.MFC31.DeviceData")]
 
-         public AITMfcData MFC31Data { get; set; }
 
-         [Subscription("PM1.MFC32.DeviceData")]
 
-         public AITMfcData MFC32Data { get; set; }
 
-         [Subscription("PM1.MFC51.DeviceData")]
 
-         public AITMfcData MFC51Data { get; set; }
 
-         #endregion
 
-         #region MFM
 
-         [Subscription("PM1.MFM57.DeviceData")]
 
-         public AITWaterFlowMeterData MFM57FlowData { get; set; }
 
-         [Subscription("PM1.MFM1.DeviceData")]
 
-         public AITWaterFlowMeterData MFM1FlowData { get; set; }
 
-         [Subscription("PM1.MFM6.DeviceData")]
 
-         public AITWaterFlowMeterData MFM6FlowData { get; set; }
 
-         [Subscription("PM1.MFM7.DeviceData")]
 
-         public AITWaterFlowMeterData MFM7FlowData { get; set; }
 
-         [Subscription("PM1.MFM8.DeviceData")]
 
-         public AITWaterFlowMeterData MFM8FlowData { get; set; }
 
-         [Subscription("PM1.MFM9.DeviceData")]
 
-         public AITWaterFlowMeterData MFM9FlowData { get; set; }
 
-         [Subscription("PM1.MFM11.DeviceData")]
 
-         public AITWaterFlowMeterData MFM11FlowData { get; set; }
 
-         [Subscription("PM1.MFM12.DeviceData")]
 
-         public AITWaterFlowMeterData MFM12FlowData { get; set; }
 
-         [Subscription("PM1.MFM13.DeviceData")]
 
-         public AITWaterFlowMeterData MFM13FlowData { get; set; }
 
-         [Subscription("PM1.MFM16.DeviceData")]
 
-         public AITWaterFlowMeterData MFM16FlowData { get; set; }
 
-         #endregion
 
-         #region Valve
 
-         [Subscription("PM1.ValveAV1.DeviceData")] public AITValveData ValveAV1Data { get; set; }
 
-         [Subscription("PM1.ValveAV2.DeviceData")] public AITValveData ValveAV2Data { get; set; }
 
-         [Subscription("PM1.ValveAV3.DeviceData")] public AITValveData ValveAV3Data { get; set; }
 
-         [Subscription("PM1.ValveAV4.DeviceData")] public AITValveData ValveAV4Data { get; set; }
 
-         [Subscription("PM1.ValveAV5.DeviceData")] public AITValveData ValveAV5Data { get; set; }
 
-         [Subscription("PM1.ValveAV6.DeviceData")] public AITValveData ValveAV6Data { get; set; }
 
-         [Subscription("PM1.ValveAV7.DeviceData")] public AITValveData ValveAV7Data { get; set; }
 
-         [Subscription("PM1.ValveAV8.DeviceData")] public AITValveData ValveAV8Data { get; set; }
 
-         [Subscription("PM1.ValveAV9.DeviceData")] public AITValveData ValveAV9Data { get; set; }
 
-         [Subscription("PM1.ValveAV10.DeviceData")] public AITValveData ValveAV10Data { get; set; }
 
-         [Subscription("PM1.ValveAV11.DeviceData")] public AITValveData ValveAV11Data { get; set; }
 
-         [Subscription("PM1.ValveAV12.DeviceData")] public AITValveData ValveAV12Data { get; set; }
 
-         [Subscription("PM1.ValveAV13.DeviceData")] public AITValveData ValveAV13Data { get; set; }
 
-         [Subscription("PM1.ValveAV14.DeviceData")] public AITValveData ValveAV14Data { get; set; }
 
-         [Subscription("PM1.ValveAV15.DeviceData")] public AITValveData ValveAV15Data { get; set; }
 
-         [Subscription("PM1.ValveAV16.DeviceData")] public AITValveData ValveAV16Data { get; set; }
 
-         [Subscription("PM1.ValveAV17.DeviceData")] public AITValveData ValveAV17Data { get; set; }
 
-         [Subscription("PM1.ValveAV18.DeviceData")] public AITValveData ValveAV18Data { get; set; }
 
-         [Subscription("PM1.ValveAV19.DeviceData")] public AITValveData ValveAV19Data { get; set; }
 
-         [Subscription("PM1.ValveAV20.DeviceData")] public AITValveData ValveAV20Data { get; set; }
 
-         [Subscription("PM1.ValveAV21.DeviceData")] public AITValveData ValveAV21Data { get; set; }
 
-         [Subscription("PM1.ValveAV22.DeviceData")] public AITValveData ValveAV22Data { get; set; }
 
-         [Subscription("PM1.ValveAV23.DeviceData")] public AITValveData ValveAV23Data { get; set; }
 
-         [Subscription("PM1.ValveAV24.DeviceData")] public AITValveData ValveAV24Data { get; set; }
 
-         [Subscription("PM1.ValveAV25.DeviceData")] public AITValveData ValveAV25Data { get; set; }
 
-         [Subscription("PM1.ValveAV26.DeviceData")] public AITValveData ValveAV26Data { get; set; }
 
-         [Subscription("PM1.ValveAV27.DeviceData")] public AITValveData ValveAV27Data { get; set; }
 
-         [Subscription("PM1.ValveAV28.DeviceData")] public AITValveData ValveAV28Data { get; set; }
 
-         [Subscription("PM1.ValveAV29.DeviceData")] public AITValveData ValveAV29Data { get; set; }
 
-         [Subscription("PM1.ValveAV30.DeviceData")] public AITValveData ValveAV30Data { get; set; }
 
-         [Subscription("PM1.ValveAV31.DeviceData")] public AITValveData ValveAV31Data { get; set; }
 
-         [Subscription("PM1.ValveAV32.DeviceData")] public AITValveData ValveAV32Data { get; set; }
 
-         [Subscription("PM1.ValveAV33.DeviceData")] public AITValveData ValveAV33Data { get; set; }
 
-         [Subscription("PM1.ValveAV34.DeviceData")] public AITValveData ValveAV34Data { get; set; }
 
-         [Subscription("PM1.ValveAV35.DeviceData")] public AITValveData ValveAV35Data { get; set; }
 
-         [Subscription("PM1.ValveAV36.DeviceData")] public AITValveData ValveAV36Data { get; set; }
 
-         [Subscription("PM1.ValveAV37.DeviceData")] public AITValveData ValveAV37Data { get; set; }
 
-         [Subscription("PM1.ValveAV38.DeviceData")] public AITValveData ValveAV38Data { get; set; }
 
-         [Subscription("PM1.ValveAV39.DeviceData")] public AITValveData ValveAV39Data { get; set; }
 
-         [Subscription("PM1.ValveAV40.DeviceData")] public AITValveData ValveAV40Data { get; set; }
 
-         [Subscription("PM1.ValveAV41.DeviceData")] public AITValveData ValveAV41Data { get; set; }
 
-         [Subscription("PM1.ValveAV42.DeviceData")] public AITValveData ValveAV42Data { get; set; }
 
-         [Subscription("PM1.ValveAV43.DeviceData")] public AITValveData ValveAV43Data { get; set; }
 
-         [Subscription("PM1.ValveAV44.DeviceData")] public AITValveData ValveAV44Data { get; set; }
 
-         [Subscription("PM1.ValveAV45.DeviceData")] public AITValveData ValveAV45Data { get; set; }
 
-         [Subscription("PM1.ValveAV46.DeviceData")] public AITValveData ValveAV46Data { get; set; }
 
-         [Subscription("PM1.ValveAV47.DeviceData")] public AITValveData ValveAV47Data { get; set; }
 
-         [Subscription("PM1.ValveAV48.DeviceData")] public AITValveData ValveAV48Data { get; set; }
 
-         [Subscription("PM1.ValveAV49.DeviceData")] public AITValveData ValveAV49Data { get; set; }
 
-         [Subscription("PM1.ValveAV50.DeviceData")] public AITValveData ValveAV50Data { get; set; }
 
-         [Subscription("PM1.ValveAV51.DeviceData")] public AITValveData ValveAV51Data { get; set; }
 
-         [Subscription("PM1.ValveAV52.DeviceData")] public AITValveData ValveAV52Data { get; set; }
 
-         [Subscription("PM1.ValveAV53.DeviceData")] public AITValveData ValveAV53Data { get; set; }
 
-         [Subscription("PM1.ValveAV54.DeviceData")] public AITValveData ValveAV54Data { get; set; }
 
-         [Subscription("PM1.ValveAV55.DeviceData")] public AITValveData ValveAV55Data { get; set; }
 
-         [Subscription("PM1.ValveAV56.DeviceData")] public AITValveData ValveAV56Data { get; set; }
 
-         [Subscription("PM1.ValveAV57.DeviceData")] public AITValveData ValveAV57Data { get; set; }
 
-         [Subscription("PM1.ValveAV58.DeviceData")] public AITValveData ValveAV58Data { get; set; }
 
-         [Subscription("PM1.ValveAV59.DeviceData")] public AITValveData ValveAV59Data { get; set; }
 
-         [Subscription("PM1.ValveAV60.DeviceData")] public AITValveData ValveAV60Data { get; set; }
 
-         [Subscription("PM1.ValveAV61.DeviceData")] public AITValveData ValveAV61Data { get; set; }
 
-         [Subscription("PM1.ValveAV62.DeviceData")] public AITValveData ValveAV62Data { get; set; }
 
-         [Subscription("PM1.ValveAV63.DeviceData")] public AITValveData ValveAV63Data { get; set; }
 
-         [Subscription("PM1.ValveAV64.DeviceData")] public AITValveData ValveAV64Data { get; set; }
 
-         [Subscription("PM1.ValveAV65.DeviceData")] public AITValveData ValveAV65Data { get; set; }
 
-         [Subscription("PM1.ValveAV66.DeviceData")] public AITValveData ValveAV66Data { get; set; }
 
-         [Subscription("PM1.ValveAV67.DeviceData")] public AITValveData ValveAV67Data { get; set; }
 
-         [Subscription("PM1.ValveAV68.DeviceData")] public AITValveData ValveAV68Data { get; set; }
 
-         [Subscription("PM1.ValveAV69.DeviceData")] public AITValveData ValveAV69Data { get; set; }
 
-         [Subscription("PM1.ValveAV70.DeviceData")] public AITValveData ValveAV70Data { get; set; }
 
-         [Subscription("PM1.APC.ModeFeedback")]
 
-         public int APCModeFeedback { get; set; }
 
-         [Subscription("PM1.ValveAV71.DeviceData")] public AITValveData ValveAV70Data1 { get; set; }
 
-         public AITValveData ValveAV71Data
 
-         {
 
-             get
 
-             {
 
-                 return new AITValveData()
 
-                 {
 
-                     DeviceName = ValveAV70Data1.DeviceName,
 
-                     DisplayName = ValveAV70Data1.DisplayName,
 
-                     UniqueName = ValveAV70Data1.UniqueName,
 
-                     DefaultValue = ValveAV70Data1.DefaultValue,
 
-                     SetPoint = ValveAV70Data1.SetPoint,
 
-                     Feedback = APCModeFeedback != 5,
 
-                     VirtualFeedback = ValveAV70Data1.VirtualFeedback
 
-                 };
 
-             }
 
-         }
 
-         [Subscription("PM1.ValveAV72.DeviceData")] public AITValveData ValveAV72Data { get; set; }
 
-         [Subscription("PM1.ValveAV73.DeviceData")] public AITValveData ValveAV73Data { get; set; }
 
-         [Subscription("PM1.ValveAV74.DeviceData")] public AITValveData ValveAV74Data { get; set; }
 
-         [Subscription("PM1.ValveAV75.DeviceData")] public AITValveData ValveAV75Data { get; set; }
 
-         [Subscription("PM1.ValveAV76.DeviceData")] public AITValveData ValveAV76Data { get; set; }
 
-         [Subscription("PM1.ValveAV77.DeviceData")] public AITValveData ValveAV77Data { get; set; }
 
-         [Subscription("PM1.ValveAV78.DeviceData")] public AITValveData ValveAV78Data { get; set; }
 
-         [Subscription("PM1.ValveAV79.DeviceData")] public AITValveData ValveAV79Data { get; set; }
 
-         [Subscription("PM1.ValveAV80.DeviceData")] public AITValveData ValveAV80Data { get; set; }
 
-         [Subscription("PM1.ValveAV81.DeviceData")] public AITValveData ValveAV81Data { get; set; }
 
-         [Subscription("PM1.ValveAV82.DeviceData")] public AITValveData ValveAV82Data { get; set; }
 
-         [Subscription("PM1.ValveAV83.DeviceData")] public AITValveData ValveAV83Data { get; set; }
 
-         [Subscription("PM1.ValveAV84.DeviceData")] public AITValveData ValveAV84Data { get; set; }
 
-         [Subscription("PM1.ValveAV85.DeviceData")] public AITValveData ValveAV85Data { get; set; }
 
-         [Subscription("PM1.ValveAV86.DeviceData")] public AITValveData ValveAV86Data { get; set; }
 
-         [Subscription("PM1.ValveAV87.DeviceData")] public AITValveData ValveAV87Data { get; set; }
 
-         [Subscription("PM1.ValveAV88.DeviceData")] public AITValveData ValveAV88Data { get; set; }
 
-         [Subscription("PM1.ValveAV89.DeviceData")] public AITValveData ValveAV89Data { get; set; }
 
-         [Subscription("PM1.ValveAV90.DeviceData")] public AITValveData ValveAV90Data { get; set; }
 
-         [Subscription("PM1.ValveAV91.DeviceData")] public AITValveData ValveAV91Data { get; set; }
 
-         [Subscription("PM1.ValveAV92.DeviceData")] public AITValveData ValveAV92Data { get; set; }
 
-         [Subscription("PM1.ValveAV93.DeviceData")] public AITValveData ValveAV93Data { get; set; }
 
-         [Subscription("PM1.ValveAV94.DeviceData")] public AITValveData ValveAV94Data { get; set; }
 
-         [Subscription("PM1.ValveAV95.DeviceData")] public AITValveData ValveAV95Data { get; set; }
 
-         [Subscription("PM1.ValveAV96.DeviceData")] public AITValveData ValveAV96Data { get; set; }
 
-         [Subscription("PM1.ValveAV97.DeviceData")] public AITValveData ValveAV97Data { get; set; }
 
-         [Subscription("PM1.ValveAV98.DeviceData")] public AITValveData ValveAV98Data { get; set; }
 
-         [Subscription("PM1.ValveAV99.DeviceData")] public AITValveData ValveAV99Data { get; set; }
 
-         [Subscription("PM1.ValveAV100.DeviceData")] public AITValveData ValveAV100Data { get; set; }
 
-         [Subscription("PM1.ValveAV101.DeviceData")] public AITValveData ValveAV101Data { get; set; }
 
-         [Subscription("PM1.ValveAV102.DeviceData")] public AITValveData ValveAV102Data { get; set; }
 
-         [Subscription("PM1.ValveAV103.DeviceData")] public AITValveData ValveAV103Data { get; set; }
 
-         [Subscription("PM1.ValveAV104.DeviceData")] public AITValveData ValveAV104Data { get; set; }
 
-         [Subscription("PM1.ValveAV105.DeviceData")] public AITValveData ValveAV105Data { get; set; }
 
-         [Subscription("PM1.ValveAV106.DeviceData")] public AITValveData ValveAV106Data { get; set; }
 
-         [Subscription("PM1.ValveAV107.DeviceData")] public AITValveData ValveAV107Data { get; set; }
 
-         [Subscription("PM1.ValveAV108.DeviceData")] public AITValveData ValveAV108Data { get; set; }
 
-         [Subscription("PM1.ValveAV109.DeviceData")] public AITValveData ValveAV109Data { get; set; }
 
-         [Subscription("PM1.ValveAV110.DeviceData")] public AITValveData ValveAV110Data { get; set; }
 
-         [Subscription("PM1.ValveAV111.DeviceData")] public AITValveData ValveAV111Data { get; set; }
 
-         [Subscription("PM1.ValveAV112.DeviceData")] public AITValveData ValveAV112Data { get; set; }
 
-         [Subscription("PM1.ValveAV113.DeviceData")] public AITValveData ValveAV113Data { get; set; }
 
-         [Subscription("PM1.ValveAV114.DeviceData")] public AITValveData ValveAV114Data { get; set; }
 
-         [Subscription("PM1.ValveAV115.DeviceData")] public AITValveData ValveAV115Data { get; set; }
 
-         [Subscription("PM1.ValveAV116.DeviceData")] public AITValveData ValveAV116Data { get; set; }
 
-         [Subscription("PM1.ValveAV117.DeviceData")] public AITValveData ValveAV117Data { get; set; }
 
-         [Subscription("PM1.ValveAV118.DeviceData")] public AITValveData ValveAV118Data { get; set; }
 
-         [Subscription("PM1.ValveAV119.DeviceData")] public AITValveData ValveAV119Data { get; set; }
 
-         [Subscription("PM1.ValveAV120.DeviceData")] public AITValveData ValveAV120Data { get; set; }
 
-         [Subscription("PM1.ValveAV121.DeviceData")] public AITValveData ValveAV121Data { get; set; }
 
-         [Subscription("PM1.ValveAV122.DeviceData")] public AITValveData ValveAV122Data { get; set; }
 
-         [Subscription("PM1.ValveAV123.DeviceData")] public AITValveData ValveAV123Data { get; set; }
 
-         [Subscription("PM1.ValveAV124.DeviceData")] public AITValveData ValveAV124Data { get; set; }
 
-         [Subscription("PM1.ValveAV125.DeviceData")] public AITValveData ValveAV125Data { get; set; }
 
-         [Subscription("PM1.ValveAV126.DeviceData")] public AITValveData ValveAV126Data { get; set; }
 
-         [Subscription("PM1.ValveAV127.DeviceData")] public AITValveData ValveAV127Data { get; set; }
 
-         [Subscription("PM1.ValveAV128.DeviceData")] public AITValveData ValveAV128Data { get; set; }
 
-         [Subscription("PM1.ValveAV129.DeviceData")] public AITValveData ValveAV129Data { get; set; }
 
-         [Subscription("PM1.ValveAV130.DeviceData")] public AITValveData ValveAV130Data { get; set; }
 
-         [Subscription("PM1.ValveAV131.DeviceData")] public AITValveData ValveAV131Data { get; set; }
 
-         [Subscription("PM1.ValveAV132.DeviceData")] public AITValveData ValveAV132Data { get; set; }
 
-         [Subscription("PM1.ValveAV133.DeviceData")] public AITValveData ValveAV133Data { get; set; }
 
-         [Subscription("PM1.ValveAV134.DeviceData")] public AITValveData ValveAV134Data { get; set; }
 
-         [Subscription("PM1.ValveAV135.DeviceData")] public AITValveData ValveAV135Data { get; set; }
 
-         [Subscription("PM1.ValveAV136.DeviceData")] public AITValveData ValveAV136Data { get; set; }
 
-         #endregion
 
-         #region APC
 
-         [Subscription("PM1.APC.DeviceData")]
 
-         public AITAPCData APCData { get; set; }
 
-         #endregion
 
-         #region Analog
 
-         [Subscription("PM1.HTCurrent1.DeviceData")]
 
-         public AITWaterFlowMeterData HTCurrent1 { get; set; }
 
-         [Subscription("PM1.HTCurrent2.DeviceData")]
 
-         public AITWaterFlowMeterData HTCurrent2 { get; set; }
 
-         [Subscription("PM1.HTCurrent3.DeviceData")]
 
-         public AITWaterFlowMeterData HTCurrent3 { get; set; }
 
-         [Subscription("PM1.HTCurrent4.DeviceData")]
 
-         public AITWaterFlowMeterData HTCurrent4 { get; set; }
 
-         [Subscription("PM1.HTCurrent5.DeviceData")]
 
-         public AITWaterFlowMeterData HTCurrent5 { get; set; }
 
-         [Subscription("PM1.HTVoltage1.DeviceData")]
 
-         public AITWaterFlowMeterData HTVoltage1 { get; set; }
 
-         [Subscription("PM1.HTVoltage2.DeviceData")]
 
-         public AITWaterFlowMeterData HTVoltage2 { get; set; }
 
-         [Subscription("PM1.HTVoltage3.DeviceData")]
 
-         public AITWaterFlowMeterData HTVoltage3 { get; set; }
 
-         [Subscription("PM1.HTVoltage4.DeviceData")]
 
-         public AITWaterFlowMeterData HTVoltage4 { get; set; }
 
-         [Subscription("PM1.HTVoltage5.DeviceData")]
 
-         public AITWaterFlowMeterData HTVoltage5 { get; set; }
 
-         [Subscription("PM1.HeaterWaterFlow.DeviceData")]
 
-         public AITWaterFlowMeterData HeaterWaterFlow { get; set; }
 
-         [Subscription("PM1.MFWaterFlow.DeviceData")]
 
-         public AITWaterFlowMeterData MFWaterFlow { get; set; }
 
-         [Subscription("PM1.CAPWaterFlow.DeviceData")]
 
-         public AITWaterFlowMeterData CAPWaterFlow { get; set; }
 
-         [Subscription("PM1.A_SWaterFlow.DeviceData")]
 
-         public AITWaterFlowMeterData A_SWaterFlow { get; set; }
 
-         [Subscription("PM1.HeaterEXH.DeviceData")]
 
-         public AITWaterFlowMeterData HeaterEXH { get; set; }
 
-         [Subscription("PM1.SCVEXH.DeviceData")]
 
-         public AITWaterFlowMeterData SCVEXH { get; set; }
 
-         [Subscription("PM1.G_UEXH.DeviceData")]
 
-         public AITWaterFlowMeterData G_UEXH { get; set; }
 
-         [Subscription("PM1.PT1Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT1Value { get; set; }
 
-         [Subscription("PM1.PT2Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT2Value { get; set; }
 
-         [Subscription("PM1.PT3Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT3Value { get; set; }
 
-         [Subscription("PM1.PT4Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT4Value { get; set; }
 
-         [Subscription("PM1.PT5Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT5Value { get; set; }
 
-         [Subscription("PM1.PT6Value.DeviceData")]
 
-         public AITWaterFlowMeterData PT6Value { get; set; }
 
-         [Subscription("PM1.P_SW1Value.DeviceData")]
 
-         public AITWaterFlowMeterData P_SW1Value { get; set; }
 
-         [Subscription("PM1.P_SW2Value.DeviceData")]
 
-         public AITWaterFlowMeterData P_SW2Value { get; set; }
 
-         [Subscription("PM1.VG2Pressure.DeviceData")]
 
-         public AITWaterFlowMeterData VG2Pressure { get; set; }
 
-         [Subscription("PM1.Tank1Pressure.DeviceData")]
 
-         public AITWaterFlowMeterData Tank1Pressure { get; set; }
 
-         [Subscription("PM1.Tank2Pressure.DeviceData")]
 
-         public AITWaterFlowMeterData Tank2Pressure { get; set; }
 
-         [Subscription("PM1.VG21.DeviceData")]
 
-         public AITWaterFlowMeterData VG21Data { get; set; }
 
-         [Subscription("PM1.VG22.DeviceData")]
 
-         public AITWaterFlowMeterData VG22Data { get; set; }
 
-         [Subscription("PM1.VG32Pressure.DeviceData")]
 
-         public AITWaterFlowMeterData VG32Pressure { get; set; }
 
-         [Subscription("PM1.VG33Pressure.DeviceData")]
 
-         public AITWaterFlowMeterData VG33Pressure { get; set; }
 
-         #endregion
 
-         #region PM
 
-         [Subscription("PM1.Status")]
 
-         public string PM1Status { get; set; }
 
-         [Subscription("PM1.RecipeHold")]
 
-         public bool PM1RecipeHold { get; set; }
 
-         public bool IsMannualButtonEnabled
 
-         {
 
-             get
 
-             {
 
-                 return PM1Status != "Process" || (PM1Status == "Process" && PM1RecipeHold);
 
-             }
 
-         }
 
-         #endregion
 
-         [Subscription("PM1.CurrentAuxData")]
 
-         public List<AITAuxData> AUXDetailDatas { get; set; }
 
-         private bool _mFCIsChecked = false;
 
-         public bool MFCIsChecked
 
-         {
 
-             get => _mFCIsChecked;
 
-             set
 
-             {
 
-                 _mFCIsChecked = value;
 
-                 NotifyOfPropertyChange("MFCIsChecked");
 
-             }
 
-         }
 
-         private bool _mFMIsChecked = false;
 
-         public bool MFMIsChecked
 
-         {
 
-             get => _mFMIsChecked;
 
-             set
 
-             {
 
-                 _mFMIsChecked = value;
 
-                 NotifyOfPropertyChange("MFMIsChecked");
 
-             }
 
-         }
 
-         private bool _auxIsChecked = false;
 
-         public bool AuxIsChecked
 
-         {
 
-             get => _auxIsChecked;
 
-             set
 
-             {
 
-                 _auxIsChecked = value;
 
-                 NotifyOfPropertyChange("AuxIsChecked");
 
-             }
 
-         }
 
-         private bool _valveIsChecked = false;
 
-         public bool ValveIsChecked
 
-         {
 
-             get => _valveIsChecked;
 
-             set
 
-             {
 
-                 _valveIsChecked = value;
 
-                 NotifyOfPropertyChange("ValveIsChecked");
 
-             }
 
-         }
 
-         private Visibility _gridMFCVisibility = Visibility.Hidden;
 
-         public Visibility GridMFCVisibility
 
-         {
 
-             get => _gridMFCVisibility;
 
-             set
 
-             {
 
-                 _gridMFCVisibility = value;
 
-                 NotifyOfPropertyChange("GridMFCVisibility");
 
-             }
 
-         }
 
-         private Visibility _gridMFMVisibility = Visibility.Hidden;
 
-         public Visibility GridMFMVisibility
 
-         {
 
-             get => _gridMFMVisibility;
 
-             set
 
-             {
 
-                 _gridMFMVisibility = value;
 
-                 NotifyOfPropertyChange("GridMFMVisibility");
 
-             }
 
-         }
 
-         private Visibility _gridValveVisibility = Visibility.Hidden;
 
-         public Visibility GridValveVisibility
 
-         {
 
-             get => _gridValveVisibility;
 
-             set
 
-             {
 
-                 _gridValveVisibility = value;
 
-                 NotifyOfPropertyChange("GridValveVisibility");
 
-             }
 
-         }
 
-         private Visibility _gridAPCVisibility = Visibility.Hidden;
 
-         public Visibility GridAPCVisibility
 
-         {
 
-             get => _gridAPCVisibility;
 
-             set
 
-             {
 
-                 _gridAPCVisibility = value;
 
-                 NotifyOfPropertyChange("GridAPCVisibility");
 
-             }
 
-         }
 
-         private Visibility _gridAnalogVisibility = Visibility.Hidden;
 
-         public Visibility GridAnalogVisibility
 
-         {
 
-             get => _gridAnalogVisibility;
 
-             set
 
-             {
 
-                 _gridAnalogVisibility = value;
 
-                 NotifyOfPropertyChange("GridAnalogVisibility");
 
-             }
 
-         }
 
-         private Visibility _gridAUXVisibility = Visibility.Hidden;
 
-         public Visibility GridAUXVisibility
 
-         {
 
-             get => _gridAUXVisibility;
 
-             set
 
-             {
 
-                 _gridAUXVisibility = value;
 
-                 NotifyOfPropertyChange("GridAUXVisibility");
 
-             }
 
-         }
 
-         private ObservableCollection<MFCDetailValue> _mfcDetailDatas = new ObservableCollection<MFCDetailValue>();
 
-         public ObservableCollection<MFCDetailValue> MFCDetailDatas
 
-         {
 
-             get => _mfcDetailDatas;
 
-             set
 
-             {
 
-                 _mfcDetailDatas = value;
 
-                 NotifyOfPropertyChange("MFCDetailDatas");
 
-             }
 
-         }
 
-         private ObservableCollection<MFMDetailValue> _mfmDetailDatas = new ObservableCollection<MFMDetailValue>();
 
-         public ObservableCollection<MFMDetailValue> MFMDetailDatas
 
-         {
 
-             get => _mfmDetailDatas;
 
-             set
 
-             {
 
-                 _mfmDetailDatas = value;
 
-                 NotifyOfPropertyChange("MFMDetailDataLists");
 
-             }
 
-         }
 
-         private ObservableCollection<ValveDetailValue> _valveDetailDatas = new ObservableCollection<ValveDetailValue>();
 
-         public ObservableCollection<ValveDetailValue> ValveDetailDatas
 
-         {
 
-             get => _valveDetailDatas;
 
-             set
 
-             {
 
-                 _valveDetailDatas = value;
 
-                 NotifyOfPropertyChange("ValveDetailDatas");
 
-             }
 
-         }
 
-         private ObservableCollection<MFMDetailValue> _apcDetailDatas = new ObservableCollection<MFMDetailValue>();
 
-         public ObservableCollection<MFMDetailValue> APCDetailDatas
 
-         {
 
-             get => _apcDetailDatas;
 
-             set
 
-             {
 
-                 _apcDetailDatas = value;
 
-                 NotifyOfPropertyChange("APCDetailDatas");
 
-             }
 
-         }
 
-         private ObservableCollection<AnalogDetailValue> _analogDetailDatas = new ObservableCollection<AnalogDetailValue>();
 
-         public ObservableCollection<AnalogDetailValue> AnalogDetailDatas
 
-         {
 
-             get => _analogDetailDatas;
 
-             set
 
-             {
 
-                 _analogDetailDatas = value;
 
-                 NotifyOfPropertyChange("AnalogDetailDatas");
 
-             }
 
-         }
 
-         private bool _isEnableMannual;
 
-         public bool IsEnableMannual
 
-         {
 
-             get => _isEnableMannual;
 
-             set
 
-             {
 
-                 _isEnableMannual = value;
 
-                 NotifyOfPropertyChange(nameof(IsEnableMannual));
 
-             }
 
-         }
 
-         private int _mannualSelectCount;
 
-         protected override void OnActivate()
 
-         {
 
-             base.OnActivate();
 
-             MFCIsChecked = true;
 
-             MFMIsChecked = false;
 
-             ValveIsChecked = false;
 
-             AuxIsChecked = false;
 
-             GASSettingSelectCmd("MFC", null);
 
-         }
 
-         protected override void InvokeAfterUpdateProperty(Dictionary<string, object> data)
 
-         {
 
-             base.InvokeAfterUpdateProperty(data);
 
-             if (!IsEnableMannual)
 
-                 UpdateFlowValue();
 
-         }
 
-         private void UpdateFlowValue()
 
-         {
 
-             List<AITMfcData> allmfcData = new List<AITMfcData>()
 
-             {
 
-                 MFC1Data,
 
-                 MFC2Data,
 
-                 MFC3Data,
 
-                 MFC4Data,
 
-                 MFC5Data,
 
-                 MFC6Data,
 
-                 MFC7Data,
 
-                 MFC8Data,
 
-                 MFC9Data,
 
-                 MFC10Data,
 
-                 MFC11Data,
 
-                 MFC12Data,
 
-                 MFC13Data,
 
-                 MFC14Data,
 
-                 MFC15Data,
 
-                 MFC16Data,
 
-                 MFC17Data,
 
-                 MFC31Data,
 
-                 MFC32Data,
 
-                 MFC51Data,
 
-             };
 
-             List<AITMfcData> mfcData = new List<AITMfcData>()
 
-             {
 
-             };
 
-             foreach (var item in allmfcData)
 
-             {
 
-                 if (item != null)
 
-                 {
 
-                     mfcData.Add(item);
 
-                 }
 
-             }
 
-             List<AITMfcData> tempMFC = new List<AITMfcData>();
 
-             for (int i = 0; i < mfcData.Count; i++)
 
-             {
 
-                 if (mfcData[i] == null) continue;
 
-                 var IsMFCInstalled = (bool)QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{mfcData[i].DeviceName}.IsMFCInstalled");
 
-                 if (IsMFCInstalled)
 
-                 {
 
-                     tempMFC.Add(mfcData[i]);
 
-                 }
 
-             }
 
-             List<AITWaterFlowMeterData> allmfmData = new List<AITWaterFlowMeterData>()
 
-             {
 
-                 MFM1FlowData,
 
-                 MFM6FlowData,
 
-                 MFM7FlowData,
 
-                 MFM8FlowData,
 
-                 MFM9FlowData,
 
-                 MFM11FlowData,
 
-                 MFM12FlowData,
 
-                 MFM13FlowData,
 
-                 MFM16FlowData,
 
-                 MFM57FlowData,
 
-             };
 
-             List<AITWaterFlowMeterData> mfmData = new List<AITWaterFlowMeterData>()
 
-             {
 
-             };
 
-             foreach (var item in allmfmData)
 
-             {
 
-                 if (item != null)
 
-                 {
 
-                     mfmData.Add(item);
 
-                 }
 
-             }
 
-             List<AITWaterFlowMeterData> tempMFM = new List<AITWaterFlowMeterData>();
 
-             for (int i = 0; i < mfmData.Count; i++)
 
-             {
 
-                 if (mfmData[i] == null) continue;
 
-                 var IsMFMInstalled = (bool)QueryDataClient.Instance.Service.GetConfig($"PM1.MFM.{mfmData[i].DeviceName}.IsMFMInstalled");
 
-                 if (IsMFMInstalled)
 
-                 {
 
-                     tempMFM.Add(mfmData[i]);
 
-                 }
 
-             }
 
-             List<AITAPCData> apcData = new List<AITAPCData>()
 
-             {
 
-                 APCData,
 
-             };
 
-             List<AITValveData> allValveData = new List<AITValveData>()
 
-             {
 
-                 ValveAV1Data,
 
-                 ValveAV2Data,
 
-                 ValveAV3Data,
 
-                 ValveAV4Data,
 
-                 ValveAV5Data,
 
-                 ValveAV6Data,
 
-                 ValveAV7Data,
 
-                 ValveAV8Data,
 
-                 ValveAV9Data,
 
-                 ValveAV10Data,
 
-                 ValveAV11Data,
 
-                 ValveAV12Data,
 
-                 ValveAV13Data,
 
-                 ValveAV14Data,
 
-                 ValveAV15Data,
 
-                 ValveAV16Data,
 
-                 ValveAV17Data,
 
-                 ValveAV18Data,
 
-                 ValveAV19Data,
 
-                 ValveAV20Data,
 
-                 ValveAV21Data,
 
-                 ValveAV22Data,
 
-                 ValveAV23Data,
 
-                 ValveAV24Data,
 
-                 ValveAV25Data,
 
-                 ValveAV26Data,
 
-                 ValveAV27Data,
 
-                 ValveAV28Data,
 
-                 ValveAV29Data,
 
-                 ValveAV30Data,
 
-                 ValveAV31Data,
 
-                 ValveAV32Data,
 
-                 ValveAV33Data,
 
-                 ValveAV34Data,
 
-                 ValveAV35Data,
 
-                 ValveAV36Data,
 
-                 ValveAV37Data,
 
-                 ValveAV38Data,
 
-                 ValveAV39Data,
 
-                 ValveAV40Data,
 
-                 ValveAV41Data,
 
-                 ValveAV42Data,
 
-                 ValveAV43Data,
 
-                 ValveAV44Data,
 
-                 ValveAV45Data,
 
-                 ValveAV46Data,
 
-                 ValveAV47Data,
 
-                 ValveAV48Data,
 
-                 ValveAV49Data,
 
-                 ValveAV50Data,
 
-                 ValveAV51Data,
 
-                 ValveAV52Data,
 
-                 ValveAV53Data,
 
-                 ValveAV54Data,
 
-                 ValveAV55Data,
 
-                 ValveAV56Data,
 
-                 ValveAV57Data,
 
-                 ValveAV58Data,
 
-                 ValveAV59Data,
 
-                 ValveAV60Data,
 
-                 ValveAV61Data,
 
-                 ValveAV62Data,
 
-                 ValveAV63Data,
 
-                 ValveAV64Data,
 
-                 ValveAV65Data,
 
-                 ValveAV66Data,
 
-                 ValveAV67Data,
 
-                 ValveAV68Data,
 
-                 ValveAV69Data,
 
-                 ValveAV70Data,
 
-                 ValveAV71Data,
 
-                 ValveAV72Data,
 
-                 ValveAV73Data,
 
-                 ValveAV74Data,
 
-                 ValveAV75Data,
 
-                 ValveAV76Data,
 
-                 ValveAV77Data,
 
-                 ValveAV78Data,
 
-                 ValveAV79Data,
 
-                 ValveAV80Data,
 
-                 ValveAV81Data,
 
-                 ValveAV82Data,
 
-                 ValveAV83Data,
 
-                 ValveAV84Data,
 
-                 ValveAV85Data,
 
-                 ValveAV86Data,
 
-                 ValveAV87Data,
 
-                 ValveAV88Data,
 
-                 ValveAV89Data,
 
-                 ValveAV90Data,
 
-                 ValveAV91Data,
 
-                 ValveAV92Data,
 
-                 ValveAV93Data,
 
-                 ValveAV94Data,
 
-                 ValveAV95Data,
 
-                 ValveAV96Data,
 
-                 ValveAV97Data,
 
-                 ValveAV98Data,
 
-                 ValveAV99Data,
 
-                 ValveAV100Data,
 
-                 ValveAV101Data,
 
-                 ValveAV102Data,
 
-                 ValveAV103Data,
 
-                 ValveAV104Data,
 
-                 ValveAV105Data,
 
-                 ValveAV106Data,
 
-                 ValveAV107Data,
 
-                 ValveAV108Data,
 
-                 ValveAV109Data,
 
-                 ValveAV110Data,
 
-                 ValveAV111Data,
 
-                 ValveAV112Data,
 
-                 ValveAV113Data,
 
-                 ValveAV114Data,
 
-                 ValveAV115Data,
 
-                 ValveAV116Data,
 
-                 ValveAV117Data,
 
-                 ValveAV118Data,
 
-                 ValveAV119Data,
 
-                 ValveAV120Data,
 
-                 ValveAV121Data,
 
-                 ValveAV122Data,
 
-                 ValveAV123Data,
 
-                 ValveAV124Data,
 
-                 ValveAV125Data,
 
-                 ValveAV126Data,
 
-                 ValveAV127Data,
 
-                 ValveAV128Data,
 
-                 ValveAV129Data,
 
-                 ValveAV130Data,
 
-                 ValveAV131Data,
 
-                 ValveAV132Data,
 
-                 ValveAV133Data,
 
-                 ValveAV134Data,
 
-                 ValveAV135Data,
 
-                 ValveAV136Data
 
-             };
 
-             List<AITValveData> valveData = new List<AITValveData>()
 
-             {
 
-             };
 
-             foreach (var item in allValveData)
 
-             {
 
-                 if (item != null)
 
-                 {
 
-                     valveData.Add(item);
 
-                 }
 
-             }
 
-             List<AITWaterFlowMeterData> tempPresure = new List<AITWaterFlowMeterData>();
 
-             if (Tank1Pressure != null)
 
-             {
 
-                 tempPresure.Add(Tank1Pressure);
 
-             }
 
-             if (Tank2Pressure != null)
 
-             {
 
-                 tempPresure.Add(Tank2Pressure);
 
-             }
 
-             if (VG21Data != null)
 
-             {
 
-                 tempPresure.Add(VG21Data);
 
-             }
 
-             if (VG22Data != null)
 
-             {
 
-                 tempPresure.Add(VG22Data);
 
-             }
 
-             if (VG32Pressure != null)
 
-             {
 
-                 tempPresure.Add(VG32Pressure);
 
-             }
 
-             if (VG33Pressure != null)
 
-             {
 
-                 tempPresure.Add(VG33Pressure);
 
-             }
 
-             if (MFCDetailDatas.Count == 0)
 
-             {
 
-                 for (int i = 0; i < tempMFC.Count; i++)
 
-                 {
 
-                     if (tempMFC[i] == null) continue;
 
-                     var Unit = (string)QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{tempMFC[i].DeviceName}.FlowUnit");
 
-                     var setpoint = mfcData[i].SetPoint.ToString("F1");
 
-                     MFCDetailDatas.Add(new MFCDetailValue()
 
-                     {
 
-                         Name = tempMFC[i].DeviceName,
 
-                         DisplayName = tempMFC[i].DisplayName,
 
-                         Unit = Unit,
 
-                         Setpoint = setpoint,
 
-                         Feedback = tempMFC[i].FeedBack.ToString("F3"),
 
-                         Ramping = tempMFC[i].Ramping.ToString("F1"),
 
-                         AlarmTable = string.IsNullOrEmpty(tempMFC[i].AlarmWatchTable) ? "None" : tempMFC[i].AlarmWatchTable,
 
-                         MaxValue = (double)QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{tempMFC[i].DeviceName}.N2Scale")
 
-                     });
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 for (int i = 0; i < tempMFC.Count; i++)
 
-                 {
 
-                     if (tempMFC[i] == null) continue;
 
-                     var Unit = (string)QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{mfcData[i].DeviceName}.FlowUnit");
 
-                     var setpoint = tempMFC[i].SetPoint.ToString("F1");
 
-                     MFCDetailDatas[i].Name = tempMFC[i].DeviceName;
 
-                     MFCDetailDatas[i].DisplayName = tempMFC[i].DisplayName;
 
-                     MFCDetailDatas[i].Unit = Unit;
 
-                     MFCDetailDatas[i].Setpoint = setpoint;
 
-                     MFCDetailDatas[i].Feedback = tempMFC[i].FeedBack.ToString("F3");
 
-                     MFCDetailDatas[i].Ramping = tempMFC[i].Ramping.ToString("F1");
 
-                     MFCDetailDatas[i].AlarmTable = string.IsNullOrEmpty(tempMFC[i].AlarmWatchTable) ? "None" : tempMFC[i].AlarmWatchTable;
 
-                 }
 
-             }
 
-             if (MFMDetailDatas.Count == 0)
 
-             {
 
-                 for (int i = 0; i < tempMFM.Count; i++)
 
-                 {
 
-                     if (tempMFM[i] == null) continue;
 
-                     var Unit = (string)QueryDataClient.Instance.Service.GetConfig($"PM1.MFM.{tempMFM[i].DeviceName}.FlowUnit");
 
-                     MFMDetailDatas.Add(new MFMDetailValue()
 
-                     {
 
-                         Name = tempMFM[i].DeviceName,
 
-                         DisplayName = tempMFM[i].DisplayName,
 
-                         Unit = Unit,
 
-                         Setpoint = tempMFM[i].SetPoint.ToString("F1"),
 
-                         Feedback = tempMFM[i].FeedBack.ToString("F1"),
 
-                         AlarmTable = string.IsNullOrEmpty(tempMFM[i].AlarmWatchTable) ? "None" : tempMFM[i].AlarmWatchTable,
 
-                     });
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 for (int i = 0; i < tempMFM.Count; i++)
 
-                 {
 
-                     if (tempMFM[i] == null) continue;
 
-                     var Unit = (string)QueryDataClient.Instance.Service.GetConfig($"PM1.MFM.{tempMFM[i].DeviceName}.FlowUnit");
 
-                     MFMDetailDatas[i].Name = tempMFM[i].DeviceName;
 
-                     MFMDetailDatas[i].DisplayName = tempMFM[i].DeviceName;
 
-                     MFMDetailDatas[i].Unit = Unit;
 
-                     MFMDetailDatas[i].Setpoint = tempMFM[i].SetPoint.ToString("F1");
 
-                     MFMDetailDatas[i].Feedback = tempMFM[i].FeedBack.ToString("F1");
 
-                     MFMDetailDatas[i].AlarmTable = string.IsNullOrEmpty(tempMFM[i].AlarmWatchTable) ? "None" : tempMFM[i].AlarmWatchTable;
 
-                 }
 
-             }
 
-             if (ValveDetailDatas.Count == 0)
 
-             {
 
-                 for (int i = 0; i < valveData.Count; i++)
 
-                 {
 
-                     if (valveData[i] == null) continue;
 
-                     ValveDetailDatas.Add(new ValveDetailValue()
 
-                     {
 
-                         Name = valveData[i].DeviceName,
 
-                         DisplayName = valveData[i].DisplayName,
 
-                         Feedback = valveData[i].Feedback,
 
-                         Value = valveData[i].IsOpen ? "Open" : "Close",
 
-                         IsEnable = IsEnableMannual,
 
-                     });
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 for (int i = 0; i < valveData.Count; i++)
 
-                 {
 
-                     if (valveData[i] == null) continue;
 
-                     ValveDetailDatas[i].Name = valveData[i].DeviceName;
 
-                     ValveDetailDatas[i].DisplayName = valveData[i].DisplayName;
 
-                     ValveDetailDatas[i].Feedback = valveData[i].Feedback;
 
-                     ValveDetailDatas[i].Value = valveData[i].IsOpen ? "Open" : "Close";
 
-                     ValveDetailDatas[i].IsEnable = IsEnableMannual;
 
-                 }
 
-             }
 
-             if (AnalogDetailDatas.Count == 0)
 
-             {
 
-                 for (int i = 0; i < tempPresure.Count; i++)
 
-                 {
 
-                     if (tempPresure[i] == null) continue;
 
-                     AnalogDetailDatas.Add(new AnalogDetailValue()
 
-                     {
 
-                         Name = tempPresure[i].DeviceName,
 
-                         DisplayName = tempPresure[i].DisplayName,
 
-                         Unit = tempPresure[i].Unit,
 
-                         Feedback = tempPresure[i].FeedBack.ToString("F1")
 
-                     });
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 for (int i = 0; i < tempPresure.Count; i++)
 
-                 {
 
-                     if (tempPresure[i] == null) continue;
 
-                     AnalogDetailDatas[i].Name = tempPresure[i].DeviceName;
 
-                     AnalogDetailDatas[i].DisplayName = tempPresure[i].DeviceName;
 
-                     AnalogDetailDatas[i].Unit = tempPresure[i].Unit;
 
-                     AnalogDetailDatas[i].Feedback = tempPresure[i].FeedBack.ToString("F1");
 
-                 }
 
-             }
 
-         }
 
-         public void MFCSetCmd(object senderName, object sender, object typeName, double maxValue)
 
-         {
 
-             string name = senderName.ToString();
 
-             var control = (Button)sender;
 
-             switch (typeName.ToString())
 
-             {
 
-                 case "Setpoint":
 
-                     var windowManager = IoC.Get<IWindowManager>();
 
-                     RecipeFlowSettingViewModel recipeFlowSettingViewModel = new RecipeFlowSettingViewModel();
 
-                     recipeFlowSettingViewModel.SelectMfcFlow = name.ToUpper();
 
-                     recipeFlowSettingViewModel.SelectFlowValue = control.Content.ToString();
 
-                     recipeFlowSettingViewModel.MaxValue = maxValue;
 
-                     if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeFlowSettingViewModel, null, "GasDetail Flow Setting"))
 
-                     {
 
-                         MFCDetailDatas.Where(x => x.Name == name).FirstOrDefault().Setpoint = recipeFlowSettingViewModel.SelectFlow;
 
-                     }
 
-                     break;
 
-                 case "Ramping":
 
-                     string strRetValue = ShowNumberKeyboard(sender as Button, "");
 
-                     if (strRetValue != "Cancel")
 
-                     {
 
-                         MFCDetailDatas.Where(x => x.Name == name).FirstOrDefault().Ramping = strRetValue;
 
-                     }
 
-                     break;
 
-                 case "AlarmTable":
 
-                     RecipeGASSettingMFCAlarmViewModel view = new RecipeGASSettingMFCAlarmViewModel(MFCDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable);
 
-                     WindowManager wm = IoC.Get<IWindowManager>() as WindowManager;
 
-                     if (!(bool)wm.ShowDialogWithTitle(view, null, "Select Flow Alarm Table")) break;
 
-                     MFCDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable = view.CurrentValue;
 
-                     break;
 
-             }
 
-         }
 
-         public void MFMSetCmd(object senderName, object sender, object typeName)
 
-         {
 
-             string name = senderName.ToString();
 
-             switch (typeName.ToString())
 
-             {
 
-                 case "Setpoint":
 
-                     string strRetValue = ShowNumberKeyboard(sender as Button, "");
 
-                     if (strRetValue != "Cancel")
 
-                     {
 
-                         MFMDetailDatas.Where(x => x.Name == name).FirstOrDefault().Setpoint = strRetValue;
 
-                     }
 
-                     break;
 
-                 case "AlarmTable":
 
-                     RecipeGASSettingMFCAlarmViewModel view = new RecipeGASSettingMFCAlarmViewModel(MFMDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable);
 
-                     WindowManager wm = IoC.Get<IWindowManager>() as WindowManager;
 
-                     if (!(bool)wm.ShowDialogWithTitle(view, null, "Select Flow Alarm Table")) break;
 
-                     MFMDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable = view.CurrentValue;
 
-                     break;
 
-             }
 
-         }
 
-         public void ValveSetCmd(object senderName)
 
-         {
 
-             string name = senderName.ToString();
 
-             SwitchDialog dlg = new SwitchDialog();
 
-             dlg.IsOpen = ValveDetailDatas.Where(x => x.Name == name).FirstOrDefault().Value == "Open";
 
-             dlg.WindowStartupLocation = WindowStartupLocation.CenterScreen;
 
-             dlg.ShowDialog();
 
-             if (dlg.IsSave)
 
-             {
 
-                 ValveDetailDatas.Where(x => x.Name == name).FirstOrDefault().Value = dlg.IsOpen ? "Open" : "Close";
 
-             }
 
-         }
 
-         public void APCSetCmd(object senderName, object sender, object typeName)
 
-         {
 
-             string name = senderName.ToString();
 
-             switch (typeName.ToString())
 
-             {
 
-                 case "Setpoint":
 
-                     string strRetValue = ShowNumberKeyboard(sender as Button, "");
 
-                     if (strRetValue != "Cancel")
 
-                     {
 
-                         APCDetailDatas.Where(x => x.Name == name).FirstOrDefault().Setpoint = strRetValue;
 
-                     }
 
-                     break;
 
-                 case "AlarmTable":
 
-                     RecipeGASSettingMFCAlarmViewModel view = new RecipeGASSettingMFCAlarmViewModel(APCDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable);
 
-                     WindowManager wm = IoC.Get<IWindowManager>() as WindowManager;
 
-                     if (!(bool)wm.ShowDialogWithTitle(view, null, "Select Flow Alarm Table")) break;
 
-                     APCDetailDatas.Where(x => x.Name == name).FirstOrDefault().AlarmTable = view.CurrentValue;
 
-                     break;
 
-             }
 
-         }
 
-         private string ShowNumberKeyboard(Control control, string defaultValue)
 
-         {
 
-             NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
 
-             var point = control.PointFromScreen(new Point(0, 0));
 
-             double wx = SystemParameters.WorkArea.Width;
 
-             double hy = SystemParameters.WorkArea.Height;
 
-             if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
 
-             {
 
-                 numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
 
-             }
 
-             else
 
-             {
 
-                 numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
 
-             }
 
-             if (-point.X + numberKeyboard.Width < wx)
 
-             {
 
-                 numberKeyboard.Left = -point.X;
 
-             }
 
-             else
 
-             {
 
-                 numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
 
-             }
 
-             if ((bool)numberKeyboard.ShowDialog())
 
-                 return numberKeyboard.ValueString;
 
-             else
 
-                 return "Cancel";
 
-         }
 
-         public void GASSettingSelectCmd(string cmd, object sender)
 
-         {
 
-             if (sender != null)
 
-             {
 
-                 ((RadioButton)sender).IsChecked = true;
 
-             }
 
-             else
 
-             {
 
-             }
 
-             GridMFCVisibility = Visibility.Hidden;
 
-             GridMFMVisibility = Visibility.Hidden;
 
-             GridValveVisibility = Visibility.Hidden;
 
-             GridAPCVisibility = Visibility.Hidden;
 
-             GridAnalogVisibility = Visibility.Hidden;
 
-             GridAUXVisibility = Visibility.Hidden;
 
-             switch (cmd)
 
-             {
 
-                 case "MFC":
 
-                     GridMFCVisibility = Visibility.Visible;
 
-                     break;
 
-                 case "MFM":
 
-                     GridMFMVisibility = Visibility.Visible;
 
-                     break;
 
-                 case "Valve":
 
-                     GridValveVisibility = Visibility.Visible;
 
-                     break;
 
-                 case "APC":
 
-                     GridAPCVisibility = Visibility.Visible;
 
-                     break;
 
-                 case "Analog":
 
-                     GridAnalogVisibility = Visibility.Visible;
 
-                     break;
 
-                 case "AUX":
 
-                     GridAUXVisibility = Visibility.Visible;
 
-                     break;
 
-                 default:
 
-                     break;
 
-             }
 
-         }
 
-         public void MannualSelectCmd()
 
-         {
 
-             _mannualSelectCount++;
 
-             if (_mannualSelectCount % 2 == 0)
 
-             {
 
-                 IsEnableMannual = false;
 
-             }
 
-             else
 
-             {
 
-                 IsEnableMannual = true;
 
-             }
 
-             UpdateFlowValue();
 
-         }
 
-         public void ExecCmd()
 
-         {
 
-             if (!DialogBox.Confirm("Ara you sure to execute?"))
 
-                 return;
 
-             for (int i = 0; i < MFCDetailDatas.Count; i++)
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"PM1.{MFCDetailDatas[i].Name}.SetMfcValue", $"{MFCDetailDatas[i].Setpoint};{MFCDetailDatas[i].Ramping};{MFCDetailDatas[i].AlarmTable}");
 
-             }
 
-             for (int i = 0; i < MFMDetailDatas.Count; i++)
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"PM1.{MFMDetailDatas[i].Name}.SetMfmValue", $"{MFMDetailDatas[i].Setpoint};{MFMDetailDatas[i].AlarmTable}");
 
-             }
 
-             for (int i = 0; i < ValveDetailDatas.Count; i++)
 
-             {
 
-                 InvokeClient.Instance.Service.DoOperation($"PM1.{ValveDetailDatas[i].Name}.{AITValveOperation.GVTurnValve}", ValveDetailDatas[i].Value == "Open");
 
-             }
 
-             _mannualSelectCount = 0;
 
-             IsEnableMannual = false;
 
-         }
 
-         public void CloseCmd()
 
-         {
 
-             ((Window)GetView()).DialogResult = false;
 
-         }
 
-     }
 
-     public class AnalogDetailValue : PropertyChangedBase
 
-     {
 
-         private string _name;
 
-         public string Name
 
-         {
 
-             get => _name;
 
-             set
 
-             {
 
-                 _name = value;
 
-                 NotifyOfPropertyChange("Name");
 
-             }
 
-         }
 
-         private string _displayName;
 
-         public string DisplayName
 
-         {
 
-             get => _displayName;
 
-             set
 
-             {
 
-                 _displayName = value;
 
-                 NotifyOfPropertyChange("DisplayName");
 
-             }
 
-         }
 
-         public string _unit;
 
-         public string Unit
 
-         {
 
-             get => _unit;
 
-             set
 
-             {
 
-                 _unit = value;
 
-                 NotifyOfPropertyChange("Unit");
 
-             }
 
-         }
 
-         private string _feedback;
 
-         public string Feedback
 
-         {
 
-             get => _feedback;
 
-             set
 
-             {
 
-                 _feedback = value;
 
-                 NotifyOfPropertyChange("Feedback");
 
-             }
 
-         }
 
-     }
 
-     public class ValveDetailValue : PropertyChangedBase
 
-     {
 
-         private string _name;
 
-         public string Name
 
-         {
 
-             get => _name;
 
-             set
 
-             {
 
-                 _name = value;
 
-                 NotifyOfPropertyChange("Name");
 
-             }
 
-         }
 
-         private string _displayName;
 
-         public string DisplayName
 
-         {
 
-             get => _displayName;
 
-             set
 
-             {
 
-                 _displayName = value;
 
-                 NotifyOfPropertyChange("DisplayName");
 
-             }
 
-         }
 
-         private string _value;
 
-         public string Value
 
-         {
 
-             get => _value;
 
-             set
 
-             {
 
-                 _value = value;
 
-                 NotifyOfPropertyChange("Value");
 
-             }
 
-         }
 
-         private bool _feedback;
 
-         public bool Feedback
 
-         {
 
-             get => _feedback;
 
-             set
 
-             {
 
-                 _feedback = value;
 
-                 NotifyOfPropertyChange("Feedback");
 
-             }
 
-         }
 
-         private bool _isEnable = true;
 
-         public bool IsEnable
 
-         {
 
-             get => _isEnable;
 
-             set
 
-             {
 
-                 _isEnable = value;
 
-                 NotifyOfPropertyChange("IsEnable");
 
-             }
 
-         }
 
-     }
 
-     public class MFMDetailValue : PropertyChangedBase
 
-     {
 
-         private string _name;
 
-         public string Name
 
-         {
 
-             get => _name;
 
-             set
 
-             {
 
-                 _name = value;
 
-                 NotifyOfPropertyChange("Name");
 
-             }
 
-         }
 
-         private string _displayName;
 
-         public string DisplayName
 
-         {
 
-             get => _displayName;
 
-             set
 
-             {
 
-                 _displayName = value;
 
-                 NotifyOfPropertyChange("DisplayName");
 
-             }
 
-         }
 
-         public string _unit;
 
-         public string Unit
 
-         {
 
-             get => _unit;
 
-             set
 
-             {
 
-                 _unit = value;
 
-                 NotifyOfPropertyChange("Unit");
 
-             }
 
-         }
 
-         private string _setpoint;
 
-         public string Setpoint
 
-         {
 
-             get => _setpoint;
 
-             set
 
-             {
 
-                 _setpoint = value;
 
-                 NotifyOfPropertyChange("Setpoint");
 
-             }
 
-         }
 
-         private string _feedback;
 
-         public string Feedback
 
-         {
 
-             get => _feedback;
 
-             set
 
-             {
 
-                 _feedback = value;
 
-                 NotifyOfPropertyChange("Feedback");
 
-             }
 
-         }
 
-         private string _alarmTable;
 
-         public string AlarmTable
 
-         {
 
-             get => _alarmTable; set
 
-             {
 
-                 _alarmTable = value;
 
-                 NotifyOfPropertyChange("AlarmTable");
 
-             }
 
-         }
 
-     }
 
-     public class MFCDetailValue : PropertyChangedBase
 
-     {
 
-         private string _name;
 
-         public string Name
 
-         {
 
-             get => _name;
 
-             set
 
-             {
 
-                 _name = value;
 
-                 NotifyOfPropertyChange("Name");
 
-             }
 
-         }
 
-         private string _displayName;
 
-         public string DisplayName
 
-         {
 
-             get => _displayName;
 
-             set
 
-             {
 
-                 _displayName = value;
 
-                 NotifyOfPropertyChange("DisplayName");
 
-             }
 
-         }
 
-         public string _unit;
 
-         public string Unit
 
-         {
 
-             get => _unit;
 
-             set
 
-             {
 
-                 _unit = value;
 
-                 NotifyOfPropertyChange("Unit");
 
-             }
 
-         }
 
-         private string _setpoint;
 
-         public string Setpoint
 
-         {
 
-             get => _setpoint;
 
-             set
 
-             {
 
-                 _setpoint = value;
 
-                 NotifyOfPropertyChange("Setpoint");
 
-             }
 
-         }
 
-         private string _feedback;
 
-         public string Feedback
 
-         {
 
-             get => _feedback;
 
-             set
 
-             {
 
-                 _feedback = value;
 
-                 NotifyOfPropertyChange("Feedback");
 
-             }
 
-         }
 
-         private string _ramping;
 
-         public string Ramping
 
-         {
 
-             get => _ramping;
 
-             set
 
-             {
 
-                 _ramping = value;
 
-                 NotifyOfPropertyChange("Ramping");
 
-             }
 
-         }
 
-         private string _alarmTable;
 
-         public string AlarmTable
 
-         {
 
-             get => _alarmTable; set
 
-             {
 
-                 _alarmTable = value;
 
-                 NotifyOfPropertyChange("AlarmTable");
 
-             }
 
-         }
 
-         private double _maxValue;
 
-         public double MaxValue
 
-         {
 
-             get { return _maxValue; }
 
-             set
 
-             {
 
-                 _maxValue = value;
 
-                 NotifyOfPropertyChange("MaxValue");
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |