123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967 |
- using Aitex.Core.Common;
- using Aitex.Core.UI.MVVM;
- using Aitex.Core.Util;
- using Aitex.Core.Utilities;
- using LiveCharts;
- using MECF.Framework.Common.Beckhoff.AxisProvider;
- using MECF.Framework.Common.Beckhoff.Station;
- using MECF.Framework.Common.CommonData.Loader;
- using MECF.Framework.Common.CommonData.PUF;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.OperationCenter;
- using MECF.Framework.Common.Utilities;
- using OpenSEMI.ClientBase;
- using CyberX8_MainPages.Unity;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Timers;
- using System.Windows;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Threading;
- using WaferInfo = OpenSEMI.ClientBase.WaferInfo;
- namespace CyberX8_MainPages.ViewModels
- {
- public class LoaderSetupViewModel : BindableBase
- {
- #region 常量
- private const string MOTION_DATA = "MotionData";
- private const string IS_SWITCH_ON = "IsSwitchOn";
- private const string CURRENT_STATION = "CurrentStation";
- private const string SIDE_DATA = "SideData";
- private const string COMMON_DATA = "CommonData";
- private const string MOTOR_POSITION = "MotorPosition";
- private const string CURRENT_OPERATION = "CurrentOperation";
- private const double LOADER_ROTATION_DIFFER = 90;
- #endregion
- #region 内部变量
- #region shuttleA
- /// <summary>
- /// shuttleA模块名称
- /// </summary>
- private string _shuttleAModuleName;
- /// <summary>
- /// shuttleA运动数据
- /// </summary>
- private CommandMotionData _shuttleAMotorData;
- /// <summary>
- /// shuttleA当前位置
- /// </summary>
- private string _shuttleACurrentStation;
- #endregion
- #region TiltA
- /// <summary>
- /// tiltA模块名称
- /// </summary>
- private string _tiltAModuleName;
- /// <summary>
- /// tiltA运动数据
- /// </summary>
- private CommandMotionData _tiltAMotorData;
- /// <summary>
- /// tiltA当前位置
- /// </summary>
- private string _tiltACurrentStation;
- /// <summary>
- /// Loader1 TiltA实际位置数据
- /// </summary>
- private double _loader1TiltAMotorPosition;
-
- #endregion
- #region CRSA
- /// <summary>
- /// crsA模块名称
- /// </summary>
- private string _crsAModuleName;
- /// <summary>
- /// CRSA运动数据
- /// </summary>
- private CommandMotionData _crsAMotorData;
- /// <summary>
- /// crsA当前位置
- /// </summary>
- private string _crsACurrentStation;
- #endregion
- #region Rotation
- /// <summary>
- /// rotation模块名称
- /// </summary>
- private string _rotationModuleName;
- /// <summary>
- /// rotation运动数据
- /// </summary>
- private CommandMotionData _rotationMotorData;
- /// <summary>
- /// rotation当前位置
- /// </summary>
- private string _rotationCurrentStation;
- /// <summary>
- /// Loader1 Rotation UI对应位置
- /// </summary>
- private double _loader1RotationPosition;
- /// <summary>
- /// Loader1 Rotation实际位置数据
- /// </summary>
- private double _loader1RotationMotorPosition;
-
- #endregion
- #region shuttleB
- /// <summary>
- /// shuttleB模块名称
- /// </summary>
- private string _shuttleBModuleName;
- /// <summary>
- /// shuttleB运动数据
- /// </summary>
- private CommandMotionData _shuttleBMotorData;
- /// <summary>
- /// shuttleB当前位置
- /// </summary>
- private string _shuttleBCurrentStation;
- #endregion
- #region TiltB
- /// <summary>
- /// tiltB模块名称
- /// </summary>
- private string _tiltBModuleName;
- /// <summary>
- /// tiltB运动数据
- /// </summary>
- private CommandMotionData _tiltBMotorData;
- /// <summary>
- /// tiltB当前位置
- /// </summary>
- private string _tiltBCurrentStation;
- /// <summary>
- /// Loader1 TiltB实际位置数据
- /// </summary>
- private double _loader1TiltBMotorPosition;
- #endregion
- #region CRSB
- /// <summary>
- /// crsB模块名称
- /// </summary>
- private string _crsBModuleName;
- /// <summary>
- /// crsB运动数据
- /// </summary>
- private CommandMotionData _crsBMotorData;
- /// <summary>
- /// crsB当前位置
- /// </summary>
- private string _crsBCurrentStation;
- #endregion
- #region SideA
- /// <summary>
- /// Side A模块名称
- /// </summary>
- private string _sideAModuleName;
- /// <summary>
- /// Side A数据
- /// </summary>
- private LoaderSideData _sideAData;
- #endregion
- #region SideB
- /// <summary>
- /// Side B模块名称
- /// </summary>
- private string _sideBModuleName;
- /// <summary>
- /// Side B数据
- /// </summary>
- private LoaderSideData _sideBData;
- #endregion
- #region Common
- /// <summary>
- /// Common模块名称
- /// </summary>
- private string _commonModuleName;
- /// <summary>
- /// 公共模块数据
- /// </summary>
- public LoaderCommonData _commonData;
- #endregion
- #region 系统数据
- /// <summary>
- /// Wafer尺寸
- /// </summary>
- private int _waferSize = 0;
- /// <summary>
- /// 查询后台数据集合
- /// </summary>
- private List<string> _rtDataKeys = new List<string>();
- /// <summary>
- /// Busy状态
- /// </summary>
- private bool _isBusy;
- /// <summary>
- /// CRSH状态
- /// </summary>
- private bool _isCRSH;
- /// <summary>
- /// label系列
- /// </summary>
- private ChartValues<string> _labelSeries;
- /// <summary>
- /// Value系列
- /// </summary>
- private ChartValues<double> _valueSeries;
- /// <summary>
- /// 定时器
- /// </summary>
- DispatcherTimer _timer;
- /// <summary>
- /// rt查询key数值字典
- /// </summary>
- private Dictionary<string, object> _rtDataValueDic = new Dictionary<string, object>();
- /// <summary>
- /// PlateOutCamera Enable
- /// </summary>
- private Visibility _plateOutCameraVisibility = Visibility.Hidden;
- /// <summary>
- /// Loader的sideA开启状态
- /// </summary>
- private bool m_loaderWaferVisibleA = false;
- /// <summary>
- /// Loader的sideB开启状态
- /// </summary>
- private bool m_loaderWaferVisibleB = false;
- /// <summary>
- /// WaferA信息
- /// </summary>
- private WaferInfo m_loaderWaferA;
- /// <summary>
- /// WaferB信息
- /// </summary>
- private WaferInfo m_loaderWaferB;
- /// <summary>
- /// Loader模块信息
- /// </summary>
- private ModuleInfo _loaderModuleInfo;
- /// <summary>
- /// Loader是否安装
- /// </summary>
- private bool _loaderInstalled;
- /// <summary>
- /// 当前SideA操作
- /// </summary>
- private string _currentSideAOperation;
- /// <summary>
- /// 当前SideA操作
- /// </summary>
- private string _currentSideBOperation;
- #endregion
- #endregion
- #region 属性
- #region 系统数据
- public string Module { get; set; }
- /// <summary>
- /// 尺寸大小
- /// </summary>
- public int WaferSize { get { return _waferSize; } set { SetProperty(ref _waferSize, value); } }
- /// <summary>
- /// Busy状态
- /// </summary>
- public bool IsBusy { get { return _isBusy; } set { SetProperty(ref _isBusy, value); } }
- /// <summary>
- /// CRSH状态
- /// </summary>
- public bool IsCRSH { get { return _isCRSH; } set { SetProperty(ref _isCRSH, value); } }
- /// <summary>
- /// Label系列
- /// </summary>
- public ChartValues<string> LabelSeries { get { return _labelSeries; } set { SetProperty(ref _labelSeries, value); } }
- /// <summary>
- /// Value系列
- /// </summary>
- public ChartValues<double> ValueSeries { get { return _valueSeries; } set { SetProperty(ref _valueSeries, value); } }
- /// <summary>
- /// Loader的sideA开启状态
- /// </summary>
- public bool LoaderWaferVisibleA
- {
- get { return m_loaderWaferVisibleA; }
- set { SetProperty(ref m_loaderWaferVisibleA, value); }
- }
- /// <summary>
- /// Loader的sideB开启状态
- /// </summary>
- public bool LoaderWaferVisibleB
- {
- get { return m_loaderWaferVisibleB; }
- set { SetProperty(ref m_loaderWaferVisibleB, value); }
- }
- /// <summary>
- /// WaferA信息
- /// </summary>
- public WaferInfo LoaderWaferA
- {
- get { return m_loaderWaferA; }
- set { SetProperty(ref m_loaderWaferA, value); }
- }
- /// <summary>
- /// WaferB信息
- /// </summary>
- public WaferInfo LoaderWaferB
- {
- get { return m_loaderWaferB; }
- set { SetProperty(ref m_loaderWaferB, value); }
- }
- /// <summary>
- /// Loader模块信息
- /// </summary>
- public ModuleInfo LoaderModuleInfo
- {
- get { return _loaderModuleInfo; }
- set { SetProperty(ref _loaderModuleInfo, value); }
- }
- /// <summary>
- /// Loader是否安装
- /// </summary>
- public bool LoaderIsInstalled
- {
- get { return _loaderInstalled; }
- set { SetProperty(ref _loaderInstalled, value); }
- }
- /// <summary>
- /// 当前SideA操作
- /// </summary>
- public string CurrentSideAOperation
- {
- get { return _currentSideAOperation; }
- set { SetProperty(ref _currentSideAOperation, value); }
- }
- /// <summary>
- /// 当前SideB操作
- /// </summary>
- public string CurrentSideBOperation
- {
- get { return _currentSideBOperation; }
- set { SetProperty(ref _currentSideBOperation, value); }
- }
- #endregion
- #region shuttleA
- /// <summary>
- /// shuttleA名称
- /// </summary>
- public string ShuttleAModuleName
- {
- get { return _shuttleAModuleName; }
- set { SetProperty(ref _shuttleAModuleName, value); }
- }
- /// <summary>
- /// shuttleA运动数据
- /// </summary>
- public CommandMotionData ShuttleAMotionData
- {
- get { return _shuttleAMotorData; }
- set { SetProperty(ref _shuttleAMotorData, value); }
- }
- /// <summary>
- /// shuttleA当前位置
- /// </summary>
- public string ShuttleACurrentStation
- {
- get { return _shuttleACurrentStation; }
- set { SetProperty(ref _shuttleACurrentStation, value); }
- }
- #endregion
- #region TiltA
- /// <summary>
- /// TiltA名称
- /// </summary>
- public string TiltAModuleName
- {
- get { return _tiltAModuleName; }
- set { SetProperty(ref _tiltAModuleName, value); }
- }
- /// <summary>
- /// TiltA运动数据
- /// </summary>
- public CommandMotionData TiltAMotionData
- {
- get { return _tiltAMotorData; }
- set { SetProperty(ref _tiltAMotorData, value); }
- }
- /// <summary>
- /// TiltA当前位置
- /// </summary>
- public string TiltACurrentStation
- {
- get { return _tiltACurrentStation; }
- set { SetProperty(ref _tiltACurrentStation, value); }
- }
- /// <summary>
- /// Loader1 TiltA实际位置数据
- /// </summary>
- public double Loader1TiltAMotorPosition
- {
- get { return _loader1TiltAMotorPosition; }
- set { SetProperty(ref _loader1TiltAMotorPosition, value); }
- }
- #endregion
- #region CRSA
- /// <summary>
- /// CRSA名称
- /// </summary>
- public string CRSAModuleName
- {
- get { return _crsAModuleName; }
- set { SetProperty(ref _crsAModuleName, value); }
- }
- /// <summary>
- /// CRSA运动数据
- /// </summary>
- public CommandMotionData CRSAMotionData
- {
- get { return _crsAMotorData; }
- set { SetProperty(ref _crsAMotorData, value); }
- }
- /// <summary>
- /// CRSA当前位置
- /// </summary>
- public string CRSACurrentStation
- {
- get { return _crsACurrentStation; }
- set { SetProperty(ref _crsACurrentStation, value); }
- }
- #endregion
- #region Rotation
- /// <summary>
- /// Rotation名称
- /// </summary>
- public string RotationModuleName
- {
- get { return _rotationModuleName; }
- set { SetProperty(ref _rotationModuleName, value); }
- }
- /// <summary>
- /// Rotation运动数据
- /// </summary>
- public CommandMotionData RotationMotionData
- {
- get { return _rotationMotorData; }
- set { SetProperty(ref _rotationMotorData, value); }
- }
- /// <summary>
- /// Loader1 Rotation UI对应位置
- /// </summary>
- public double Loader1RotationPosition
- {
- get { return _loader1RotationPosition; }
- set { SetProperty(ref _loader1RotationPosition, value); }
- }
- /// <summary>
- /// Rotation当前位置
- /// </summary>
- public string RotationCurrentStation
- {
- get { return _rotationCurrentStation; }
- set { SetProperty(ref _rotationCurrentStation, value); }
- }
- /// <summary>
- /// Loader1 Rotation实际位置数据
- /// </summary>
- public double Loader1RotationMotorPosition
- {
- get { return _loader1RotationMotorPosition; }
- set { SetProperty(ref _loader1RotationMotorPosition, value); }
- }
-
-
- #endregion
- #region shuttleB
- /// <summary>
- /// shuttleB名称
- /// </summary>
- public string ShuttleBModuleName
- {
- get { return _shuttleBModuleName; }
- set { SetProperty(ref _shuttleBModuleName, value); }
- }
- /// <summary>
- /// shuttleB运动数据
- /// </summary>
- public CommandMotionData ShuttleBMotionData
- {
- get { return _shuttleBMotorData; }
- set { SetProperty(ref _shuttleBMotorData, value); }
- }
- /// <summary>
- /// shuttleB当前位置
- /// </summary>
- public string ShuttleBCurrentStation
- {
- get { return _shuttleBCurrentStation; }
- set { SetProperty(ref _shuttleBCurrentStation, value); }
- }
- #endregion
- #region TiltB
- /// <summary>
- /// TiltB名称
- /// </summary>
- public string TiltBModuleName
- {
- get { return _tiltBModuleName; }
- set { SetProperty(ref _tiltBModuleName, value); }
- }
- /// <summary>
- /// TiltB运动数据
- /// </summary>
- public CommandMotionData TiltBMotionData
- {
- get { return _tiltBMotorData; }
- set { SetProperty(ref _tiltBMotorData, value); }
- }
- /// <summary>
- /// TiltB当前位置
- /// </summary>
- public string TiltBCurrentStation
- {
- get { return _tiltBCurrentStation; }
- set { SetProperty(ref _tiltBCurrentStation, value); }
- }
- /// <summary>
- /// Loader1 TiltB实际位置数据
- /// </summary>
- public double Loader1TiltBMotorPosition
- {
- get { return _loader1TiltBMotorPosition; }
- set { SetProperty(ref _loader1TiltBMotorPosition, value); }
- }
- #endregion
- #region CRSB
- /// <summary>
- /// CRSB名称
- /// </summary>
- public string CRSBModuleName
- {
- get { return _crsBModuleName; }
- set { SetProperty(ref _crsBModuleName, value); }
- }
- /// <summary>
- /// CRSB运动数据
- /// </summary>
- public CommandMotionData CRSBMotionData
- {
- get { return _crsBMotorData; }
- set { SetProperty(ref _crsBMotorData, value); }
- }
- /// <summary>
- /// CRSB当前位置
- /// </summary>
- public string CRSBCurrentStation
- {
- get { return _crsBCurrentStation; }
- set { SetProperty(ref _crsBCurrentStation, value); }
- }
- #endregion
- #region Side A
- /// <summary>
- /// Side A模块名称
- /// </summary>
- public string SideAModuleName
- {
- get { return _sideAModuleName; }
- set { SetProperty(ref _sideAModuleName, value); }
- }
- /// <summary>
- /// Side A数据
- /// </summary>
- public LoaderSideData SideAData
- {
- get { return _sideAData; }
- set { SetProperty(ref _sideAData, value); }
- }
- #endregion
- #region Side B
- /// <summary>
- /// Side B模块名称
- /// </summary>
- public string SideBModuleName
- {
- get { return _sideBModuleName; }
- set { SetProperty(ref _sideBModuleName, value); }
- }
- /// <summary>
- /// Side B数据
- /// </summary>
- public LoaderSideData SideBData
- {
- get { return _sideBData; }
- set { SetProperty(ref _sideBData, value); }
- }
- #endregion
- #region Common
- /// <summary>
- /// Common模块名称
- /// </summary>
- public string CommonModuleName
- {
- get { return _commonModuleName; }
- set { SetProperty(ref _commonModuleName, value); }
- }
- /// <summary>
- /// 公共数据
- /// </summary>
- public LoaderCommonData CommonData
- {
- get { return _commonData; }
- set { SetProperty(ref _commonData, value);}
- }
- /// <summary>
- /// PlateOut Camera Enable
- /// </summary>
- public Visibility PlateOutCameraVisibility
- {
- get { return _plateOutCameraVisibility; }
- set { SetProperty(ref _plateOutCameraVisibility, value);}
- }
- #endregion
- #endregion
- #region 指令
- [IgnorePropertyChange]
- public ICommand SideALoadCommand
- {
- get;
- private set;
- }
- [IgnorePropertyChange]
- public ICommand SideAUnloadCommand
- {
- get;
- private set;
- }
- [IgnorePropertyChange]
- public ICommand SideAInstallCRSCommand
- {
- get;private set;
- }
- [IgnorePropertyChange]
- public ICommand SideBLoadCommand
- {
- get;
- private set;
- }
- [IgnorePropertyChange]
- public ICommand SideBUnloadCommand
- {
- get;
- private set;
- }
- [IgnorePropertyChange]
- public ICommand SideBInstallCRSCommand
- {
- get; private set;
- }
- #endregion
- /// <summary>
- /// 构造函数
- /// </summary>
- public LoaderSetupViewModel()
- {
- SideALoadCommand=new DelegateCommand<object>(SideALoadAction);
- SideAUnloadCommand = new DelegateCommand<object>(SideAUnloadAction);
- SideAInstallCRSCommand = new DelegateCommand<object>(SideAInstallCRSAction);
- SideBLoadCommand = new DelegateCommand<object>(SideBLoadAction);
- SideBUnloadCommand = new DelegateCommand<object>(SideBUnloadAction);
- SideBInstallCRSCommand = new DelegateCommand<object>(SideBInstallCRSAction);
- }
- /// <summary>
- /// 加载数据
- /// </summary>
- public void LoadData(string systemName)
- {
- Module = systemName;
- ShuttleAModuleName = $"{Module}.ShuttleA";
- TiltAModuleName = $"{Module}.TiltA";
- CRSAModuleName = $"{Module}.LSA";
- RotationModuleName = $"{Module}.Rotation";
- ShuttleBModuleName = $"{Module}.ShuttleB";
- TiltBModuleName = $"{Module}.TiltB";
- CRSBModuleName = $"{Module}.LSB";
- SideAModuleName = $"{Module}.SideA";
- SideBModuleName = $"{Module}.SideB";
- CommonModuleName = $"{Module}.Common";
- bool plateOutCameraEnable= (bool)QueryDataClient.Instance.Service.GetConfig($"{ModuleName.Loader1}.PlateOutCameraEnable");
- if(plateOutCameraEnable)
- {
- PlateOutCameraVisibility = Visibility.Visible;
- }
- else
- {
- PlateOutCameraVisibility = Visibility.Hidden;
- }
- //LoaderIsinstalled
- Dictionary<string, object> allModulesDictionary = QueryDataClient.Instance.Service.PollData(new List<string>() { "System.InstalledModules" });
- if (allModulesDictionary != null)
- {
- List<string> allModules = CommonFunction.GetValue<List<string>>(allModulesDictionary, "System.InstalledModules");
- LoaderIsInstalled = allModules.Contains(ModuleName.Loader1.ToString());
- }
- WaferSize = (int)QueryDataClient.Instance.Service.GetConfig("System.WaferSize");
- AddDataKeys();
- ValueSeries = new ChartValues<double>();
- LabelSeries = new ChartValues<string>();
- if (_timer == null)
- {
- _timer = new DispatcherTimer();
- _timer.Interval = TimeSpan.FromMilliseconds(100);
- _timer.Tick += Timer_Tick;
- }
- _timer.Start();
- }
- /// <summary>
- /// 定时器
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void Timer_Tick(object sender, EventArgs e)
- {
- LoaderModuleInfo = ModuleManager.ModuleInfos["Loader1"];
- if (LoaderIsInstalled && LoaderModuleInfo != null)
- {
- if (LoaderModuleInfo.WaferManager.Wafers.Count != 0)
- {
- LoaderWaferA = LoaderModuleInfo.WaferManager.Wafers[0];
- }
- if (LoaderModuleInfo.WaferManager.Wafers.Count != 0)
- {
- LoaderWaferB = LoaderModuleInfo.WaferManager.Wafers[1];
- }
- }
- if (_rtDataKeys.Count != 0)
- {
- _rtDataValueDic = QueryDataClient.Instance.Service.PollData(_rtDataKeys);
- if (_rtDataValueDic != null)
- {
- //SRD Wafer信息
- if (ModuleManager.ModuleInfos[$"{Module}"].WaferManager.Wafers.Count != 0)
- {
- LoaderWaferA = ModuleManager.ModuleInfos[$"{Module}"].WaferManager.Wafers[0];
- LoaderWaferB = ModuleManager.ModuleInfos[$"{Module}"].WaferManager.Wafers[1];
- }
- ShuttleAMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{ShuttleAModuleName}.{MOTION_DATA}");
- ShuttleACurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{ShuttleAModuleName}.{CURRENT_STATION}"), ShuttleAModuleName);
- ShuttleBMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{ShuttleBModuleName}.{MOTION_DATA}");
- ShuttleBCurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{ShuttleBModuleName}.{CURRENT_STATION}"), ShuttleBModuleName);
- TiltAMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{TiltAModuleName}.{MOTION_DATA}");
- TiltACurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{TiltAModuleName}.{CURRENT_STATION}"), TiltAModuleName);
- TiltBMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{TiltBModuleName}.{MOTION_DATA}");
- TiltBCurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{TiltBModuleName}.{CURRENT_STATION}"), TiltBModuleName);
- CRSAMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{CRSAModuleName}.{MOTION_DATA}");
- CRSACurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{CRSAModuleName}.{CURRENT_STATION}"), CRSAModuleName);
- CRSBMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{CRSBModuleName}.{MOTION_DATA}");
- CRSBCurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{CRSBModuleName}.{CURRENT_STATION}"), CRSBModuleName);
- RotationMotionData = CommonFunction.GetValue<CommandMotionData>(_rtDataValueDic, $"{RotationModuleName}.{MOTION_DATA}");
- RotationCurrentStation = CommonFunction.GetCurrentStationLastContent(CommonFunction.GetValue<string>(_rtDataValueDic, $"{RotationModuleName}.{CURRENT_STATION}"), RotationModuleName);
- SideAData = CommonFunction.GetValue<LoaderSideData>(_rtDataValueDic, $"{SideAModuleName}.{SIDE_DATA}");
- SideBData = CommonFunction.GetValue<LoaderSideData>(_rtDataValueDic, $"{SideBModuleName}.{SIDE_DATA}");
- CommonData = CommonFunction.GetValue<LoaderCommonData>(_rtDataValueDic, $"{Module}.{COMMON_DATA}");
- if (CommonData!=null&&CommonData.FlowValues != null && CommonData.FlowValues.Count != 0)
- {
- if (ValueSeries.Count < CommonData.FlowValues.Count)
- {
- InitialValueSeries(CommonData.FlowValues);
- }
- }
- else
- {
- ValueSeries.Clear();
- LabelSeries.Clear();
- }
- Loader1TiltAMotorPosition = TiltBMotionData.MotorPosition;
- Loader1TiltBMotorPosition = TiltAMotionData.MotorPosition;
- Loader1RotationMotorPosition = RotationMotionData.MotorPosition;
- //计Loader Rotation UI位置
- Loader1RotationPosition = -Loader1RotationMotorPosition - LOADER_ROTATION_DIFFER;
- //判断Loader1的TiltA水平状态
- if (TiltACurrentStation == "HORI")
- {
- LoaderWaferVisibleA = true;
- }
- else if (TiltACurrentStation == "VERT")
- {
- LoaderWaferVisibleA = false;
- }
- //判断Loader1的TiltB水平状态
- if (TiltBCurrentStation == "HORI")
- {
- LoaderWaferVisibleB = true;
- }
- else if (TiltBCurrentStation == "VERT")
- {
- LoaderWaferVisibleB = false;
- }
- CurrentSideAOperation = CommonFunction.GetValue<string>(_rtDataValueDic, $"{SideAModuleName}.{CURRENT_OPERATION}");
- CurrentSideBOperation = CommonFunction.GetValue<string>(_rtDataValueDic, $"{SideBModuleName}.{CURRENT_OPERATION}");
- }
- }
- }
- /// <summary>
- /// 隐藏
- /// </summary>
- public void Hide()
- {
- if (_timer != null)
- {
- _timer.Stop();
- }
- }
- /// <summary>
- /// 初始化查询数据集合
- /// </summary>
- private void AddDataKeys()
- {
- _rtDataKeys.Clear();
- _rtDataKeys.Add($"{ShuttleAModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{ShuttleAModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{ShuttleAModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{ShuttleBModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{ShuttleBModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{ShuttleBModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{TiltAModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{TiltAModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{TiltAModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{TiltBModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{TiltBModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{TiltBModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{CRSAModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{CRSAModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{CRSAModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{CRSBModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{CRSBModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{CRSBModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{RotationModuleName}.{MOTION_DATA}");
- _rtDataKeys.Add($"{RotationModuleName}.{IS_SWITCH_ON}");
- _rtDataKeys.Add($"{RotationModuleName}.{CURRENT_STATION}");
- _rtDataKeys.Add($"{SideAModuleName}.{SIDE_DATA}");
- _rtDataKeys.Add($"{SideBModuleName}.{SIDE_DATA}");
- _rtDataKeys.Add($"{Module}.{COMMON_DATA}");
- _rtDataKeys.Add($"{SideAModuleName}.{CURRENT_OPERATION}");
- _rtDataKeys.Add($"{SideBModuleName}.{CURRENT_OPERATION}");
- }
- private void InitialValueSeries(List<LoaderFlowLotTrackData> datas)
- {
- foreach(LoaderFlowLotTrackData item in datas)
- {
- ValueSeries.Add(item.FlowValue);
- LabelSeries.Add(item.Time);
- }
- }
- #region 指令Action
- /// <summary>
- /// Load Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideALoadAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideA.Load");
- }
- /// <summary>
- /// Unload Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideAUnloadAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideA.Unload");
- }
- /// <summary>
- /// Install CRS Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideAInstallCRSAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideA.InstallCRS");
- }
- /// <summary>
- /// SideB Load Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideBLoadAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideB.Load");
- }
- /// <summary>
- /// SideB Unload Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideBUnloadAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideB.Unload");
- }
- /// <summary>
- /// SideB Install CRS Action
- /// </summary>
- /// <param name="obj"></param>
- private void SideBInstallCRSAction(object obj)
- {
- InvokeClient.Instance.Service.DoOperation($"{Module}.SideB.InstallCRS");
- }
- #endregion
- }
- }
|