using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Threading; using Aitex.Core.Common.DeviceData; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using Prism.Commands; using Prism.Mvvm; using Venus_Core; namespace Venus_MainPages.ViewModels { public class MFCVerificationViewModel : BindableBase { #region 私有字段 public ObservableCollection m_MFC1VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC2VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC3VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC4VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC5VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC6VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC7VerificationPoints = new ObservableCollection(); public ObservableCollection m_MFC8VerificationPoints = new ObservableCollection(); private AITMfcData m_MFCData; private AITMfcData m_MFC1Data; private AITMfcData m_MFC2Data; private AITMfcData m_MFC3Data; private AITMfcData m_MFC4Data; private AITMfcData m_MFC5Data; private AITMfcData m_MFC6Data; private AITMfcData m_MFC7Data; private AITMfcData m_MFC8Data; private List m_RtDataKeys = new List(); private Dictionary m_RtDataValues; public string ModuleName; private ObservableCollection m_MFCVerificationPoints = new ObservableCollection(); private int m_GasSelectedIndex; private int m_PointsSelectedIndex; #endregion #region 属性 public ObservableCollection MFCVerificationPoints { get { return m_MFCVerificationPoints; } set { SetProperty(ref m_MFCVerificationPoints, value); } } public ObservableCollection MFC1VerificationPoints { get { return m_MFC1VerificationPoints; } set { SetProperty(ref m_MFC1VerificationPoints, value); } } public ObservableCollection MFC2VerificationPoints { get { return m_MFC2VerificationPoints; } set { SetProperty(ref m_MFC2VerificationPoints, value); } } public ObservableCollection MFC3VerificationPoints { get { return m_MFC3VerificationPoints; } set { SetProperty(ref m_MFC3VerificationPoints, value); } } public ObservableCollection MFC4VerificationPoints { get { return m_MFC4VerificationPoints; } set { SetProperty(ref m_MFC4VerificationPoints, value); } } public ObservableCollection MFC5VerificationPoints { get { return m_MFC5VerificationPoints; } set { SetProperty(ref m_MFC5VerificationPoints, value); } } public ObservableCollection MFC6VerificationPoints { get { return m_MFC6VerificationPoints; } set { SetProperty(ref m_MFC6VerificationPoints, value); } } public ObservableCollection MFC7VerificationPoints { get { return m_MFC7VerificationPoints; } set { SetProperty(ref m_MFC7VerificationPoints, value); } } public ObservableCollection MFC8VerificationPoints { get { return m_MFC8VerificationPoints; } set { SetProperty(ref m_MFC8VerificationPoints, value); } } public Dictionary RtDataValues { get { return m_RtDataValues; } set { SetProperty(ref m_RtDataValues, value); } } public AITMfcData MFCData { get { return m_MFCData; } set { SetProperty(ref m_MFCData, value); } } public AITMfcData MFC1Data { get { return m_MFC1Data; } set { SetProperty(ref m_MFC1Data, value); } } public AITMfcData MFC2Data { get { return m_MFC2Data; } set { SetProperty(ref m_MFC2Data, value); } } public AITMfcData MFC3Data { get { return m_MFC3Data; } set { SetProperty(ref m_MFC3Data, value); } } public AITMfcData MFC4Data { get { return m_MFC4Data; } set { SetProperty(ref m_MFC4Data, value); } } public AITMfcData MFC5Data { get { return m_MFC5Data; } set { SetProperty(ref m_MFC5Data, value); } } public AITMfcData MFC6Data { get { return m_MFC6Data; } set { SetProperty(ref m_MFC6Data, value); } } public AITMfcData MFC7Data { get { return m_MFC7Data; } set { SetProperty(ref m_MFC7Data, value); } } public AITMfcData MFC8Data { get { return m_MFC8Data; } set { SetProperty(ref m_MFC8Data, value); } } public int GasSelectedIndex { get { return m_GasSelectedIndex; } set { SetProperty(ref m_GasSelectedIndex, value); } } public int PointsSelectedIndex { get { return m_PointsSelectedIndex; } set { SetProperty(ref m_PointsSelectedIndex, value); } } #endregion #region 命令 private DelegateCommand _StartOnePointVerificationCommand; public DelegateCommand StartOnePointVerificationCommand => _StartOnePointVerificationCommand ?? (_StartOnePointVerificationCommand = new DelegateCommand(OnStartOnePointVerification)); private DelegateCommand _StartTenPointVerificationCommand; public DelegateCommand StartTenPointVerificationCommand => _StartTenPointVerificationCommand ?? (_StartTenPointVerificationCommand = new DelegateCommand(OnStartTenPointVerification)); private DelegateCommand _AbortCommand; public DelegateCommand AbortCommand => _AbortCommand ?? (_AbortCommand = new DelegateCommand(OnAbort)); private DelegateCommand _SelectGasCommand; public DelegateCommand SelectGasCommand => _SelectGasCommand ?? (_SelectGasCommand = new DelegateCommand(OnSelectGas)); #endregion public MFCVerificationViewModel() { //DispatcherTimer timer = new DispatcherTimer(); //timer.Interval = TimeSpan.FromSeconds(1); //timer.Tick += timer_Tick; //timer.Start(); } #region 命令方法 private void OnStartOnePointVerification(object obj) { var values = (object[])obj; string gasName = values[0].ToString(); float flow = float.Parse(values[1].ToString()); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.MFCVerification}", gasName, flow, 1); } private void OnStartTenPointVerification(object obj) { var values = (object[])obj; string gasName = values[0].ToString(); float flow = float.Parse(values[1].ToString()); InvokeClient.Instance.Service.DoOperation($"{ModuleName}.{RtOperation.MFCVerification}", gasName, flow, 10); } public void OnAbort() { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort"); } private void OnSelectGas() { MFCVerificationPoints.Clear(); MFCData = (AITMfcData)QueryDataClient.Instance.Service.GetData($"{ModuleName}.MfcGas{(GasSelectedIndex + 1).ToString()}"); int delta1 = (int)MFCData.Scale / 10; for (int i = 0; i < 10; i++) { MFCVerificationPoints.Add(delta1 + delta1 * i); } PointsSelectedIndex = 0; } #endregion #region 私有方法 public void Init() { OnSelectGas(); } #endregion } }