ChamberWithHeater.xaml.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. using OpenSEMI.ClientBase;
  2. using OpenSEMI.Ctrlib.Controls;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using Venus_Core;
  6. using Venus_Themes.Unity;
  7. using static Venus_Core.NiceRobotAction;
  8. //using static Venus_Themes.UserControls.EFEM;
  9. namespace Venus_Themes.UserControls
  10. {
  11. /// <summary>
  12. /// Chamber.xaml 的交互逻辑
  13. /// </summary>
  14. public partial class ChamberWithHeater : UserControl
  15. {
  16. public ChamberWithHeater()
  17. {
  18. InitializeComponent();
  19. }
  20. public static readonly DependencyProperty IsOpenSlitDoorProperty = DependencyProperty.Register(
  21. "IsOpenSlitDoor", typeof(bool), typeof(ChamberWithHeater));
  22. public bool IsOpenSlitDoor
  23. {
  24. get { return (bool)this.GetValue(IsOpenSlitDoorProperty); }
  25. set { this.SetValue(IsOpenSlitDoorProperty, value); }
  26. }
  27. public static readonly DependencyProperty IsHasWaferProperty = DependencyProperty.Register(
  28. "IsHasWafer", typeof(bool), typeof(ChamberWithHeater),
  29. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  30. public bool IsHasWafer
  31. {
  32. get { return (bool)this.GetValue(IsHasWaferProperty); }
  33. set { this.SetValue(IsHasWaferProperty, value); }
  34. }
  35. public static readonly DependencyProperty IsLidOpenProperty = DependencyProperty.Register(
  36. "IsLidOpen", typeof(bool), typeof(ChamberWithHeater));
  37. public bool IsLidOpen
  38. {
  39. get { return (bool)this.GetValue(IsLidOpenProperty); }
  40. set { this.SetValue(IsLidOpenProperty, value); }
  41. }
  42. public static readonly DependencyProperty IsSRFOnProperty = DependencyProperty.Register(
  43. "IsSRFOn", typeof(bool), typeof(ChamberWithHeater),
  44. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  45. public bool IsSRFOn
  46. {
  47. get { return (bool)this.GetValue(IsSRFOnProperty); }
  48. set { this.SetValue(IsSRFOnProperty, value); }
  49. }
  50. public static readonly DependencyProperty IsBRFOnProperty = DependencyProperty.Register(
  51. "IsBRFOn", typeof(bool), typeof(ChamberWithHeater),
  52. new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
  53. public bool IsBRFOn
  54. {
  55. get { return (bool)this.GetValue(IsBRFOnProperty); }
  56. set { this.SetValue(IsBRFOnProperty, value); }
  57. }
  58. public static readonly DependencyProperty WaferIDProperty = DependencyProperty.Register(
  59. "WaferID", typeof(string), typeof(ChamberWithHeater));
  60. public string WaferID
  61. {
  62. get { return (string)this.GetValue(WaferIDProperty); }
  63. set { this.SetValue(WaferIDProperty, value); }
  64. }
  65. public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
  66. "ModuleName", typeof(string), typeof(ChamberWithHeater));
  67. public string ModuleName
  68. {
  69. get { return (string)this.GetValue(ModuleNameProperty); }
  70. set
  71. {
  72. this.SetValue(ModuleNameProperty, value);
  73. }
  74. }
  75. public static readonly DependencyProperty HeaterPositionProperty = DependencyProperty.Register(
  76. "HeaterPosition", typeof(string), typeof(ChamberWithHeater), new PropertyMetadata("Position1", PositionChangedCallback));
  77. public string HeaterPosition
  78. {
  79. get { return (string)this.GetValue(HeaterPositionProperty); }
  80. set { this.SetValue(HeaterPositionProperty, value); }
  81. }
  82. public static readonly DependencyProperty RobotWaferProperty = DependencyProperty.Register(
  83. "RobotWafer", typeof(WaferInfo), typeof(ChamberWithHeater));
  84. public WaferInfo RobotWafer
  85. {
  86. get => (WaferInfo)GetValue(RobotWaferProperty);
  87. set => SetValue(RobotWaferProperty, value);
  88. }
  89. // public static readonly DependencyProperty IsUpdateControlProperty = DependencyProperty.Register(
  90. //"IsUpdateControl", typeof(bool), typeof(ChamberWithHeater),
  91. //new FrameworkPropertyMetadata(false, UpdateControlPropertyChangedCallback));
  92. // public bool IsUpdateControl
  93. // {
  94. // get { return (bool)this.GetValue(IsUpdateControlProperty); }
  95. // set { this.SetValue(IsUpdateControlProperty, value); }
  96. // }
  97. public static readonly DependencyProperty ChamberInfoProperty = DependencyProperty.Register(
  98. "ChamberInfo", typeof(ChamberInfo), typeof(ChamberWithHeater), new PropertyMetadata(UpdateControlPropertyChangedCallback));
  99. public ChamberInfo ChamberInfo
  100. {
  101. get => (ChamberInfo)GetValue(ChamberInfoProperty);
  102. set => SetValue(ChamberInfoProperty, value);
  103. }
  104. private static void UpdateControlPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
  105. {
  106. //var control = d as ChamberWithHeater;
  107. //var newAct = e.NewValue as ChamberInfo;
  108. //switch (newAct.Position)
  109. //{
  110. // case "Position1":
  111. // control.heaterRotateAct.Y = 10;
  112. // break;
  113. // case "Position2":
  114. // control.heaterRotateAct.Y = -10;
  115. // break;
  116. // case "Position3":
  117. // control.heaterRotateAct.Y = -20;
  118. // break;
  119. // case "Position4":
  120. // control.heaterRotateAct.Y = -30;
  121. // break;
  122. // case "Position5":
  123. // control.heaterRotateAct.Y = -40;
  124. // break;
  125. // case "Origin":
  126. // control.heaterRotateAct.Y = 0;
  127. // break;
  128. //}
  129. //var style = control.TryFindResource("SlitValve_Animation") as Style;
  130. //control.rectangle1.Style = null;
  131. //control.rectangle2.Style = null;
  132. //if (newAct.DoorIsOpen)
  133. //{
  134. // control.rectangle1.Height = 42d;
  135. // control.rectangle2.Height = 42d;
  136. //}
  137. //else
  138. //{
  139. // control.rectangle1.Height = 75d;
  140. // control.rectangle2.Height = 75d;
  141. //}
  142. //control.rectangle1.Style= style;
  143. //control.rectangle2.Style = style;
  144. }
  145. private void CreateWafer_Click(object sender, RoutedEventArgs e)
  146. {
  147. UIEvents.OnChamberCreateDeleteWafer(new WaferOperation() { ModuleName = ModuleName, IsCreate = true });
  148. }
  149. private void DeleteWafer_Click(object sender, RoutedEventArgs e)
  150. {
  151. UIEvents.OnChamberCreateDeleteWafer(new WaferOperation() { ModuleName = ModuleName, IsCreate = false });
  152. }
  153. private void OpenDoor_Click(object sender, RoutedEventArgs e)
  154. {
  155. UIEvents.OnPMDoorRaiseChanged(new DoorPara() { ModuleName = ModuleName, IsOpen = "Open" });
  156. }
  157. private void CloseDoor_Click(object sender, RoutedEventArgs e)
  158. {
  159. UIEvents.OnPMDoorRaiseChanged(new DoorPara() { ModuleName = ModuleName, IsOpen = "Close" });
  160. }
  161. private static void PositionChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
  162. {
  163. var newAct = e.NewValue.ToString();
  164. var control = d as ChamberWithHeater;
  165. if (newAct == "Position1")
  166. {
  167. control.border1.Margin = new Thickness(5, -14, 0, 0);
  168. }
  169. else
  170. {
  171. control.border1.Margin = new Thickness(5, -11, 0, 0);
  172. }
  173. GoToPosition(control, newAct);
  174. }
  175. private static void GoToPosition(Control control, string robotPosition)
  176. {
  177. VisualStateManager.GoToElementState(control, robotPosition, true);
  178. }
  179. }
  180. }