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 { /// /// SRDSideControl.xaml 的交互逻辑 /// 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)); /// /// 模块名称 /// 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)); /// /// CommonData /// 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)); /// /// Loader DI /// 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)); /// /// 当前选中recipe节点 /// 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)); /// /// CurrentOperationMode /// 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)); /// /// WaferID /// 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)); /// /// Loader DI /// 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); } } } }