using OpenSEMI.ClientBase;
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 PunkHPX8_Themes.UserControls
{
    /// 
    /// VPWCellUIControl.xaml 的交互逻辑
    /// 
    public partial class VPWCellUIControl : UserControl
    {
        public VPWCellUIControl()
        {
            InitializeComponent();
        }
        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
          "ModuleName", typeof(string), typeof(VPWCellUIControl),
          new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// 模块名称
        /// 
        public string ModuleName
        {
            get
            {
                return (string)this.GetValue(ModuleNameProperty);
            }
            set
            {
                this.SetValue(ModuleNameProperty, value);
            }
        }
        public static readonly DependencyProperty WaferInfoProperty = DependencyProperty.Register(
        "WaferInfo", typeof(WaferInfo), typeof(VPWCellUIControl));
        /// 
        /// WaferInfo
        /// 
        public WaferInfo WaferInfo
        {
            get
            {
                return (WaferInfo)this.GetValue(WaferInfoProperty);
            }
            set
            {
                this.SetValue(WaferInfoProperty, value);
            }
        }
        public static readonly DependencyProperty DripValveProerty = DependencyProperty.Register(
            "DripValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// DripValve
        /// 
        public bool DripValve
        {
            get
            {
                return (bool)this.GetValue(DripValveProerty);
            }
            set
            {
                this.SetValue(DripValveProerty, value);
            }
        }
        public static readonly DependencyProperty SmallValveProerty = DependencyProperty.Register(
            "SmallValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// SmallValve
        /// 
        public bool SmallValve
        {
            get
            {
                return (bool)this.GetValue(SmallValveProerty);
            }
            set
            {
                this.SetValue(SmallValveProerty, value);
            }
        }
        public static readonly DependencyProperty LargeValveProerty = DependencyProperty.Register(
            "LargeValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// LargeValve
        /// 
        public bool LargeValve
        {
            get
            {
                return (bool)this.GetValue(LargeValveProerty);
            }
            set
            {
                this.SetValue(LargeValveProerty, value);
            }
        }
        public static readonly DependencyProperty VentValveProerty = DependencyProperty.Register(
           "VentValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// VentValve
        /// 
        public bool VentValve
        {
            get
            {
                return (bool)this.GetValue(VentValveProerty);
            }
            set
            {
                this.SetValue(VentValveProerty, value);
            }
        }
        public static readonly DependencyProperty DrainValveProerty = DependencyProperty.Register(
           "DrainValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// DrainValve
        /// 
        public bool DrainValve
        {
            get
            {
                return (bool)this.GetValue(DrainValveProerty);
            }
            set
            {
                this.SetValue(DrainValveProerty, value);
            }
        }
        public static readonly DependencyProperty VacuumValveProerty = DependencyProperty.Register(
       "VacuumValve", typeof(bool), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// VacuumValve
        /// 
        public bool VacuumValve
        {
            get
            {
                return (bool)this.GetValue(VacuumValveProerty);
            }
            set
            {
                this.SetValue(VacuumValveProerty, value);
            }
        }
        public static readonly DependencyProperty DIWLoopDoProperty = DependencyProperty.Register(
        "DIWLoopDo", typeof(double), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// DIWLoopDo
        /// 
        public double DIWLoopDo
        {
            get
            {
                return (double)this.GetValue(DIWLoopDoProperty);
            }
            set
            {
                this.SetValue(DIWLoopDoProperty, value);
            }
        }
        public static readonly DependencyProperty DIWFlowProperty = DependencyProperty.Register(
       "DIWFlow", typeof(double), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// DIWFlow
        /// 
        public double DIWFlow
        {
            get
            {
                return (double)this.GetValue(DIWFlowProperty);
            }
            set
            {
                this.SetValue(DIWFlowProperty, value);
            }
        }
        public static readonly DependencyProperty CellVacuumProperty = DependencyProperty.Register(
        "CellVacuum", typeof(double), typeof(VPWCellUIControl), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// CellVacuum
        /// 
        public double CellVacuum
        {
            get
            {
                return (double)this.GetValue(CellVacuumProperty);
            }
            set
            {
                this.SetValue(CellVacuumProperty, value);
            }
        }
        private void OpenDripValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowDripOn");
        }
        private void CloseDripValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowDripOff");
        }
        private void OpenSmallValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowSmallOn");
        }
        private void CloseSmallValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowSmallOff");
        }
        private void OpenLargeValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowLargeOn");
        }
        private void CloseLargeValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.FlowLargeOff");
        }
        private void OpenVentValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VentValveOn");
        }
        private void CloseVentValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VentValveOff");
        }
        private void OpenDrainValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.DrainValveOn");
        }
        private void CloseDrainValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.DrainValveOff");
        }
        private void OpenCellVacuumValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VacuumValveOn");
        }
        private void CloseCellVacuumValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.VacuumValveOff");
        }
    }
}