VenusSeOperationOverViewModel.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. using Aitex.Core.UI.MVVM;
  2. using MECF.Framework.Common.CommonData;
  3. using MECF.Framework.Common.DataCenter;
  4. using MECF.Framework.Common.Equipment;
  5. using MECF.Framework.Common.OperationCenter;
  6. using OpenSEMI.ClientBase;
  7. using Prism.Commands;
  8. using Prism.Mvvm;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using Venus_Core;
  15. using Venus_Themes.CustomControls;
  16. using System.Windows.Threading;
  17. using Venus_MainPages.Unity;
  18. namespace Venus_MainPages.ViewModels
  19. {
  20. public class VenusSeOperationOverViewModel : BindableBase
  21. {
  22. #region 私有字段
  23. private ModuleInfo m_VCE1ModuleInfo;
  24. private ModuleInfo m_PMAModuleInfo;
  25. private ModuleInfo m_PMBModuleInfo;
  26. private ModuleInfo m_PMCModuleInfo;
  27. private ModuleInfo m_VPAModuleInfo;
  28. private int m_VCE1WaferCount;
  29. private bool m_PMAIsInstalled;
  30. private bool m_PMBIsInstalled;
  31. private bool m_PMCIsInstalled;
  32. private bool m_VCEIsInstalled;
  33. #endregion
  34. #region 属性
  35. public ModuleInfo VCE1ModuleInfo
  36. {
  37. get { return m_VCE1ModuleInfo;}
  38. set
  39. {
  40. SetProperty(ref m_VCE1ModuleInfo, value);
  41. }
  42. }
  43. public ModuleInfo PMAModuleInfo
  44. {
  45. get { return m_PMAModuleInfo; }
  46. set
  47. {
  48. SetProperty(ref m_PMAModuleInfo, value);
  49. }
  50. }
  51. public ModuleInfo PMBModuleInfo
  52. {
  53. get { return m_PMBModuleInfo; }
  54. set
  55. {
  56. SetProperty(ref m_PMBModuleInfo, value);
  57. }
  58. }
  59. public ModuleInfo PMCModuleInfo
  60. {
  61. get { return m_PMCModuleInfo; }
  62. set
  63. {
  64. SetProperty(ref m_PMCModuleInfo, value);
  65. }
  66. }
  67. public ModuleInfo VPAModuleInfo
  68. {
  69. get { return m_VPAModuleInfo; }
  70. set
  71. {
  72. SetProperty (ref m_VPAModuleInfo, value);
  73. }
  74. }
  75. public bool PMAIsInstalled
  76. {
  77. get { return m_PMAIsInstalled; }
  78. set
  79. {
  80. SetProperty(ref m_PMAIsInstalled,value);
  81. }
  82. }
  83. public bool PMBIsInstalled
  84. {
  85. get { return m_PMBIsInstalled; }
  86. set
  87. {
  88. SetProperty(ref m_PMBIsInstalled, value);
  89. }
  90. }
  91. public bool PMCIsInstalled
  92. {
  93. get { return m_PMCIsInstalled; }
  94. set
  95. {
  96. SetProperty(ref m_PMCIsInstalled, value);
  97. }
  98. }
  99. public bool VCEIsInstalled
  100. {
  101. get { return m_VCEIsInstalled; }
  102. set
  103. {
  104. SetProperty(ref m_VCEIsInstalled, value);
  105. }
  106. }
  107. public int VCE1WaferCount
  108. {
  109. get { return m_VCE1WaferCount; }
  110. set
  111. {
  112. SetProperty(ref m_VCE1WaferCount, value);
  113. }
  114. }
  115. #endregion
  116. #region 命令
  117. private DelegateCommand _VCEHome;
  118. public DelegateCommand VCEHome => _VCEHome ?? (_VCEHome = new DelegateCommand(vceHome));
  119. private DelegateCommand _VCEReadMap;
  120. public DelegateCommand VCEReadMap => _VCEReadMap ?? (_VCEReadMap = new DelegateCommand(vceReadMap));
  121. private DelegateCommand _VCELoadPrepare;
  122. public DelegateCommand VCELoadPrepare =>
  123. _VCELoadPrepare ?? (_VCELoadPrepare = new DelegateCommand(vceLoadPrepare));
  124. private DelegateCommand __VCELoad;
  125. public DelegateCommand VCELoad =>
  126. __VCELoad ?? (__VCELoad = new DelegateCommand(vceLoad));
  127. private DelegateCommand _VCEUnLoad;
  128. public DelegateCommand VCEUnLoad =>
  129. _VCEUnLoad ?? (_VCEUnLoad = new DelegateCommand(vceUnLoad));
  130. private DelegateCommand _SMIFLoad;
  131. public DelegateCommand SMIFLoad =>
  132. _SMIFLoad ?? (_SMIFLoad = new DelegateCommand(smifLoad));
  133. private DelegateCommand _SMIFULoad;
  134. public DelegateCommand SMIFULoad =>
  135. _SMIFULoad ?? (_SMIFULoad = new DelegateCommand(smifUnLoad));
  136. #endregion
  137. #region 构造函数
  138. public VenusSeOperationOverViewModel()
  139. {
  140. //页面不刷错的方法 页面中的PM做成List的形式 通过itemsource显示 同时提供各个位置的pm点位 旋转角度
  141. VCE1WaferCount = 25;
  142. string[] allModules = QueryDataClient.Instance.Service.GetConfig($"System.InstalledModules").ToString().Split(',');
  143. PMAIsInstalled = allModules.Contains("PMA");
  144. PMBIsInstalled = allModules.Contains("PMB");
  145. PMCIsInstalled = allModules.Contains("PMC");
  146. VCEIsInstalled = allModules.Contains("VCE1");
  147. DispatcherTimer timer = new DispatcherTimer();
  148. timer.Interval = TimeSpan.FromSeconds(0.1);
  149. timer.Tick += Timer_Tick;
  150. timer.Start();
  151. }
  152. #endregion
  153. #region 命令实现
  154. private void vceHome()
  155. {
  156. InvokeClient.Instance.Service.DoOperation("VCE1.HOME");
  157. }
  158. private void vceReadMap()
  159. {
  160. InvokeClient.Instance.Service.DoOperation("VCE1.ReadMap");
  161. }
  162. private void vceLoadPrepare() { }
  163. private void vceLoad()
  164. {
  165. InvokeClient.Instance.Service.DoOperation("VCE1.Load");
  166. }
  167. private void vceUnLoad() { }
  168. private void smifLoad() { }
  169. private void smifUnLoad() { }
  170. #endregion
  171. #region 私有方法
  172. private void Timer_Tick(object sender, EventArgs e)
  173. {
  174. if (PMAIsInstalled == true)
  175. {
  176. PMAModuleInfo = ModuleManager.ModuleInfos["PMA"];
  177. }
  178. if (PMBIsInstalled == true)
  179. {
  180. PMBModuleInfo = ModuleManager.ModuleInfos["PMB"];
  181. }
  182. if (PMCIsInstalled == true)
  183. {
  184. PMCModuleInfo = ModuleManager.ModuleInfos["PMC"];
  185. }
  186. if (VCEIsInstalled == true)
  187. {
  188. VCE1ModuleInfo = ModuleManager.ModuleInfos["VCE1"];
  189. }
  190. }
  191. #endregion
  192. }
  193. }