| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 | 
							- using Aitex.Core.UI.MVVM;
 
- using MECF.Framework.Common.CommonData;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.Device.Safety;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.Common.Utilities;
 
- using OpenSEMI.ClientBase.Command;
 
- using Prism.Mvvm;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Input;
 
- using System.Windows.Threading;
 
- namespace CyberX8_MainPages.ViewModels
 
- {
 
-     public class SystemSafetyViewModel : BindableBase
 
-     {
 
-         #region 常量
 
-         private const string SAFETY_DATA = "SafetyData";
 
-         private const string IS_SWITCH_ON = "IsSwitchOn";
 
-         private const string IS_INITIALIZED = "IsInitialized";
 
-         private const string IS_MOVING = "IsMoving";
 
-         #endregion
 
-         #region 内部变量
 
-         private SafetyData _commonSafetyData;
 
-         #region Loader
 
-         private bool _isLoaderRotationOn;
 
-         private bool _isLoaderASwingOn;
 
-         private bool _isLoaderATiltOn;
 
-         private bool _isLoaderBSwingOn;
 
-         private bool _isLoaderBTiltOn;
 
-         private bool _isLoaderMoving;
 
-         #endregion
 
-         #region PUFs
 
-         private bool _isPuf1VerticalOn;
 
-         private bool _isPuf1RotationOn;
 
-         private bool _isPuf1FlipOn;
 
-         private bool _isPuf2VerticalOn;
 
-         private bool _isPuf2RotationOn;
 
-         private bool _isPuf2FlipOn;
 
-         private bool _isPufsMoving;
 
-         #endregion
 
-         #region SRD
 
-         private bool _isSrd1ArmOn;
 
-         private bool _isSrd1RotationOn;
 
-         private bool _isSrd2ArmOn;
 
-         private bool _isSrd2RotationOn;
 
-         private bool _isSRDsMoving;
 
-         #endregion
 
-         #region Transporters
 
-         private bool _isLoaderGantryOn;
 
-         private bool _isLoaderElevatorOn;
 
-         private bool _isLoaderTransMoving;
 
-         private bool _isProcessGantryOn;
 
-         private bool _isProcessElevatorOn;
 
-         private bool _isProcessTransMoving;
 
-         #endregion
 
-         #endregion
 
-         #region 属性
 
-         public SafetyData CommonSafetyData { get { return _commonSafetyData; } set { SetProperty(ref _commonSafetyData, value); } }
 
-         #region Loader
 
-         public bool IsLoaderRotationOn { get { return _isLoaderRotationOn; } set { SetProperty(ref _isLoaderRotationOn, value); } }
 
-         public bool IsLoaderASwingOn { get { return _isLoaderASwingOn; } set { SetProperty(ref _isLoaderASwingOn, value); } }
 
-         public bool IsLoaderATiltOn { get { return _isLoaderATiltOn; } set { SetProperty(ref _isLoaderATiltOn, value); } }
 
-         public bool IsLoaderBSwingOn { get { return _isLoaderBSwingOn; } set { SetProperty(ref _isLoaderBSwingOn, value); } }
 
-         public bool IsLoaderBTiltOn { get { return _isLoaderBTiltOn; } set { SetProperty(ref _isLoaderBTiltOn, value); } }
 
-         /// <summary>
 
-         /// Is Loader Moving
 
-         /// </summary>
 
-         public bool IsLoaderMoving { get { return _isLoaderMoving; } set { SetProperty(ref _isLoaderMoving, value); } }
 
-         #endregion
 
-         #region PUFs
 
-         public bool IsPuf1VerticalOn { get { return _isPuf1VerticalOn; } set { SetProperty(ref _isPuf1VerticalOn, value); } }
 
-         public bool IsPuf1RotationOn { get { return _isPuf1RotationOn; } set { SetProperty(ref _isPuf1RotationOn, value); } }
 
-         public bool IsPuf1FlipOn { get { return _isPuf1FlipOn; } set { SetProperty(ref _isPuf1FlipOn, value); } }
 
-         public bool IsPuf2VerticalOn { get { return _isPuf2VerticalOn; } set { SetProperty(ref _isPuf2VerticalOn, value); } }
 
-         public bool IsPuf2RotationOn { get { return _isPuf2RotationOn; } set { SetProperty(ref _isPuf2RotationOn, value); } }
 
-         public bool IsPuf2FlipOn { get { return _isPuf2FlipOn; } set { SetProperty(ref _isPuf2FlipOn, value); } }
 
-         /// <summary>
 
-         /// Is Pufs Moving
 
-         /// </summary>
 
-         public bool IsPufsMoving { get { return _isPufsMoving; } set { SetProperty(ref _isPufsMoving, value); } }
 
-         #endregion
 
-         #region SRD
 
-         public bool IsSrd1ArmOn { get { return _isSrd1ArmOn; } set { SetProperty(ref _isSrd1ArmOn, value); } }
 
-         public bool IsSrd1RotationOn { get { return _isSrd1RotationOn; } set { SetProperty(ref _isSrd1RotationOn, value);}}
 
-         public bool IsSrd2ArmOn { get { return _isSrd2ArmOn; } set { SetProperty(ref _isSrd2ArmOn, value); } }
 
-         public bool IsSrd2RotationOn { get { return _isSrd2RotationOn; } set { SetProperty(ref _isSrd2RotationOn, value); } }
 
-         /// <summary>
 
-         /// Is SRDs Moving
 
-         /// </summary>
 
-         public bool IsSRDsMoving { get { return _isSRDsMoving; } set { SetProperty(ref _isSRDsMoving, value); } }
 
-         #endregion
 
-         #region Transporters
 
-         public bool IsLoaderGantryOn { get { return _isLoaderGantryOn; } set { SetProperty(ref _isLoaderGantryOn, value); } }
 
-         public bool IsLoaderElevatorOn { get { return _isLoaderElevatorOn; } set { SetProperty(ref _isLoaderElevatorOn, value); } }
 
-         /// <summary>
 
-         /// Is LoaderTransporters Moving
 
-         /// </summary>
 
-         public bool IsLoaderTransMoving { get { return _isLoaderTransMoving; } set { SetProperty(ref _isLoaderTransMoving, value); }}
 
-         public bool IsProcessGantryOn { get { return _isProcessGantryOn; } set { SetProperty(ref _isProcessGantryOn, value); } }
 
-         public bool IsProcessElevatorOn { get { return _isProcessElevatorOn; } set { SetProperty(ref _isProcessElevatorOn, value); } }
 
-         /// <summary>
 
-         /// Is ProcessTransporters Moving
 
-         /// </summary>
 
-         public bool IsProcessTransMoving { get { return _isProcessTransMoving; } set { SetProperty(ref _isProcessTransMoving, value); } }
 
-         #endregion
 
-         #endregion
 
-         /// <summary>
 
-         /// 定时器
 
-         /// </summary>
 
-         DispatcherTimer _timer;
 
-         /// <summary>
 
-         /// 查询后台数据集合
 
-         /// </summary>
 
-         private List<string> _rtDataKeys = new List<string>();
 
-         /// <summary>
 
-         /// rt查询key数值字典
 
-         /// </summary>
 
-         private Dictionary<string, object> _rtDataValueDic = new Dictionary<string, object>();
 
-         #region 指令
 
-         public ICommand PauseCommand { get; private set; }
 
-         public ICommand ResumeCommand { get; private set; }
 
-         public ICommand ResetCommand { get; private set; }
 
-         public ICommand LockLoaderDoorsCommand { get; private set; }
 
-         public ICommand UnlockLoaderDoorsCommand { get; private set; }
 
-         public ICommand LockBufferDoorsCommand { get; private set; }
 
-         public ICommand UnlockBufferDoorsCommand { get; private set; }
 
-         public ICommand LockProcessDoorsCommand { get; private set; }
 
-         public ICommand UnlockProcessDoorsCommand { get; private set; }
 
-         public ICommand AllOnCommand { get; private set; }
 
-         #endregion
 
-         /// <summary>
 
-         /// 构造函数
 
-         /// </summary>
 
-         public SystemSafetyViewModel()
 
-         {
 
-             PauseCommand = new DelegateCommand<Object>(PauseAction);
 
-             ResumeCommand = new DelegateCommand<Object>(ResumeAction);
 
-             ResetCommand = new DelegateCommand<Object>(ResetAction);
 
-             LockLoaderDoorsCommand = new DelegateCommand<Object>(LockLoaderDoorsAction);
 
-             UnlockLoaderDoorsCommand = new DelegateCommand<Object>(UnlockLoaderDoorsAction);
 
-             LockBufferDoorsCommand = new DelegateCommand<Object>(LockBufferDoorsAction);
 
-             UnlockBufferDoorsCommand = new DelegateCommand<Object>(UnlockBufferDoorsAction);
 
-             LockProcessDoorsCommand = new DelegateCommand<Object>(LockProcessDoorsAction);
 
-             UnlockProcessDoorsCommand = new DelegateCommand<Object>(UnlockProcessDoorsAction);
 
-             AllOnCommand = new DelegateCommand<Object>(AllOnAction);
 
-         }
 
-         /// <summary>
 
-         /// 初始化Keys
 
-         /// </summary>
 
-         private void InitialKeys()
 
-         {
 
-             _rtDataKeys.Clear();
 
-             _rtDataKeys.Add($"Safety.{SAFETY_DATA}");
 
-             _rtDataKeys.Add($"Safety.{IS_INITIALIZED}");
 
-             
 
-             _rtDataKeys.Add($"Loader1.Rotation.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Loader1.ShuttleA.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Loader1.TiltA.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Loader1.ShuttleB.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Loader1.TiltB.{IS_SWITCH_ON}");
 
-             
 
-             _rtDataKeys.Add($"SRD1.Arm.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"SRD1.Rotation.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"SRD2.Arm.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"SRD2.Rotation.{IS_SWITCH_ON}");
 
-             
 
-             _rtDataKeys.Add($"PUF1.Vertical.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"PUF1.Rotation.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"PUF1.Flip.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"PUF2.Vertical.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"PUF2.Rotation.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"PUF2.Flip.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Transporter2.Gantry.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Transporter2.Elevator.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Transporter1.Gantry.{IS_SWITCH_ON}");
 
-             _rtDataKeys.Add($"Transporter1.Elevator.{IS_SWITCH_ON}");
 
-             //Is Moving
 
-             _rtDataKeys.Add($"Loader1.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Loader1.ShuttleA.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Loader1.TiltA.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Loader1.ShuttleB.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Loader1.TiltB.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD1.Arm.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD1.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD2.Arm.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD2.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF1.Vertical.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF1.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF1.Flip.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF2.Vertical.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF2.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"PUF2.Flip.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Transporter2.Gantry.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Transporter2.Elevator.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Transporter1.Gantry.{IS_MOVING}");
 
-             _rtDataKeys.Add($"Transporter1.Elevator.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD1.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD1.Arm.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD2.Rotation.{IS_MOVING}");
 
-             _rtDataKeys.Add($"SRD2.Arm.{IS_MOVING}");
 
-         }
 
-         
 
-         /// <summary>
 
-         /// 加载数据
 
-         /// </summary>
 
-         public void LoadData(string systemName)
 
-         {
 
-             InitialKeys();
 
-             if (_timer == null)
 
-             {
 
-                 _timer = new DispatcherTimer();
 
-                 _timer.Interval = TimeSpan.FromMilliseconds(200);
 
-                 _timer.Tick += Timer_Tick; ;
 
-             }
 
-             _timer.Start();
 
-         }
 
-         /// <summary>
 
-         /// 定时器执行
 
-         /// </summary>
 
-         /// <param name="sender"></param>
 
-         /// <param name="e"></param>
 
-         /// <exception cref="NotImplementedException"></exception>
 
-         private void Timer_Tick(object sender, EventArgs e)
 
-         {
 
-             if (_rtDataKeys.Count != 0)
 
-             {
 
-                 _rtDataValueDic = QueryDataClient.Instance.Service.PollData(_rtDataKeys);
 
-                 if (_rtDataValueDic != null)
 
-                 {
 
-                     CommonSafetyData = CommonFunction.GetValue<SafetyData>(_rtDataValueDic, $"Safety.{SAFETY_DATA}");
 
-                     IsLoaderRotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.Rotation.{IS_SWITCH_ON}");
 
-                     IsLoaderASwingOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleA.{IS_SWITCH_ON}");
 
-                     IsLoaderATiltOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltA.{IS_SWITCH_ON}");
 
-                     IsLoaderBSwingOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleB.{IS_SWITCH_ON}");
 
-                     IsLoaderBTiltOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltB.{IS_SWITCH_ON}");
 
-                     IsSrd1ArmOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Arm.{IS_SWITCH_ON}");
 
-                     IsSrd1RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Rotation.{IS_SWITCH_ON}");
 
-                     IsSrd2ArmOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Arm.{IS_SWITCH_ON}");
 
-                     IsSrd2RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Rotation.{IS_SWITCH_ON}");
 
-                     IsPuf1VerticalOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Vertical.{IS_SWITCH_ON}");
 
-                     IsPuf1RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Rotation.{IS_SWITCH_ON}");
 
-                     IsPuf1FlipOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Flip.{IS_SWITCH_ON}");
 
-                     IsPuf2VerticalOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Vertical.{IS_SWITCH_ON}");
 
-                     IsPuf2RotationOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Rotation.{IS_SWITCH_ON}");
 
-                     IsPuf2FlipOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Flip.{IS_SWITCH_ON}");
 
-                     IsLoaderGantryOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Gantry.{IS_SWITCH_ON}");
 
-                     IsLoaderElevatorOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Elevator.{IS_SWITCH_ON}");
 
-                     IsProcessGantryOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Gantry.{IS_SWITCH_ON}");
 
-                     IsProcessElevatorOn = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Elevator.{IS_SWITCH_ON}");
 
-                     //判断电机Moving状态
 
-                     JudgeMoving();
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 隐藏
 
-         /// </summary>
 
-         public void Hide()
 
-         {
 
-             if (_timer != null)
 
-             {
 
-                 _timer.Stop();
 
-             }
 
-         }
 
-         #region 指令Action
 
-         /// <summary>
 
-         /// Pause
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void PauseAction(object param)
 
-         {
 
-             throw new NotImplementedException();
 
-         }
 
-         /// <summary>
 
-         /// Resume
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void ResumeAction(object param)
 
-         {
 
-             throw new NotImplementedException();
 
-         }
 
-         /// <summary>
 
-         /// AllOn
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void AllOnAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.AllOnOperation");
 
-         }
 
-         /// <summary>
 
-         /// Reset
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void ResetAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.ResetOperation");
 
-         }
 
-         /// <summary>
 
-         /// LockLoaderDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void LockLoaderDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.LockLoaderDoors");
 
-         }
 
-         /// <summary>
 
-         /// UnlockLoaderDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void UnlockLoaderDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.UnlockLoaderDoors");
 
-         }
 
-         /// <summary>
 
-         /// LockBufferDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void LockBufferDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.LockBufferDoors");
 
-         }
 
-         /// <summary>
 
-         /// UnlockBufferDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void UnlockBufferDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.UnlockBufferDoors");
 
-         }
 
-         /// <summary>
 
-         /// LockProcessDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void LockProcessDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.LockProcessDoors");
 
-         }
 
-         /// <summary>
 
-         /// UnlockProcessDoors
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void UnlockProcessDoorsAction(object param)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("Safety.UnlockProcessDoors");
 
-         }
 
-         /// <summary>
 
-         /// 判断各个电机Moving状态
 
-         /// </summary>
 
-         /// <param name="param"></param>
 
-         private void JudgeMoving()
 
-         {
 
-             //检测LoaderTransporter是否运动
 
-             bool gantryMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Gantry.{IS_MOVING}");
 
-             bool elevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter2.Elevator.{IS_MOVING}");
 
-             if (gantryMoving || elevatorMoving)
 
-             {
 
-                 IsLoaderTransMoving = true;
 
-             }
 
-             else
 
-             {
 
-                 IsLoaderTransMoving = false;
 
-             }
 
-             //检测ProcessTransporter是否运动
 
-             gantryMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Gantry.{IS_MOVING}");
 
-             elevatorMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Transporter1.Elevator.{IS_MOVING}");
 
-             if (gantryMoving || elevatorMoving)
 
-             {
 
-                 IsProcessTransMoving = true;
 
-             }
 
-             else
 
-             {
 
-                 IsProcessTransMoving = false;
 
-             }
 
-             //检测Pufs是否运动
 
-             bool puf1VerticalMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Vertical.{IS_MOVING}");
 
-             bool puf1RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Rotation.{IS_MOVING}");
 
-             bool puf1FlipMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF1.Flip.{IS_MOVING}");
 
-             bool puf2VerticalMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Vertical.{IS_MOVING}");
 
-             bool puf2RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Rotation.{IS_MOVING}");
 
-             bool puf2FlipMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"PUF2.Flip.{IS_MOVING}");
 
-             if (puf1VerticalMoving || puf1RotationMoving || puf1FlipMoving || puf2VerticalMoving || puf2RotationMoving || puf2FlipMoving)
 
-             {
 
-                 IsPufsMoving = true;
 
-             }
 
-             else
 
-             {
 
-                 IsPufsMoving = false;
 
-             }
 
-             //检测Loader是否运动
 
-             bool loaderRotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.Rotation.{IS_MOVING}");
 
-             bool loaderSwingAMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleA.{IS_MOVING}");
 
-             bool loaderSwingBMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.ShuttleB.{IS_MOVING}");
 
-             bool loaderTiltAMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltA.{IS_MOVING}");
 
-             bool loaderTiltBMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"Loader1.TiltB.{IS_MOVING}");
 
-             if (loaderRotationMoving || loaderSwingAMoving || loaderSwingBMoving || loaderTiltAMoving || loaderTiltBMoving)
 
-             {
 
-                 IsLoaderMoving = true;
 
-             }
 
-             else
 
-             {
 
-                 IsLoaderMoving = false;
 
-             }
 
-             //检测SRDs是否运动
 
-             bool srd1RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Rotation.{IS_MOVING}");
 
-             bool srd1ArmMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD1.Arm.{IS_MOVING}");
 
-             bool srd2RotationMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Rotation.{IS_MOVING}");
 
-             bool srd2ArmMoving = CommonFunction.GetValue<bool>(_rtDataValueDic, $"SRD2.Arm.{IS_MOVING}");
 
-             if (srd1RotationMoving || srd1ArmMoving || srd2RotationMoving || srd2ArmMoving)
 
-             {
 
-                 IsSRDsMoving = true;
 
-             }
 
-             else
 
-             {
 
-                 IsSRDsMoving = false;
 
-             }
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |