| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 | using MECF.Framework.Common.CommonData.SRD;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.OperationCenter;using MECF.Framework.Common.RecipeCenter;using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace CyberX8_Themes.UserControls{    /// <summary>    /// SRDSideControl.xaml 的交互逻辑    /// </summary>    public partial class SRDSideControl : UserControl    {        public SRDSideControl()        {            InitializeComponent();        }        #region 属性        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(           "ModuleName", typeof(string), typeof(SRDSideControl),           new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));             /// <summary>        /// 模块名称        /// </summary>        public string ModuleName        {            get            {                return (string)this.GetValue(ModuleNameProperty);            }            set            {                this.SetValue(ModuleNameProperty, value);            }        }        public static readonly DependencyProperty CommonDataProperty = DependencyProperty.Register(          "CommonData", typeof(SrdCommonData), typeof(SRDSideControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));        /// <summary>        /// CommonData        /// </summary>        public SrdCommonData CommonData        {            get            {                return (SrdCommonData)this.GetValue(CommonDataProperty);            }            set            {                this.SetValue(CommonDataProperty, value);            }        }               public static readonly DependencyProperty LoaderDiEnableProperty = DependencyProperty.Register(           "LoaderDiEnable", typeof(bool), typeof(SRDSideControl),           new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));        /// <summary>        /// Loader DI        /// </summary>        public bool LoaderDiEnable        {            get            {                return (bool)this.GetValue(LoaderDiEnableProperty);            }            set            {                this.SetValue(LoaderDiEnableProperty, value);            }        }        public static readonly DependencyProperty SelectedRecipeNodeProperty = DependencyProperty.Register(            "SelectedRecipeNode", typeof(RecipeNode), typeof(SRDSideControl),            new FrameworkPropertyMetadata(new RecipeNode(), FrameworkPropertyMetadataOptions.AffectsRender));        /// <summary>        /// 当前选中recipe节点        /// </summary>        public RecipeNode SelectedRecipeNode        {            get            {                return (RecipeNode)this.GetValue(SelectedRecipeNodeProperty);            }            set            {                this.SetValue(SelectedRecipeNodeProperty, value);            }        }        public static readonly DependencyProperty CurrentOperationModeProperty = DependencyProperty.Register(           "CurrentOperationMode", typeof(string), typeof(SRDSideControl));        /// <summary>        /// CurrentOperationMode        /// </summary>        public string CurrentOperationMode        {            get            {                return (string)this.GetValue(CurrentOperationModeProperty);            }            set            {                this.SetValue(CurrentOperationModeProperty, value);            }        }        public static readonly DependencyProperty WaferIDProperty = DependencyProperty.Register(           "WaferID", typeof(string), typeof(SRDSideControl));        /// <summary>        /// WaferID        /// </summary>        public string WaferID        {            get            {                return (string)this.GetValue(WaferIDProperty);            }            set            {                this.SetValue(WaferIDProperty, value);            }        }        public static readonly DependencyProperty IsPresenceTestingProperty = DependencyProperty.Register(           "IsPresenceTesting", typeof(bool), typeof(SRDSideControl),           new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));        /// <summary>        /// Loader DI        /// </summary>        public bool IsPresenceTesting        {            get            {                return (bool)this.GetValue(IsPresenceTestingProperty);            }            set            {                this.SetValue(IsPresenceTestingProperty, value);            }        }        #endregion        private void ExhaustOnOff_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.ExhaustOff");        }        private void ExhaustOnOn_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.ExhaustOn");        }        private void ChuckVacuumOff_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.ChuckVacuumOff");        }        private void ChuckVacuumOn_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.ChuckVacuumOn");        }        private void LoaderDIOff_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"System.Facilities.LoaderDiDisable");        }        private void LoaderDIOn_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"System.Facilities.LoaderDiEnable");        }        private void WaterBelowOff_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.WaterBelowOff");        }        private void WaterBelowOn_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.WaterBelowOn");        }        private void WaterAboveOff_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.WaterAboveOff");        }        private void WaterAboveOn_Click(object sender, RoutedEventArgs e)        {            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Common.WaterAboveOn");        }        private void PresenceTestStart_Click(object sender, RoutedEventArgs e)        {            if ("Manual".Equals(CurrentOperationMode))            {                if (SelectedRecipeNode == null)                {                    MessageBox.Show("Please Select Recipe first!", $"Current Recipe is Null", MessageBoxButton.OK, MessageBoxImage.Error);                }                else                {                                        InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PresenceTestStart", SelectedRecipeNode.RecipeFullFileName);                                                                        }            }            else            {                MessageBox.Show("Current OperationMode Can't Perform This Action", $"Current OperationMode is {CurrentOperationMode}", MessageBoxButton.OK, MessageBoxImage.Error);            }                                }        private void PresenceTestStop_Click(object sender, RoutedEventArgs e)        {            if ("Manual".Equals(CurrentOperationMode))            {                InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort");            }            else            {                MessageBox.Show("Current OperationMode Can't Perform This Action", $"Current OperationMode is {CurrentOperationMode}", MessageBoxButton.OK, MessageBoxImage.Error);            }        }    }}
 |