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 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 _mfcDetailDatas = new ObservableCollection(); public ObservableCollection MFCDetailDatas { get => _mfcDetailDatas; set { _mfcDetailDatas = value; NotifyOfPropertyChange("MFCDetailDatas"); } } private ObservableCollection _mfmDetailDatas = new ObservableCollection(); public ObservableCollection MFMDetailDatas { get => _mfmDetailDatas; set { _mfmDetailDatas = value; NotifyOfPropertyChange("MFMDetailDataLists"); } } private ObservableCollection _valveDetailDatas = new ObservableCollection(); public ObservableCollection ValveDetailDatas { get => _valveDetailDatas; set { _valveDetailDatas = value; NotifyOfPropertyChange("ValveDetailDatas"); } } private ObservableCollection _apcDetailDatas = new ObservableCollection(); public ObservableCollection APCDetailDatas { get => _apcDetailDatas; set { _apcDetailDatas = value; NotifyOfPropertyChange("APCDetailDatas"); } } private ObservableCollection _analogDetailDatas = new ObservableCollection(); public ObservableCollection 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 data) { base.InvokeAfterUpdateProperty(data); if (!IsEnableMannual) UpdateFlowValue(); } private void UpdateFlowValue() { List allmfcData = new List() { MFC1Data, MFC2Data, MFC3Data, MFC4Data, MFC5Data, MFC6Data, MFC7Data, MFC8Data, MFC9Data, MFC10Data, MFC11Data, MFC12Data, MFC13Data, MFC14Data, MFC15Data, MFC16Data, MFC17Data, MFC31Data, MFC32Data, MFC51Data, }; List mfcData = new List() { }; foreach (var item in allmfcData) { if (item != null) { mfcData.Add(item); } } List tempMFC = new List(); 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 allmfmData = new List() { MFM1FlowData, MFM6FlowData, MFM7FlowData, MFM8FlowData, MFM9FlowData, MFM11FlowData, MFM12FlowData, MFM13FlowData, MFM16FlowData, MFM57FlowData, }; List mfmData = new List() { }; foreach (var item in allmfmData) { if (item != null) { mfmData.Add(item); } } List tempMFM = new List(); 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 apcData = new List() { APCData, }; List allValveData = new List() { 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 valveData = new List() { }; foreach (var item in allValveData) { if (item != null) { valveData.Add(item); } } List tempPresure = new List(); 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(); 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() 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() 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() 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"); } } } }