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
{
    /// 
    /// VPWMainStateControl.xaml 的交互逻辑
    /// 
    public partial class VPWMainStateControl : UserControl
    {
        public VPWMainStateControl()
        {
            InitializeComponent();
        }
        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
          "ModuleName", typeof(string), typeof(VPWMainStateControl),
          new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// 模块名称
        /// 
        public string ModuleName
        {
            get
            {
                return (string)this.GetValue(ModuleNameProperty);
            }
            set
            {
                this.SetValue(ModuleNameProperty, value);
            }
        }
        public static readonly DependencyProperty MachineStateProperty = DependencyProperty.Register(
                "MachineState", typeof(string), typeof(VPWMainStateControl),
                    new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// MachineState
        /// 
        public string MachineState
        {
            get
            {
                return (string)this.GetValue(MachineStateProperty);
            }
            set
            {
                this.SetValue(MachineStateProperty, value);
            }
        }
        public static readonly DependencyProperty FluidInContainmentProperty = DependencyProperty.Register(
        "FluidInContainment", typeof(bool), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// FluidInContainment
        /// 
        public bool FluidInContainment
        {
            get
            {
                return (bool)this.GetValue(FluidInContainmentProperty);
            }
            set
            {
                this.SetValue(FluidInContainmentProperty, value);
            }
        }
        public static readonly DependencyProperty WaterPressureProperty = DependencyProperty.Register(
            "WaterPressure", typeof(double), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// WaterPressure
        /// 
        public double WaterPressure
        {
            get
            {
                return (double)this.GetValue(WaterPressureProperty);
            }
            set
            {
                this.SetValue(WaterPressureProperty, value);
            }
        }
        public static readonly DependencyProperty PressureTargetProperty = DependencyProperty.Register(
            "PressureTarget", typeof(double), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(0.0, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// PressureTarget
        /// 
        public double PressureTarget
        {
            get
            {
                return (double)this.GetValue(PressureTargetProperty);
            }
            set
            {
                this.SetValue(PressureTargetProperty, value);
            }
        }
        public static readonly DependencyProperty DIWInletValveOpenProperty = DependencyProperty.Register(
            "DIWInletValveOpen", typeof(bool), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// DIWInletValveOpen
        /// 
        public bool DIWInletValveOpen
        {
            get
            {
                return (bool)this.GetValue(DIWInletValveOpenProperty);
            }
            set
            {
                this.SetValue(DIWInletValveOpenProperty, value);
            }
        }
        public static readonly DependencyProperty ChamberOpenProperty = DependencyProperty.Register(
            "ChamberOpen", typeof(bool), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// ChamberOpen
        /// 
        public bool ChamberOpen
        {
            get
            {
                return (bool)this.GetValue(ChamberOpenProperty);
            }
            set
            {
                this.SetValue(ChamberOpenProperty, value);
            }
        }
        public static readonly DependencyProperty ChamberCloseProperty = DependencyProperty.Register(
    "ChamberClose", typeof(bool), typeof(VPWMainStateControl), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// ChamberClose
        /// 
        public bool ChamberClose
        {
            get
            {
                return (bool)this.GetValue(ChamberCloseProperty);
            }
            set
            {
                this.SetValue(ChamberCloseProperty, value);
            }
        }
        private void DIWInletValveOpen_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.DiwEnable");
        }
        private void DIWInletValveClose_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.DiwDisable");
        }
        private void ChamberOpen_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ChamberDown");
        }
        private void ChamberClose_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.ChamberUp");
        }
    }
}