WHClampControl.xaml.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using MECF.Framework.Common.Equipment;
  2. using MECF.Framework.Common.OperationCenter;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace CyberX8_Themes.UserControls
  18. {
  19. /// <summary>
  20. /// WHClampControl.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class WHClampControl : UserControl
  23. {
  24. public WHClampControl()
  25. {
  26. InitializeComponent();
  27. }
  28. public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
  29. "ModuleName", typeof(string), typeof(WHClampControl), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
  30. /// <summary>
  31. /// 模块名称
  32. /// </summary>
  33. public string ModuleName
  34. {
  35. get
  36. {
  37. return (string)this.GetValue(ModuleNameProperty);
  38. }
  39. set
  40. {
  41. this.SetValue(ModuleNameProperty, value);
  42. }
  43. }
  44. public static readonly DependencyProperty IsWHClampProperty = DependencyProperty.Register(
  45. "IsWHClamp", typeof(bool), typeof(WHClampControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  46. /// <summary>
  47. /// IsWHClamp
  48. /// </summary>
  49. public bool IsWHClamp
  50. {
  51. get
  52. {
  53. return (bool)this.GetValue(IsWHClampProperty);
  54. }
  55. set
  56. {
  57. this.SetValue(IsWHClampProperty, value);
  58. }
  59. }
  60. public static readonly DependencyProperty IsWHUnclampProperty = DependencyProperty.Register(
  61. "IsWHUnclamp", typeof(bool), typeof(WHClampControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  62. /// <summary>
  63. /// IsWHUnclamp
  64. /// </summary>
  65. public bool IsWHUnclamp
  66. {
  67. get
  68. {
  69. return (bool)this.GetValue(IsWHUnclampProperty);
  70. }
  71. set
  72. {
  73. this.SetValue(IsWHUnclampProperty, value);
  74. }
  75. }
  76. public static readonly DependencyProperty IsButtonEnabledProperty = DependencyProperty.Register(
  77. "IsButtonEnabled", typeof(bool), typeof(WHClampControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  78. /// <summary>
  79. /// IsButtonEnabled(WHDisconncect)
  80. /// </summary>
  81. public bool IsButtonEnabled
  82. {
  83. get
  84. {
  85. return (bool)this.GetValue(IsButtonEnabledProperty);
  86. }
  87. set
  88. {
  89. this.SetValue(IsButtonEnabledProperty, value);
  90. }
  91. }
  92. public static readonly DependencyProperty ClampStatusProperty = DependencyProperty.Register(
  93. "ClampStatus", typeof(string), typeof(WHClampControl), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnItemsSourceChanged)));
  94. /// <summary>
  95. /// ClampStatus
  96. /// </summary>
  97. public string ClampStatus
  98. {
  99. get
  100. {
  101. return (string)this.GetValue(ClampStatusProperty);
  102. }
  103. set
  104. {
  105. this.SetValue(ClampStatusProperty, value);
  106. }
  107. }
  108. private static void OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
  109. {
  110. if (e.NewValue != null)
  111. {
  112. string currentMode = (string)e.NewValue;
  113. switch (currentMode)
  114. {
  115. case "Clamped":
  116. d.SetValue(IsWHClampProperty, true);
  117. d.SetValue(IsWHUnclampProperty, false); break;
  118. case "Unclamped":
  119. d.SetValue(IsWHClampProperty, false);
  120. d.SetValue(IsWHUnclampProperty, true); break;
  121. case "Disconnect":
  122. d.SetValue(IsWHClampProperty, false);
  123. d.SetValue(IsWHUnclampProperty, false); break;
  124. default:
  125. break;
  126. }
  127. }
  128. }
  129. /// <summary>
  130. /// WH Clamp
  131. /// </summary>
  132. /// <param name="sender"></param>
  133. /// <param name="e"></param>
  134. private void WHClamp_Click(object sender, RoutedEventArgs e)
  135. {
  136. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderClampOn");
  137. }
  138. /// <summary>
  139. /// WH Clamp
  140. /// </summary>
  141. /// <param name="sender"></param>
  142. /// <param name="e"></param>
  143. private void WHUnclamp_Click(object sender, RoutedEventArgs e)
  144. {
  145. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderUnclampOn");
  146. }
  147. /// <summary>
  148. /// WH Disconnect
  149. /// </summary>
  150. /// <param name="sender"></param>
  151. /// <param name="e"></param>
  152. private void WHDisconnect_Click(object sender, RoutedEventArgs e)
  153. {
  154. InvokeClient.Instance.Service.DoOperation($"{ModuleName}.WaferHolderDisconnect");
  155. }
  156. }
  157. }