EFEM.xaml.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using OpenSEMI.ClientBase;
  9. using CyberX8_Themes.CustomControls;
  10. namespace CyberX8_Themes.UserControls
  11. {
  12. /// <summary>
  13. /// EFEM.xaml 的交互逻辑
  14. /// </summary>
  15. public partial class EFEM : UserControl
  16. {
  17. public enum RobotPosition
  18. {
  19. None,
  20. Origin,
  21. Right,
  22. Left,
  23. Middle,
  24. Aligner,
  25. SRD,
  26. Dummy,
  27. Right_Place,
  28. Left_Place,
  29. Middle_Place,
  30. Aligner_Place,
  31. SRD_Place,
  32. Dummy_Place
  33. }
  34. public EFEM()
  35. {
  36. InitializeComponent();
  37. }
  38. public static readonly DependencyProperty RotateTransformValueProperty = DependencyProperty.Register(
  39. "RotateTransformValue", typeof(int), typeof(EFEM));
  40. public int RotateTransformValue
  41. {
  42. get { return (int)this.GetValue(RotateTransformValueProperty); }
  43. set { this.SetValue(RotateTransformValueProperty, value); }
  44. }
  45. public static readonly DependencyProperty AlignActionValueProperty = DependencyProperty.Register(
  46. "AlignActionValue", typeof(int), typeof(EFEM));
  47. public int AlignActionValue
  48. {
  49. get { return (int)this.GetValue(AlignActionValueProperty); }
  50. set { this.SetValue(AlignActionValueProperty, value); }
  51. }
  52. public static readonly DependencyProperty Aligner1WaferProperty = DependencyProperty.Register(
  53. "Aligner1Wafer", typeof(WaferInfo), typeof(EFEM));
  54. public WaferInfo Aligner1Wafer
  55. {
  56. get => (WaferInfo)GetValue(Aligner1WaferProperty);
  57. set => SetValue(Aligner1WaferProperty, value);
  58. }
  59. public static readonly DependencyProperty Puf1WaferProperty = DependencyProperty.Register(
  60. "Puf1Wafer", typeof(WaferInfo), typeof(EFEM));
  61. public WaferInfo Puf1Wafer
  62. {
  63. get => (WaferInfo)GetValue(Puf1WaferProperty);
  64. set => SetValue(Puf1WaferProperty, value);
  65. }
  66. public static readonly DependencyProperty Puf2WaferProperty = DependencyProperty.Register(
  67. "Puf2Wafer", typeof(WaferInfo), typeof(EFEM));
  68. public WaferInfo Puf2Wafer
  69. {
  70. get => (WaferInfo)GetValue(Puf2WaferProperty);
  71. set => SetValue(Puf2WaferProperty, value);
  72. }
  73. public static readonly DependencyProperty Puf1IsInRobotStationProperty = DependencyProperty.Register(
  74. "Puf1IsInRobotStation", typeof(bool), typeof(EFEM));
  75. public bool Puf1IsInRobotStation
  76. {
  77. get => (bool)GetValue(Puf1IsInRobotStationProperty);
  78. set => SetValue(Puf1IsInRobotStationProperty, value);
  79. }
  80. public static readonly DependencyProperty Puf2IsInRobotStationProperty = DependencyProperty.Register(
  81. "Puf2IsInRobotStation", typeof(bool), typeof(EFEM));
  82. public bool Puf2IsInRobotStation
  83. {
  84. get => (bool)GetValue(Puf2IsInRobotStationProperty);
  85. set => SetValue(Puf2IsInRobotStationProperty, value);
  86. }
  87. public static readonly DependencyProperty LP1PresentedProperty = DependencyProperty.Register(
  88. "LP1Presented", typeof(bool), typeof(EFEM),
  89. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  90. public bool LP1Presented
  91. {
  92. get { return (bool)this.GetValue(LP1PresentedProperty); }
  93. set { this.SetValue(LP1PresentedProperty, value); }
  94. }
  95. public static readonly DependencyProperty LP2PresentedProperty = DependencyProperty.Register(
  96. "LP2Presented", typeof(bool), typeof(EFEM),
  97. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  98. public bool LP2Presented
  99. {
  100. get { return (bool)this.GetValue(LP2PresentedProperty); }
  101. set { this.SetValue(LP2PresentedProperty, value); }
  102. }
  103. public static readonly DependencyProperty LP3PresentedProperty = DependencyProperty.Register(
  104. "LP3Presented", typeof(bool), typeof(EFEM),
  105. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  106. public bool LP3Presented
  107. {
  108. get { return (bool)this.GetValue(LP3PresentedProperty); }
  109. set { this.SetValue(LP3PresentedProperty, value); }
  110. }
  111. public static readonly DependencyProperty LP1LoadedProperty = DependencyProperty.Register(
  112. "LP1Loaded", typeof(bool), typeof(EFEM),
  113. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  114. public bool LP1Loaded
  115. {
  116. get { return (bool)this.GetValue(LP1LoadedProperty); }
  117. set { this.SetValue(LP1LoadedProperty, value); }
  118. }
  119. public static readonly DependencyProperty LP2LoadedProperty = DependencyProperty.Register(
  120. "LP2Loaded", typeof(bool), typeof(EFEM),
  121. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  122. public bool LP2Loaded
  123. {
  124. get { return (bool)this.GetValue(LP2LoadedProperty); }
  125. set { this.SetValue(LP2LoadedProperty, value); }
  126. }
  127. public static readonly DependencyProperty LP3LoadedProperty = DependencyProperty.Register(
  128. "LP3Loaded", typeof(bool), typeof(EFEM),
  129. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  130. public bool LP3Loaded
  131. {
  132. get { return (bool)this.GetValue(LP3LoadedProperty); }
  133. set { this.SetValue(LP3LoadedProperty, value); }
  134. }
  135. public static readonly DependencyProperty CurrentRobotPositionProperty = DependencyProperty.Register(
  136. "CurrentRobotPosition", typeof(RobotPosition), typeof(EFEM),
  137. new PropertyMetadata(RobotPosition.Origin, PositionChangedCallback));
  138. public RobotPosition CurrentRobotPosition
  139. {
  140. get { return (RobotPosition)this.GetValue(CurrentRobotPositionProperty); }
  141. set
  142. {
  143. this.SetValue(CurrentRobotPositionProperty, value);
  144. }
  145. }
  146. private static void PositionChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
  147. {
  148. var newAct = (RobotPosition)e.NewValue;
  149. var control = d as EFEM;
  150. GoToPosition(control,newAct);
  151. }
  152. public static readonly DependencyProperty RobotATActionProperty = DependencyProperty.Register(
  153. "RobotATAction", typeof(WaferRobotTAction), typeof(EFEM),
  154. new FrameworkPropertyMetadata(WaferRobotTAction.T_Origin, FrameworkPropertyMetadataOptions.AffectsRender));
  155. public WaferRobotTAction RobotATAction
  156. {
  157. get { return (WaferRobotTAction)this.GetValue(RobotATActionProperty); }
  158. set { this.SetValue(RobotATActionProperty, value); }
  159. }
  160. public static readonly DependencyProperty RobotAXActionProperty = DependencyProperty.Register(
  161. "RobotAXAction", typeof(WaferRobotXAction), typeof(EFEM),
  162. new FrameworkPropertyMetadata(WaferRobotXAction.X_Origin, FrameworkPropertyMetadataOptions.AffectsRender));
  163. public WaferRobotXAction RobotAXAction
  164. {
  165. get { return (WaferRobotXAction)this.GetValue(RobotAXActionProperty); }
  166. set { this.SetValue(RobotAXActionProperty, value); }
  167. }
  168. public static readonly DependencyProperty RobotAWaferInfoProperty = DependencyProperty.Register(
  169. "RobotAWaferInfo", typeof(WaferInfo), typeof(EFEM));
  170. public WaferInfo RobotAWaferInfo
  171. {
  172. get { return (WaferInfo)this.GetValue(RobotAWaferInfoProperty); }
  173. set { this.SetValue(RobotAWaferInfoProperty, value); }
  174. }
  175. private static void GoToPosition(Control control,RobotPosition robotPosition)
  176. {
  177. VisualStateManager.GoToElementState(control, robotPosition.ToString(), true);
  178. }
  179. }
  180. }