using MECF.Framework.Common.CommonData.PowerSupplier; 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 { /// /// PowerSupplyChannelControl.xaml 的交互逻辑 /// public partial class PowerSupplyChannelControl : UserControl { #region 属性 public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register("ModuleName", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 模块名称 /// public string ModuleName { get { return (string)this.GetValue(ModuleNameProperty); } set { this.SetValue(ModuleNameProperty, value); } } public static readonly DependencyProperty ModuleTitleProperty = DependencyProperty.Register("ModuleTitle", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 模块标题 /// public string ModuleTitle { get { return (string)this.GetValue(ModuleTitleProperty); } set { this.SetValue(ModuleTitleProperty, value); } } public static readonly DependencyProperty MetalCellSideNameProperty = DependencyProperty.Register("MetalCellSideName", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// Metal单元面名称 /// public string MetalCellSideName { get { return (string)this.GetValue(MetalCellSideNameProperty); } set { this.SetValue(MetalCellSideNameProperty, value); } } public static readonly DependencyProperty InputSetPointProperty = DependencyProperty.Register("InputSetPoint", typeof(double), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 输入设置数值 /// public double InputSetPoint { get { return (double)this.GetValue(InputSetPointProperty); } set { this.SetValue(InputSetPointProperty, value); } } public static readonly DependencyProperty SetPointProperty = DependencyProperty.Register("SetPoint", typeof(double), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 设置数值 /// public double SetPoint { get { return (double)this.GetValue(SetPointProperty); } set { this.SetValue(SetPointProperty, value); } } public static readonly DependencyProperty PowerStatusProperty = DependencyProperty.Register("PowerStatus", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 电源状态 /// public string PowerStatus { get { return (string)this.GetValue(PowerStatusProperty); } set { this.SetValue(PowerStatusProperty, value); } } public static readonly DependencyProperty CurrentProperty = DependencyProperty.Register("Current", typeof(double), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 电流 /// public double Current { get { return (double)this.GetValue(CurrentProperty); } set { this.SetValue(CurrentProperty, value); } } public static readonly DependencyProperty VoltageProperty = DependencyProperty.Register("Voltage", typeof(double), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata((double)0, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 电压 /// public double Voltage { get { return (double)this.GetValue(VoltageProperty); } set { this.SetValue(VoltageProperty, value); } } public static readonly DependencyProperty OutputEnabledProperty = DependencyProperty.Register("OutputEnabled", typeof(bool), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 可用性 /// public bool OutputEnabled { get { return (bool)this.GetValue(OutputEnabledProperty); } set { this.SetValue(OutputEnabledProperty, value); } } public static readonly DependencyProperty ConnectedProperty = DependencyProperty.Register("Connected", typeof(bool), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 连接状态 /// public bool Connected { get { return (bool)this.GetValue(ConnectedProperty); } set { this.SetValue(ConnectedProperty, value); } } public static readonly DependencyProperty PowerControlProperty = DependencyProperty.Register("PowerControl", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 电源远程状态 /// public string PowerControl { get { return (string)this.GetValue(PowerControlProperty); } set { this.SetValue(PowerControlProperty, value); } } public static readonly DependencyProperty PowerRunModelProperty = DependencyProperty.Register("PowerRunModel", typeof(string), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 电源运行模式 /// public string PowerRunModel { get { return (string)this.GetValue(PowerRunModelProperty); } set { this.SetValue(PowerRunModelProperty, value); } } public static readonly DependencyProperty Step1DataProperty = DependencyProperty.Register("Step1Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 连接状态 /// public PowerSupplierStepPeriodData Step1Data { get { return (PowerSupplierStepPeriodData)this.GetValue(Step1DataProperty); } set { this.SetValue(Step1DataProperty, value); } } public static readonly DependencyProperty Step2DataProperty = DependencyProperty.Register("Step2Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 连接状态 /// public PowerSupplierStepPeriodData Step2Data { get { return (PowerSupplierStepPeriodData)this.GetValue(Step2DataProperty); } set { this.SetValue(Step2DataProperty, value); } } public static readonly DependencyProperty Step3DataProperty = DependencyProperty.Register("Step3Data", typeof(PowerSupplierStepPeriodData), typeof(PowerSupplyChannelControl), new FrameworkPropertyMetadata(new PowerSupplierStepPeriodData(), FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 连接状态 /// public PowerSupplierStepPeriodData Step3Data { get { return (PowerSupplierStepPeriodData)this.GetValue(Step3DataProperty); } set { this.SetValue(Step3DataProperty, value); } } #endregion public PowerSupplyChannelControl() { InitializeComponent(); } #region 按钮事件 private void Enable_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Enable"); } private void Disable_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Disable"); } private void SetPoint_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetPoint","TargetPoint",InputSetPoint); } /// /// 启动 /// /// /// private void Start_Click(object sender, RoutedEventArgs e) { List stepPeriodDatas = new List(); if(Step1Data.Hour+Step1Data.Minute+Step1Data.Second+Step1Data.Microsecond!=0&&Step1Data.Current!=0) { stepPeriodDatas.Add(Step1Data); } else { return; } if (Step2Data.Hour + Step2Data.Minute + Step2Data.Second + Step2Data.Microsecond != 0 && Step2Data.Current != 0) { stepPeriodDatas.Add(Step2Data); } if (Step3Data.Hour + Step3Data.Minute + Step3Data.Second + Step3Data.Microsecond != 0 && Step3Data.Current != 0) { stepPeriodDatas.Add(Step3Data); } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.StartStepPeriod", "StepPeriodDatas", stepPeriodDatas); } private void Remote_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetRemoteControl"); } private void Local_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.SetLocalControl"); } private void Abort_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Abort"); } #endregion } }