using Aitex.Core.UI.MVVM;
using Aitex.Core.Utilities;
using MECF.Framework.Common.CommonData.Prewet;
using MECF.Framework.Common.CommonData.SRD;
using MECF.Framework.Common.OperationCenter;
using MECF.Framework.Common.Persistent.Prewet;
using MECF.Framework.Common.Persistent.SRD;
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
{
///
/// PrewetLeftSideControl.xaml 的交互逻辑
///
public partial class PrewetLeftSideControl : UserControl
{
public PrewetLeftSideControl()
{
KeyDownCommand = new DelegateCommand(KeyDownAction);
InitializeComponent();
}
#region 属性
public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
"ModuleName", typeof(string), typeof(PrewetLeftSideControl),
new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
///
/// 模块名称
///
public string ModuleName
{
get
{
return (string)this.GetValue(ModuleNameProperty);
}
set
{
this.SetValue(ModuleNameProperty, value);
}
}
public static readonly DependencyProperty StateMachineProperty = DependencyProperty.Register(
"StateMachine", typeof(string), typeof(PrewetLeftSideControl),
new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
///
/// StateMachine
///
public string StateMachine
{
get
{
return (string)this.GetValue(StateMachineProperty);
}
set
{
this.SetValue(StateMachineProperty, value);
}
}
public static readonly DependencyProperty StatusValueProperty = DependencyProperty.Register(
"StatusValue", typeof(string), typeof(PrewetLeftSideControl),
new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
///
/// StatusValue
///
public string StatusValue
{
get
{
return (string)this.GetValue(StatusValueProperty);
}
set
{
this.SetValue(StatusValueProperty, value);
}
}
public static readonly DependencyProperty IsManualProperty = DependencyProperty.Register(
"IsManual", typeof(bool), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// OperatingMode
///
public bool IsManual
{
get
{
return (bool)this.GetValue(IsManualProperty);
}
set
{
this.SetValue(IsManualProperty, value);
}
}
public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
"State", typeof(string), typeof(PrewetLeftSideControl),
new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
///
/// State
///
public string State
{
get
{
return (string)this.GetValue(StateProperty);
}
set
{
this.SetValue(StateProperty, value);
}
}
public static readonly DependencyProperty PumpDataProperty = DependencyProperty.Register(
"PumpData", typeof(PrewetPumpData), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// PumpData
///
public PrewetPumpData PumpData
{
get
{
return (PrewetPumpData)this.GetValue(PumpDataProperty);
}
set
{
this.SetValue(PumpDataProperty, value);
}
}
public static readonly DependencyProperty InputPumpSpeedProperty = DependencyProperty.Register(
"InputPumpSpeed", typeof(short), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata((short)300, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// InputLowThreshold
///
public short InputPumpSpeed
{
get
{
return (short)this.GetValue(InputPumpSpeedProperty);
}
set
{
this.SetValue(InputPumpSpeedProperty, value);
}
}
public static readonly DependencyProperty LinmotPostionProperty = DependencyProperty.Register(
"LinmotPostion", typeof(double), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(0.00, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// LinmotPostion
///
public double LinmotPostion
{
get
{
return (double)this.GetValue(LinmotPostionProperty);
}
set
{
this.SetValue(LinmotPostionProperty, value);
}
}
public static readonly DependencyProperty CurrentScanedCompletedProperty = DependencyProperty.Register(
"CurrentScanedCompleted", typeof(int), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// ScanedTimes
///
public int CurrentScanedCompleted
{
get
{
return (int)this.GetValue(CurrentScanedCompletedProperty);
}
set
{
this.SetValue(CurrentScanedCompletedProperty, value);
}
}
public static readonly DependencyProperty KeepWetLimitProperty = DependencyProperty.Register(
"KeepWetLimit", typeof(int), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.AffectsRender));
///
/// ScanedTimes
///
public int KeepWetLimit
{
get
{
return (int)this.GetValue(KeepWetLimitProperty);
}
set
{
this.SetValue(KeepWetLimitProperty, value);
}
}
public static readonly DependencyProperty PersistentValueProperty = DependencyProperty.Register(
"PersistentValue", typeof(PrewetPersistentValue), typeof(PrewetLeftSideControl), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnItemsSourceChanged)));
///
/// PersistentValue
///
public PrewetPersistentValue PersistentValue
{
get
{
return (PrewetPersistentValue)this.GetValue(PersistentValueProperty);
}
set
{
this.SetValue(PersistentValueProperty, value);
}
}
private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (e.NewValue != null)
{
PrewetPersistentValue data = (PrewetPersistentValue)e.NewValue;
d.SetValue(InputPumpSpeedProperty, data.Speed);
}
}
#endregion
[IgnorePropertyChange]
public ICommand KeyDownCommand
{
get;
private set;
}
private void KeyDownAction(object[] param)
{
if (param.Length >= 1)
{
if (short.TryParse(param[1].ToString(), out short paramValue))
{
if(paramValue < 300 || paramValue > 7300)
{
MessageBox.Show("qualified values 300 ~ 7300", "Invalid Speed Input", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpSpeedKeyDown", paramValue);
}
}
}
}
#region 按钮事件
private void PreparetoTransfer_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PrepareToTransfer");
}
private void KeepWet_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.KeepWet");
}
private void PumpOff_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpDisable");
}
private void PumpOn_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpEnable");
}
private void Auto_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpSpeedAuto");
}
private void Manual_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpSpeedManual");
}
private void Close_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpValveOff");
}
private void Open_Click(object sender, RoutedEventArgs e)
{
InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PumpValveOn");
}
#endregion
}
}