| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
							- using LiveCharts;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using Microsoft.Win32;
 
- using Prism.Commands;
 
- using Prism.Mvvm;
 
- using System;
 
- using System.IO;
 
- using System.Linq;
 
- using System.Windows.Threading;
 
- using Venus_MainPages.Unity;
 
- using Venus_Unity;
 
- namespace Venus_MainPages.ViewModels
 
- {
 
-     internal class VATPerformanceViewModel : BindableBase
 
-     {
 
-         #region 私有字段
 
-         private int m_GasFlow;
 
-         private int m_GasTime;
 
-         private int m_GasSelectedIndex;
 
-         public string ModuleName;
 
-         ChartValues<double> m_CurrentLineSeries = new ChartValues<double>();
 
-         ChartValues<double> m_ReferenceLineSeries = new ChartValues<double>();
 
-         DispatcherTimer timer = new DispatcherTimer();
 
-         VATPerformanceResult m_VATPerformanceResult; 
 
-         #endregion
 
-         #region 属性
 
-         public int GasFlow
 
-         {
 
-             get { return m_GasFlow; }
 
-             set { SetProperty(ref m_GasFlow, value); }
 
-         }
 
-         public int GasTime
 
-         {
 
-             get { return m_GasTime; }
 
-             set { SetProperty(ref m_GasTime, value); }
 
-         }
 
-         public int GasSelectedIndex
 
-         {
 
-             get { return m_GasSelectedIndex; }
 
-             set { SetProperty(ref m_GasSelectedIndex, value); }
 
-         }
 
-         public ChartValues<double> CurrentLineSeries
 
-         {
 
-             get { return m_CurrentLineSeries; }
 
-             set { SetProperty(ref m_CurrentLineSeries, value); }
 
-         }
 
-         public ChartValues<double> ReferenceLineSeries
 
-         {
 
-             get { return m_ReferenceLineSeries; }
 
-             set { SetProperty(ref m_ReferenceLineSeries, value); }
 
-         }
 
-         #endregion
 
-         #region 命令
 
-         private DelegateCommand _SelectGasCommand;
 
-         public DelegateCommand SelectGasCommand =>
 
-             _SelectGasCommand ?? (_SelectGasCommand = new DelegateCommand(OnSelectGas));
 
-         private DelegateCommand _StartCommand;
 
-         public DelegateCommand StartCommand =>
 
-             _StartCommand ?? (_StartCommand = new DelegateCommand(OnStart));
 
-         private DelegateCommand _LoadReferenceCommand;
 
-         public DelegateCommand LoadReferenceCommand =>
 
-             _LoadReferenceCommand ?? (_LoadReferenceCommand = new DelegateCommand(OnLoadReference));
 
-         private DelegateCommand _AbortCommand;
 
-         public DelegateCommand AbortCommand =>
 
-             _AbortCommand ?? (_AbortCommand = new DelegateCommand(OnAbort));
 
-         private DelegateCommand _SaveCommand;
 
-         public DelegateCommand SaveCommand =>
 
-             _SaveCommand ?? (_SaveCommand = new DelegateCommand(OnSave));
 
-         #endregion
 
-         #region 构造函数
 
-         public VATPerformanceViewModel()
 
-         {
 
-             OnSelectGas();
 
-             GasTime = 60;
 
-             timer.Interval = TimeSpan.FromSeconds(2);
 
-             timer.Tick += Timer_Tick;
 
-             
 
-         }
 
-         #endregion
 
-         #region 命令方法
 
-         private void OnSelectGas()
 
-         {
 
-            var value=Convert.ToInt32( QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas{(GasSelectedIndex+1).ToString()}.MfcN2Scale"));
 
-            var xishu= Convert.ToDouble(QueryDataClient.Instance.Service.GetConfig($"{ModuleName}.MfcGas{(GasSelectedIndex + 1).ToString()}.MfcScaleFactor"));
 
-            GasFlow = (int)(value * xishu) / 2;
 
-         }
 
-         //public enum CMPressure
 
-         //{
 
-         //    CM1,
 
-         //    CM2,
 
-         //}
 
-         //private CMPressure currentCMPressure = CMPressure.CM1;
 
-         private void OnStart()
 
-         {
 
-             //currentCMPressure = CMPressure.CM1;
 
-             m_VATPerformanceResult = new VATPerformanceResult();
 
-             m_VATPerformanceResult.StartTime = DateTime.Now.ToString();
 
-             m_VATPerformanceResult.FlowTime = GasTime;
 
-             m_VATPerformanceResult.GasName = $"Gas{GasSelectedIndex+1}";
 
-             CurrentLineSeries = new ChartValues<double>();
 
-             timer.Start();
 
-             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VATPerformanceTest", GasSelectedIndex+1, 1000 * GasTime, GasFlow);
 
-         }
 
-         private void OnLoadReference()
 
-         {
 
-             //ReferenceLineSeries.Clear();
 
-             //for (int i = 0; i < 21; i++)
 
-             //{
 
-             //    double value = Math.Round((double)GasFlow / (double)((i + 2) * 50),3);
 
-             //    ReferenceLineSeries.Add(value);
 
-             //}
 
-             OpenFileDialog dialog = new OpenFileDialog();
 
-             dialog.Filter = ".json|*.json";
 
-             dialog.InitialDirectory = Path.Combine(QueryDataClient.Instance.Service.GetData("GetRTPath").ToString(), "VATPerformanceResult");
 
-             if (dialog.ShowDialog() == true)
 
-             {
 
-                 string SelectedPath = dialog.FileName;
 
-                 var value = SerializeHelper.Instance.ReadFromJsonFile<VATPerformanceResult>(SelectedPath);
 
-                 ReferenceLineSeries.Clear();
 
-              
 
-                 value.ValuePairs.ForEach(x =>
 
-                 {              
 
-                     ReferenceLineSeries.Add(x);
 
-                 });
 
-             }
 
-             else
 
-             {
 
-                 ReferenceLineSeries.Clear();
 
-                 ReferenceLineSeries.Add(0);
 
-             }
 
-         }
 
-         private void OnAbort()
 
-         {
 
-             timer.Stop();
 
-             InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort");
 
-             CurrentLineSeries = new ChartValues<double>();
 
-         }
 
-         private void OnSave()
 
-         {
 
-             SerializeHelper.Instance.WriteToJsonFile<VATPerformanceResult>(m_VATPerformanceResult, $"VATPerformanceResult/{m_VATPerformanceResult.GasName}/{DateTime.Now.ToString("yyyyMMddHHmm")}.json");
 
-         }
 
-         #endregion
 
-        
 
-         #region 私有方法
 
-         private  void Timer_Tick(object sender, EventArgs e)
 
-         {
 
-             CurrentLineSeries.Clear();
 
-             var values = QueryDataClient.Instance.Service.GetData($"{ModuleName}.VATPerformanceResult").ToString();
 
-             values.Split(',').ToList().ForEach(x => 
 
-             {
 
-                 if (x != "")
 
-                 {
 
-                     CurrentLineSeries.Add(Math.Round( Convert.ToDouble(x),3));
 
-                 }
 
-             });
 
-             if (CurrentLineSeries.Count == 20)
 
-             {
 
-                 timer.Stop();
 
-             }
 
-               
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |