| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using Prism.Commands;
 
- using Prism.Mvvm;
 
- using Venus_MainPages.Unity;
 
- using Venus_MainPages.Views;
 
- using System.Threading.Tasks;
 
- using Aitex.Core.Util;
 
- using FabConnect.SecsGemInterface.GemModel;
 
- using MECF.Framework.Common.OperationCenter;
 
- using Aitex.Core.RT.OperationCenter;
 
- using System.Windows.Threading;
 
- using Aitex.Core.Common.DeviceData;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.Equipment;
 
- using Aitex.Core.RT.Log;
 
- namespace Venus_MainPages.ViewModels
 
- {
 
-     public class FaViewModel:BindableBase
 
-     {
 
-         private readonly GEMController _gem = new GEMController();
 
-         private List<string> m_RtDataKeys = new List<string>();
 
-         private Dictionary<string, object> m_RtDataValues;
 
-         private string m_HostCommunicationStatus;
 
-         private string m_HostControlStatus;
 
-         private int m_SpoolingState;
 
-         private string m_SpoolingActual;
 
-         private string m_SpoolingTotal;
 
-         private string m_SpoolingFullTime;
 
-         private string m_SpoolingStartTime;
 
-         private  bool  m_IsSpoolingEnable;
 
-         #region 私有变量
 
-         public enum ConmmunicationState
 
-         {
 
-             Disabled,
 
-             Enabled,
 
-             EnabledNotCommunicating,
 
-             EnabledCommunicating,
 
-             WaitCRA,
 
-             WaitDelay,
 
-             WaitCRFromHost,
 
-         }
 
-         public enum ControlState
 
-         {
 
-             Unknown,
 
-             EquipmentOffline,
 
-             AttemptOnline,
 
-             HostOffline,
 
-             OnlineLocal,
 
-             OnlineRemote,
 
-         }
 
-         #endregion
 
-         #region 命令
 
-       
 
-         private DelegateCommand _FaEnableCommand;
 
-         public DelegateCommand FaEnableCommand =>
 
-         _FaEnableCommand ?? (_FaEnableCommand = new DelegateCommand(FaEnable));
 
-         private DelegateCommand _FaDisableCommand;
 
-         public DelegateCommand FaDisableCommand =>
 
-         _FaDisableCommand ?? (_FaDisableCommand = new DelegateCommand(FaDisable));
 
-         private DelegateCommand _FaOnlineCommand;
 
-         public DelegateCommand FaOnlineCommand =>
 
-         _FaOnlineCommand ?? (_FaOnlineCommand = new DelegateCommand(FaOnline));
 
-         private DelegateCommand _FaOfflineCommand;
 
-         public DelegateCommand FaOfflineCommand =>
 
-         _FaOfflineCommand ?? (_FaOfflineCommand = new DelegateCommand(FaOffline));
 
-         private DelegateCommand _FaLocalCommand;
 
-         public DelegateCommand FaLocalCommand =>
 
-         _FaLocalCommand ?? (_FaLocalCommand = new DelegateCommand(FaLocal));
 
-         private DelegateCommand _FaRemoteCommand;
 
-         public DelegateCommand FaRemoteCommand =>
 
-         _FaRemoteCommand ?? (_FaRemoteCommand = new DelegateCommand(FaRemote));
 
-         private DelegateCommand _FaEnableSpoolingCommand;
 
-         public DelegateCommand FaEnableSpoolingCommand =>
 
-         _FaEnableSpoolingCommand ?? (_FaEnableSpoolingCommand = new DelegateCommand(FaEnableSpooling));
 
-         private DelegateCommand _FaDisableSpoolingCommand;
 
-         public DelegateCommand FaDisableSpoolingCommand =>
 
-         _FaDisableSpoolingCommand ?? (_FaDisableSpoolingCommand = new DelegateCommand(FaDisableSpooling));
 
-         #endregion
 
-         #region 属性
 
-         public string HostCommunicationStatus
 
-         {
 
-             get { return m_HostCommunicationStatus; }
 
-             set { SetProperty(ref m_HostCommunicationStatus, value); }
 
-         }
 
-         public string HostControlStatus 
 
-         {
 
-             get { return m_HostControlStatus; }
 
-             set { SetProperty(ref m_HostControlStatus, value); }
 
-         }
 
-         public int SpoolingState 
 
-         {
 
-             get { return m_SpoolingState; }
 
-             set { SetProperty(ref m_SpoolingState, value); }
 
-         }
 
-         public string SpoolingActual 
 
-         {
 
-             get { return m_SpoolingActual; }
 
-             set { SetProperty(ref m_SpoolingActual, value); }
 
-         }
 
-         public string SpoolingTotal 
 
-         { 
 
-           get { return m_SpoolingTotal; }   
 
-           set { SetProperty(ref m_SpoolingTotal, value); }
 
-         }
 
-         public string SpoolingFullTime 
 
-         {
 
-          get { return m_SpoolingFullTime; }
 
-          set { SetProperty(ref m_SpoolingFullTime, value); }
 
-         }
 
-         public string SpoolingStartTime 
 
-         {
 
-          get { return m_SpoolingStartTime; } 
 
-          set { SetProperty(ref m_SpoolingStartTime, value); }
 
-         }
 
-         public bool IsSpoolingEnable
 
-         { 
 
-           get { return m_IsSpoolingEnable; }
 
-           set { SetProperty(ref m_IsSpoolingEnable, value); }
 
-         }
 
-         public Dictionary<string, object> RtDataValues
 
-         {
 
-             get { return m_RtDataValues; }
 
-             set { SetProperty(ref m_RtDataValues, value); }
 
-         }
 
-         public CommunicationState FACommunicationState
 
-         {
 
-             get
 
-             {
 
-                 return string.IsNullOrEmpty(HostCommunicationStatus) ? CommunicationState.Disabled
 
-                     : (CommunicationState)Enum.Parse(typeof(CommunicationState), HostCommunicationStatus);
 
-             }
 
-         }
 
-         public ControlState FAControlState
 
-         {
 
-             get
 
-             {
 
-                 return string.IsNullOrEmpty(HostControlStatus) ? ControlState.Unknown
 
-                     : (ControlState)Enum.Parse(typeof(ControlState), HostControlStatus);
 
-             }
 
-         }
 
-         public bool _IsDisableEnable;
 
-         public bool IsEnableEnable
 
-         {
 
-             get { return _IsDisableEnable; }
 
-             set {  SetProperty(ref _IsDisableEnable, value);}    
 
-         }
 
-         public bool _IsEnableDisable;
 
-         public bool IsEnableDisable
 
-         {
 
-             get { return _IsEnableDisable; }
 
-             set { SetProperty(ref _IsEnableDisable, value); }
 
-         }
 
-         public bool _IsEnableOnline;
 
-         public bool IsEnableOnline
 
-         {
 
-             get { return _IsEnableOnline; }
 
-             set { SetProperty(ref _IsEnableOnline, value); }
 
-         }
 
-         public bool _IsEnableOffline;
 
-         public bool IsEnableOffline
 
-         {
 
-             get { return _IsEnableOffline; }
 
-             set { SetProperty(ref _IsEnableOffline, value); }
 
-         }
 
-         public bool _IsEnableLocal;
 
-         public bool IsEnableLocal
 
-         {
 
-             get { return _IsEnableLocal; }
 
-             set { SetProperty(ref _IsEnableLocal, value); }
 
-         }
 
-         public bool _IsEnableRemote;
 
-         public bool IsEnableRemote
 
-         {
 
-             get { return _IsEnableRemote; }
 
-             set { SetProperty(ref _IsEnableRemote, value); }
 
-         }
 
-         public bool _IsEnableEnableSpooling;
 
-         public bool IsEnableEnableSpooling
 
-         {
 
-             get { return _IsEnableEnableSpooling; }
 
-             set { SetProperty(ref _IsEnableEnableSpooling, value); }
 
-         }
 
-         public bool IsEnableDisableSpooling
 
-         {
 
-             get
 
-             {
 
-                 return IsSpoolingEnable;
 
-             }
 
-         }
 
-         #endregion
 
-         #region 构造函数
 
-         public FaViewModel()
 
-         {
 
-             addDataKeys();
 
-             DispatcherTimer timer = new DispatcherTimer();
 
-             timer.Interval = TimeSpan.FromSeconds(0.5);
 
-             timer.Tick += timer_Tick;
 
-             timer.Start();
 
-             
 
-         }
 
-         #endregion
 
-         #region
 
-         void timer_Tick(object sender, EventArgs e)
 
-         {   
 
-             IsEnableEnable = FACommunicationState == CommunicationState.Disabled;
 
-             IsEnableDisable= FACommunicationState != CommunicationState.Disabled;
 
-             IsEnableOnline = FAControlState == ControlState.Unknown || FAControlState == ControlState.EquipmentOffline;
 
-             IsEnableOffline = FAControlState == ControlState.Unknown || FAControlState != ControlState.EquipmentOffline;
 
-             IsEnableRemote = FAControlState == ControlState.OnlineLocal;
 
-             IsEnableLocal = FAControlState == ControlState.OnlineRemote;
 
-             IsEnableEnableSpooling = !IsSpoolingEnable;
 
-             RtDataValues = QueryDataClient.Instance.Service.PollData(m_RtDataKeys);
 
-             HostCommunicationStatus = CommonFunction.GetValue<String>(RtDataValues, "System.CommunicationStatus");
 
-             HostControlStatus = CommonFunction.GetValue<String>(RtDataValues, "System.ControlStatus");
 
-             SpoolingState = CommonFunction.GetValue<int>(RtDataValues, "System.SpoolingState");
 
-             SpoolingActual = CommonFunction.GetValue<string>(RtDataValues, "System.SpoolingActual");
 
-             SpoolingTotal= CommonFunction.GetValue<string>(RtDataValues, "System.SpoolingTotal");
 
-             SpoolingFullTime = CommonFunction.GetValue<string>(RtDataValues, "System.SpoolingFullTime");
 
-             SpoolingStartTime = CommonFunction.GetValue<string>(RtDataValues, "System.SpoolingStartTime");
 
-             IsSpoolingEnable = CommonFunction.GetValue<bool>(RtDataValues, "System.IsSpoolingEnable");
 
-         }
 
-         private void addDataKeys()
 
-         {
 
-             m_RtDataKeys.Add("System.CommunicationStatus");
 
-             m_RtDataKeys.Add("System.ControlStatus");
 
-             m_RtDataKeys.Add("System.SpoolingState");
 
-             m_RtDataKeys.Add("System.SpoolingActual");
 
-             m_RtDataKeys.Add("System.SpoolingTotal");
 
-             m_RtDataKeys.Add("System.SpoolingFullTime");
 
-             m_RtDataKeys.Add("System.SpoolingStartTime");
 
-             m_RtDataKeys.Add("System.IsSpoolingEnable");   
 
-         }
 
-             public void FaEnable()
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAEnable");
 
-         }
 
-         public void FaDisable()
 
-         {
 
-             
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FADisable");
 
-         }
 
-         public void FaOnline()
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAOnline");
 
-         }
 
-         public void FaOffline()
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAOffline");
 
-         }
 
-         public void FaLocal()
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FALocal");
 
-         }
 
-         public void FaRemote()
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FARemote");
 
-         }
 
-         public void FaEnableSpooling()
 
-         {
 
-             
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAEnableSpooling");
 
-         }
 
-         public void FaDisableSpooling()
 
-         {
 
-            
 
-             InvokeClient.Instance.Service.DoOperation("System.FACommand", "FADisableSpooling");
 
-         }
 
-  
 
-         #endregion
 
-     }
 
- }
 
 
  |