using Aitex.Core.Common.DeviceData;
using Aitex.Core.UI.ControlDataContext;
using Aitex.Core.UI.MVVM;
using Aitex.Core.Util;
using FurnaceUI.Models;
using MECF.Framework.Common.OperationCenter;
using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FurnaceUI.Views.Recipes;
using System.Windows.Input;
using System.Windows;
using Aitex.Core.UI.DeviceControl;
using OpenSEMI.ClientBase;
using Aitex.Core.UI.Control;
using MECF.Framework.UI.Core.Control;
using MECF.Framework.UI.Core.ExtendedControls;
using System.Runtime.InteropServices;
namespace FurnaceUI.Views.Editors.SiBCN
{
public class RecipeGasPanelSettingViewModel : FurnaceUIViewModelBase, IDisposable
{
public Window WinOwner { get; set; }
public bool IsCEXHOn { get; set; }
public string CEXHBrush
{
get
{
if (IsCEXHOn)
{
return "Green";
}
return "#FFB0D1F1";
}
}
public bool IsF2ClnOn { get; set; }
public string F2ClnBrush
{
get
{
if (IsF2ClnOn)
{
return "Green";
}
return "#FFB0D1F1";
}
}
public bool IsDEPOOn { get; set; }
public string DEPOBrush
{
get
{
if (IsDEPOOn)
{
return "Green";
}
return "#FFB0D1F1";
}
}
//[Subscription("PM1.IsHFClnOn")]
public bool IsHFClnOn { get; set; }
public string HFClnBrush
{
get
{
if (IsHFClnOn)
{
return "Green";
}
return "#FFB0D1F1";
}
}
[Subscription("PM1.ValveBlowerPowerOn.DeviceData")]
public AITValveData ValveBWR { get; set; }
public string ValveBWRBrush
{
get
{
if (ValveBWR != null && ValveBWR.VirtualFeedback)
{
return "Green";
}
return "#FFB0D1F1";
}
}
//[Subscription("PM1.HTR1Enable")]
public bool IsHTR1Enable { get; set; }
public string HTR1Brush
{
get
{
if (IsHTR1Enable)
{
return "Green";
}
return "#FFB0D1F1";
}
}
//[Subscription("PM1.HTR2Enable")]
public bool IsHTR2Enable { get; set; }
public string HTR2Brush
{
get
{
if (IsHTR2Enable)
{
return "Green";
}
return "#FFB0D1F1";
}
}
public bool IsHTR3Enable { get; set; }
public string HTR3Brush
{
get
{
if (IsHTR3Enable)
{
return "Green";
}
return "#FFB0D1F1";
}
}
[Subscription("PM1.ValveAV91.DeviceData")]
public AITValveData ValveDPR { get; set; }
public string ValveDPRBrush
{
get
{
if (ValveDPR != null && ValveDPR.VirtualFeedback)
{
return "Green";
}
return "#FFB0D1F1";
}
}
[Subscription("PM1.AUCPump.DeviceData")]
public AITValveData AUCPump { get; set; }
public string AUCPumpBrush
{
get
{
if (AUCPump != null && AUCPump.VirtualFeedback)
{
return "Green";
}
return "#FFB0D1F1";
}
}
[Subscription("PM1.BothPump.DeviceData")]
public AITValveData BothPump { get; set; }
public string BothPumpBrush
{
get
{
if (BothPump != null && BothPump.VirtualFeedback)
{
return "Green";
}
return "#FFB0D1F1";
}
}
[Subscription("PM1.AGVPump.DeviceData")]
public AITValveData AGVPump { get; set; }
public string AGVPumpBrush
{
get
{
if (AGVPump != null && AGVPump.VirtualFeedback)
{
return "Green";
}
return "#FFB0D1F1";
}
}
public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
public bool _ismanagerPermission = true;
public bool IsManagerPermission
{
get
{
return _ismanagerPermission;
}
set
{
_ismanagerPermission = value;
NotifyOfPropertyChange("IsManagerPermission");
}
}
#region Valves
[Subscription("PM1.ValveAV1.DeviceData")] public AITValveData ValveAV1 { get; set; }
[Subscription("PM1.ValveAV2.DeviceData")] public AITValveData ValveAV2 { get; set; }
[Subscription("PM1.ValveAV3.DeviceData")] public AITValveData ValveAV3 { get; set; }
[Subscription("PM1.ValveAV4.DeviceData")] public AITValveData ValveAV4 { get; set; }
[Subscription("PM1.ValveAV5.DeviceData")] public AITValveData ValveAV5 { get; set; }
[Subscription("PM1.ValveAV6.DeviceData")] public AITValveData ValveAV6 { get; set; }
[Subscription("PM1.ValveAV7.DeviceData")] public AITValveData ValveAV7 { get; set; }
[Subscription("PM1.ValveAV8.DeviceData")] public AITValveData ValveAV8 { get; set; }
[Subscription("PM1.ValveAV9.DeviceData")] public AITValveData ValveAV9 { get; set; }
[Subscription("PM1.ValveAV10.DeviceData")] public AITValveData ValveAV10 { get; set; }
[Subscription("PM1.ValveAV11.DeviceData")] public AITValveData ValveAV11 { get; set; }
[Subscription("PM1.ValveAV12.DeviceData")] public AITValveData ValveAV12 { get; set; }
[Subscription("PM1.ValveAV13.DeviceData")] public AITValveData ValveAV13 { get; set; }
[Subscription("PM1.ValveAV14.DeviceData")] public AITValveData ValveAV14 { get; set; }
[Subscription("PM1.ValveAV15.DeviceData")] public AITValveData ValveAV15 { get; set; }
[Subscription("PM1.ValveAV16.DeviceData")] public AITValveData ValveAV16 { get; set; }
[Subscription("PM1.ValveAV17.DeviceData")] public AITValveData ValveAV17 { get; set; }
[Subscription("PM1.ValveAV18.DeviceData")] public AITValveData ValveAV18 { get; set; }
[Subscription("PM1.ValveAV19.DeviceData")] public AITValveData ValveAV19 { get; set; }
[Subscription("PM1.ValveAV20.DeviceData")] public AITValveData ValveAV20 { get; set; }
[Subscription("PM1.ValveAV21.DeviceData")] public AITValveData ValveAV21 { get; set; }
[Subscription("PM1.ValveAV22.DeviceData")] public AITValveData ValveAV22 { get; set; }
[Subscription("PM1.ValveAV23.DeviceData")] public AITValveData ValveAV23 { get; set; }
[Subscription("PM1.ValveAV24.DeviceData")] public AITValveData ValveAV24 { get; set; }
[Subscription("PM1.ValveAV25.DeviceData")] public AITValveData ValveAV25 { get; set; }
[Subscription("PM1.ValveAV26.DeviceData")] public AITValveData ValveAV26 { get; set; }
[Subscription("PM1.ValveAV27.DeviceData")] public AITValveData ValveAV27 { get; set; }
[Subscription("PM1.ValveAV28.DeviceData")] public AITValveData ValveAV28 { get; set; }
[Subscription("PM1.ValveAV29.DeviceData")] public AITValveData ValveAV29 { get; set; }
[Subscription("PM1.ValveAV30.DeviceData")] public AITValveData ValveAV30 { get; set; }
[Subscription("PM1.ValveAV31.DeviceData")] public AITValveData ValveAV31 { get; set; }
[Subscription("PM1.ValveAV32.DeviceData")] public AITValveData ValveAV32 { get; set; }
[Subscription("PM1.ValveAV33.DeviceData")] public AITValveData ValveAV33 { get; set; }
[Subscription("PM1.ValveAV34.DeviceData")] public AITValveData ValveAV34 { get; set; }
[Subscription("PM1.ValveAV35.DeviceData")] public AITValveData ValveAV35 { get; set; }
[Subscription("PM1.ValveAV36.DeviceData")] public AITValveData ValveAV36 { get; set; }
[Subscription("PM1.ValveAV37.DeviceData")] public AITValveData ValveAV37 { get; set; }
[Subscription("PM1.ValveAV38.DeviceData")] public AITValveData ValveAV38 { get; set; }
[Subscription("PM1.ValveAV39.DeviceData")] public AITValveData ValveAV39 { get; set; }
[Subscription("PM1.ValveAV40.DeviceData")] public AITValveData ValveAV40 { get; set; }
[Subscription("PM1.ValveAV41.DeviceData")] public AITValveData ValveAV41 { get; set; }
[Subscription("PM1.ValveAV42.DeviceData")] public AITValveData ValveAV42 { get; set; }
[Subscription("PM1.ValveAV43.DeviceData")] public AITValveData ValveAV43 { get; set; }
[Subscription("PM1.ValveAV44.DeviceData")] public AITValveData ValveAV44 { get; set; }
[Subscription("PM1.ValveAV45.DeviceData")] public AITValveData ValveAV45 { get; set; }
[Subscription("PM1.ValveAV46.DeviceData")] public AITValveData ValveAV46 { get; set; }
[Subscription("PM1.ValveAV47.DeviceData")] public AITValveData ValveAV47 { get; set; }
[Subscription("PM1.ValveAV48.DeviceData")] public AITValveData ValveAV48 { get; set; }
[Subscription("PM1.ValveAV49.DeviceData")] public AITValveData ValveAV49 { get; set; }
[Subscription("PM1.ValveAV50.DeviceData")] public AITValveData ValveAV50 { get; set; }
[Subscription("PM1.ValveAV51.DeviceData")] public AITValveData ValveAV51 { get; set; }
[Subscription("PM1.ValveAV52.DeviceData")] public AITValveData ValveAV52 { get; set; }
[Subscription("PM1.ValveAV53.DeviceData")] public AITValveData ValveAV53 { get; set; }
[Subscription("PM1.ValveAV55.DeviceData")] public AITValveData ValveAV55 { get; set; }
[Subscription("PM1.ValveAV60.DeviceData")] public AITValveData ValveAV60 { get; set; }
[Subscription("PM1.ValveAV68.DeviceData")] public AITValveData ValveAV68 { get; set; }
[Subscription("PM1.APC.ModeFeedback")]
public int APCModeFeedback { get; set; }
[Subscription("PM1.ValveAV71.DeviceData")] public AITValveData ValveAV71Data { get; set; }
public AITValveData ValveAV71
{
get
{
return new AITValveData()
{
DeviceName = ValveAV71Data.DeviceName,
DisplayName = ValveAV71Data.DisplayName,
UniqueName = ValveAV71Data.UniqueName,
DefaultValue = ValveAV71Data.DefaultValue,
SetPoint = ValveAV71Data.SetPoint,
Feedback = APCModeFeedback != 5,
VirtualFeedback = ValveAV71Data.VirtualFeedback
};
}
}
[Subscription("PM1.ValveAV72.DeviceData")] public AITValveData ValveAV72 { get; set; }
[Subscription("PM1.ValveAV73.DeviceData")] public AITValveData ValveAV73 { get; set; }
[Subscription("PM1.ValveAV74.DeviceData")] public AITValveData ValveAV74 { get; set; }
[Subscription("PM1.ValveAV75.DeviceData")] public AITValveData ValveAV75 { get; set; }
[Subscription("PM1.ValveAV77.DeviceData")] public AITValveData ValveAV77 { get; set; }
[Subscription("PM1.ValveAV81.DeviceData")] public AITValveData ValveAV81 { get; set; }
[Subscription("PM1.ValveAV82.DeviceData")] public AITValveData ValveAV82 { get; set; }
[Subscription("PM1.ValveAV83.DeviceData")] public AITValveData ValveAV83 { get; set; }
#endregion
[Subscription("PM1.SensorPureN2PressureOK.DeviceData")]
public AITSensorData SensorPureN2PressureOK { get; set; }
[Subscription("PM1.SensorNH3PressureOK.DeviceData")]
public AITSensorData SensorNH3PressureOK { get; set; }
[Subscription("PM1.SensorSiH2CL2PressureOK.DeviceData")]
public AITSensorData SensorSiH2CL2PressureOK { get; set; }
[Subscription("PM1.SensorN2OPressureOK.DeviceData")]
public AITSensorData SensorN2OPressureOK { get; set; }
[Subscription("PM1.SensorPSW1LOW.DeviceData")]
public AITSensorData SensorPSW1LOW { get; set; }
[Subscription("PM1.SensorPSW2LOW.DeviceData")]
public AITSensorData SensorPSW2LOW { get; set; }
[Subscription("PM1.SensorGUExhaustOK.DeviceData")]
public AITSensorData SensorGUExhaustOK { get; set; }
[Subscription("PM1.SensorVAC1.Value")]
public bool VAC1 { get; set; }
[Subscription("PM1.SensorVAC2.Value")]
public bool VAC2 { get; set; }
[Subscription("PM1.SensorVAC3.Value")]
public bool VAC3 { get; set; }
[Subscription("PM1.SensorVAC4.Value")]
public bool VAC4 { get; set; }
[Subscription("PM1.SensorVAC5.Value")]
public bool VAC5 { get; set; }
[Subscription("PM1.SensorVAC6.Value")]
public bool VAC6 { get; set; }
[Subscription("PM1.SensorVACATM.Value")]
public bool VACATM { get; set; }
[Subscription("PM1.SensorVACDEPOOK.Value")]
public bool DEPOOK { get; set; }
[Subscription("PM1.SensorVACHFOK.Value")]
public bool HFClnOK { get; set; }
[Subscription("PM1.SensorVACF2OK.Value")]
public bool F2ClnOK { get; set; }
#region MFCs
[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.MFC51.DeviceData")]
public AITMfcData MFC51Data { get; set; }
#endregion
[Subscription("PM1.MFM1.DeviceData")]
public AITWaterFlowMeterData Mfm1FlowData { get; set; }
/////
///// 设置鼠标的坐标
/////
///// 横坐标
///// 纵坐标
//[DllImport("User32")]
//public extern static void SetCursorPos(int x, int y);
public ICommand CmdSetValve { get; set; }
public ICommand CmdSetMfcFlow { get; set; }
public ICommand CmdSetMfmFlow { get; set; }
public int SelectedStepNo { get; set; }
private string _selectedStepName;
public string SelectedStepName
{
get
{
return _selectedStepName;
}
set
{
_selectedStepName = value;
NotifyOfPropertyChange("SelectedStepName");
}
}
private Step _step;
public Step SelectedStep
{
get => _step;
set
{
_step = value;
NotifyOfPropertyChange("SelectedStep");
}
}
public RecipeDataBase CurrentRecipe { get; set; }
#region"MFC"
private AnalogDeviceDataItem _mfc1;
public AnalogDeviceDataItem MFC1
{
get => _mfc1;
set
{
_mfc1 = value;
NotifyOfPropertyChange("MFC1");
}
}
private AnalogDeviceDataItem _mfc2;
public AnalogDeviceDataItem MFC2
{
get => _mfc2;
set
{
_mfc2 = value;
NotifyOfPropertyChange("MFC2");
}
}
private AnalogDeviceDataItem _mfc3;
public AnalogDeviceDataItem MFC3
{
get => _mfc3;
set
{
_mfc3 = value;
NotifyOfPropertyChange("MFC3");
}
}
private AnalogDeviceDataItem _mfc4;
public AnalogDeviceDataItem MFC4
{
get => _mfc4;
set
{
_mfc4 = value;
NotifyOfPropertyChange("MFC4");
}
}
private AnalogDeviceDataItem _mfc5;
public AnalogDeviceDataItem MFC5
{
get => _mfc5;
set
{
_mfc5 = value;
NotifyOfPropertyChange("MFC5");
}
}
private AnalogDeviceDataItem _mfc6;
public AnalogDeviceDataItem MFC6
{
get => _mfc6;
set
{
_mfc6 = value;
NotifyOfPropertyChange("MFC6");
}
}
private AnalogDeviceDataItem _mfc7;
public AnalogDeviceDataItem MFC7
{
get => _mfc7;
set
{
_mfc7 = value;
NotifyOfPropertyChange("MFC7");
}
}
private AnalogDeviceDataItem _mfc8;
public AnalogDeviceDataItem MFC8
{
get => _mfc8;
set
{
_mfc8 = value;
NotifyOfPropertyChange("MFC8");
}
}
private AnalogDeviceDataItem _mfc9;
public AnalogDeviceDataItem MFC9
{
get => _mfc9;
set
{
_mfc9 = value;
NotifyOfPropertyChange("MFC9");
}
}
private AnalogDeviceDataItem _mfc10;
public AnalogDeviceDataItem MFC10
{
get => _mfc10;
set
{
_mfc10 = value;
NotifyOfPropertyChange("MFC10");
}
}
private AnalogDeviceDataItem _mfc11;
public AnalogDeviceDataItem MFC11
{
get => _mfc11;
set
{
_mfc11 = value;
NotifyOfPropertyChange("MFC11");
}
}
private AnalogDeviceDataItem _mfc12;
public AnalogDeviceDataItem MFC12
{
get => _mfc12;
set
{
_mfc12 = value;
NotifyOfPropertyChange("MFC12");
}
}
private AnalogDeviceDataItem _mfc13;
public AnalogDeviceDataItem MFC13
{
get => _mfc13;
set
{
_mfc13 = value;
NotifyOfPropertyChange("MFC13");
}
}
private AnalogDeviceDataItem _mfc14;
public AnalogDeviceDataItem MFC14
{
get => _mfc14;
set
{
_mfc14 = value;
NotifyOfPropertyChange("MFC14");
}
}
private AnalogDeviceDataItem _mfc15;
public AnalogDeviceDataItem MFC15
{
get => _mfc15;
set
{
_mfc15 = value;
NotifyOfPropertyChange("MFC15");
}
}
private AnalogDeviceDataItem _mfc16;
public AnalogDeviceDataItem MFC16
{
get => _mfc16;
set
{
_mfc16 = value;
NotifyOfPropertyChange("MFC16");
}
}
#endregion
private Visibility _borderVisibility = Visibility.Visible;
public Visibility BorderVisibility
{
get { return _borderVisibility; }
set { _borderVisibility = value; this.NotifyOfPropertyChange(nameof(BorderVisibility)); }
}
private AnalogDeviceDataItem _mfm1Flow;
public AnalogDeviceDataItem Mfm1Flow
{
get => _mfm1Flow;
set
{
_mfm1Flow = value;
NotifyOfPropertyChange("Mfm1Flow");
}
}
public delegate void ChangedStepHandler(Step step);
public event ChangedStepHandler ChangedStepEvent;
private bool _isUsePREVBtn = false;
public bool IsUsePREVBtn
{
get => _isUsePREVBtn;
set
{
_isUsePREVBtn = value;
NotifyOfPropertyChange("IsUsePREVBtn");
}
}
private bool _isUseNEXTBtn = false;
public bool IsUseNEXTBtn
{
get => _isUseNEXTBtn;
set
{
_isUseNEXTBtn = value;
NotifyOfPropertyChange("IsUseNEXTBtn");
}
}
private GasPanelStateType _selectedGasStateType = GasPanelStateType.Monitor;
public GasPanelStateType SelectedGasStateType
{
get
{
return _selectedGasStateType;
}
set
{
_selectedGasStateType = value;
NotifyOfPropertyChange(nameof(SelectedGasStateType));
}
}
private void SetPREVAndNEXTBtn()
{
if (SelectedStep != null && CurrentRecipe != null)
{
if (CurrentRecipe.Steps.Count == 0)
{
IsUsePREVBtn = false;
IsUseNEXTBtn = false;
}
else
{
if (SelectedStep.StepNo > CurrentRecipe.Steps[0].StepNo)
{
IsUsePREVBtn = true;
}
else
{
IsUsePREVBtn = false;
}
if (SelectedStep.StepNo < CurrentRecipe.Steps[CurrentRecipe.Steps.Count - 1].StepNo)
{
IsUseNEXTBtn = true;
}
else
{
IsUseNEXTBtn = false;
}
}
}
}
public void SetChangedStep(Step step)
{
if (ChangedStepEvent != null)
{
ChangedStepEvent(step);
}
}
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
IsManagerPermission = true;
SetValveVirtualFeedbackValue();
// CreateAITValveDataDefault();
CreateMfcDefault();
CreateMfmDefault();
SetPREVAndNEXTBtn();
CmdSetValve = new DelegateCommand