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