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 { /// /// TransporterOperationControl.xaml 的交互逻辑 /// public partial class TransporterOperationControl : UserControl { #region 属性 public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register("ModuleName", typeof(string), typeof(TransporterOperationControl), new FrameworkPropertyMetadata("Transporter",new PropertyChangedCallback(ModuleNamePropertyChanged))); /// /// 模块名称 /// public string ModuleName { get { return (string)this.GetValue(ModuleNameProperty); } set { this.SetValue(ModuleNameProperty, value); } } private static void ModuleNamePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { } public static readonly DependencyProperty ClampedProperty = DependencyProperty.Register( "Clamped", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// Clamped /// public bool Clamped { get { return (bool)this.GetValue(ClampedProperty); } set { this.SetValue(ClampedProperty, value); } } public static readonly DependencyProperty UnclampedProperty = DependencyProperty.Register( "Unclamped", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// Unclamped /// public bool Unclamped { get { return (bool)this.GetValue(UnclampedProperty); } set { this.SetValue(UnclampedProperty, value); } } public static readonly DependencyProperty LockedProperty = DependencyProperty.Register( "Locked", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// Locked /// public bool Locked { get { return (bool)this.GetValue(LockedProperty); } set { this.SetValue(LockedProperty, value); } } public static readonly DependencyProperty UnlockedProperty = DependencyProperty.Register( "Unlocked", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// Unlocked /// public bool Unlocked { get { return (bool)this.GetValue(UnlockedProperty); } set { this.SetValue(UnlockedProperty, value); } } public static readonly DependencyProperty DripOpenedProperty = DependencyProperty.Register( "DripOpened", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// DripOpened /// public bool DripOpened { get { return (bool)this.GetValue(DripOpenedProperty); } set { this.SetValue(DripOpenedProperty, value); } } public static readonly DependencyProperty DripClosedProperty = DependencyProperty.Register( "DripClosed", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// DripClosed /// public bool DripClosed { get { return (bool)this.GetValue(DripClosedProperty); } set { this.SetValue(DripClosedProperty, value); } } public static readonly DependencyProperty DripHorizontalProperty = DependencyProperty.Register( "DripHorizontal", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// DripHorizontal /// public bool DripHorizontal { get { return (bool)this.GetValue(DripHorizontalProperty); } set { this.SetValue(DripHorizontalProperty, value); } } public static readonly DependencyProperty DripVerticalProperty = DependencyProperty.Register( "DripVertical", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// DripVertical /// public bool DripVertical { get { return (bool)this.GetValue(DripVerticalProperty); } set { this.SetValue(DripVerticalProperty, value); } } public static readonly DependencyProperty ManualModeProperty = DependencyProperty.Register( "ManualMode", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// ManualMode /// public bool ManualMode { get { return (bool)this.GetValue(ManualModeProperty); } set { this.SetValue(ManualModeProperty, value); } } public static readonly DependencyProperty TargetStationProperty = DependencyProperty.Register( "TargetStation", typeof(string), typeof(TransporterOperationControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender)); /// /// TargetStation /// public string TargetStation { get { return (string)this.GetValue(TargetStationProperty); } set { this.SetValue(TargetStationProperty, value); } } public static readonly DependencyProperty IsElevatorInUpPlaceProperty = DependencyProperty.Register( "IsElevatorInUpPlace", typeof(bool), typeof(TransporterOperationControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// IsElevatorInUpPlace /// public bool IsElevatorInUpPlace { get { return (bool)this.GetValue(IsElevatorInUpPlaceProperty); } set { this.SetValue(IsElevatorInUpPlaceProperty, value); } } #endregion public TransporterOperationControl() { InitializeComponent(); } private void Clamp_Click(object sender, RoutedEventArgs e) { if (!IsElevatorInUpPlace) { MessageBox.Show("Elevator is not in 'UP' place", "Clamp", MessageBoxButton.OK, MessageBoxImage.Error); return; } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Extend"); } private void Unclamp_Click(object sender, RoutedEventArgs e) { if (!IsElevatorInUpPlace) { MessageBox.Show("Elevator is not in 'UP' place", "Clamp", MessageBoxButton.OK, MessageBoxImage.Error); return; } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Retract"); } private void Lock_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Lock"); } private void Unlock_Click(object sender, RoutedEventArgs e) { InvokeClient.Instance.Service.DoOperation($"{ModuleName}.Unlock"); } private void Pick_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(TargetStation)) { MessageBox.Show("Gantry is not in station", "pick", MessageBoxButton.OK, MessageBoxImage.Error); return; } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PickUpFrom", TargetStation); } private void Place_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(TargetStation)) { MessageBox.Show("Gantry is not in station", "place", MessageBoxButton.OK, MessageBoxImage.Error); return; } InvokeClient.Instance.Service.DoOperation($"{ModuleName}.PutDownTo", TargetStation); } } }