using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.OperationCenter;
using System;
using System.Collections.Generic;
using System.Linq;
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>
    /// LoaderCommonControl.xaml 的交互逻辑
    /// </summary>
    public partial class LoaderCommonControl : UserControl
    {
        #region 属性
        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register("ModuleName", typeof(string), typeof(LoaderCommonControl),
          new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// 模块名称
        /// </summary>
        public string ModuleName
        {
            get
            {
                return (string)this.GetValue(ModuleNameProperty);
            }
            set
            {
                this.SetValue(ModuleNameProperty, value);
            }
        }
        public static readonly DependencyProperty WaferHolderPresentProperty = DependencyProperty.Register(
       "WaferHolderPresent", typeof(bool), typeof(LoaderCommonControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// WaferHolderPresent
        /// </summary>
        public bool WaferHolderPresent
        {
            get
            {
                return (bool)this.GetValue(WaferHolderPresentProperty);
            }
            set
            {
                this.SetValue(WaferHolderPresentProperty, value);
            }
        }
        public static readonly DependencyProperty WaferHolderClampProperty = DependencyProperty.Register(
    "WaferHolderClamp", typeof(bool), typeof(LoaderCommonControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// WaferHolderClamp
        /// </summary>
        public bool WaferHolderClamp
        {
            get
            {
                return (bool)this.GetValue(WaferHolderClampProperty);
            }
            set
            {
                this.SetValue(WaferHolderClampProperty, value);
            }
        }
        public static readonly DependencyProperty WaferHolderSideAClampProperty = DependencyProperty.Register(
    "WaferHolderSideAClamp", typeof(bool), typeof(LoaderCommonControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// WaferHolderSideAClamp
        /// </summary>
        public bool WaferHolderSideAClamp
        {
            get
            {
                return (bool)this.GetValue(WaferHolderSideAClampProperty);
            }
            set
            {
                this.SetValue(WaferHolderSideAClampProperty, value);
            }
        }
        public static readonly DependencyProperty WaferHolderSideBClampProperty = DependencyProperty.Register(
    "WaferHolderSideBClamp", typeof(bool), typeof(LoaderCommonControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// WaferHolderSideBClamp
        /// </summary>
        public bool WaferHolderSideBClamp
        {
            get
            {
                return (bool)this.GetValue(WaferHolderSideBClampProperty);
            }
            set
            {
                this.SetValue(WaferHolderSideBClampProperty, value);
            }
        }
        public static readonly DependencyProperty DripTrayFluidClampProperty = DependencyProperty.Register(
    "DripTrayFluidClamp", typeof(bool), typeof(LoaderCommonControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// <summary>
        /// DripTrayFluidClamp
        /// </summary>
        public bool DripTrayFluidClamp
        {
            get
            {
                return (bool)this.GetValue(DripTrayFluidClampProperty);
            }
            set
            {
                this.SetValue(DripTrayFluidClampProperty, value);
            }
        }
        #endregion
        /// <summary>
        /// 构造函数
        /// </summary>
        public LoaderCommonControl()
        {
            InitializeComponent();
        }

        #region 按钮
        private void WaferHolderClampOn_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderClampOn");
        }

        private void WaferHolderClampOff_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderClampOff");
        }

        private void WHSideClampOn_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderSideClampOn");
        }

        private void WHSideClampOff_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderSideClampOff");
        }

        private void HomeAll_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.HomeAll");
        }

        private void ClearError_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"Loader1.ClearError");
        }

        private void SwitchOnAll_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SwitchOnAll");
        }

        private void SwitchOffAll_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SwitchOffAll");
        }


        private void Abort_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"Loader1.Abort");
        }
        #endregion

    }
}