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);
}
}
}
}