LocalUIViewModelBase.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Aitex.Common.Util;
  8. using Aitex.Core.RT.Routine;
  9. using System.Xml;
  10. using MECF.Framework.UI.Client.ClientBase;
  11. using Aitex.Core.Util;
  12. namespace FurnaceUI.Models
  13. {
  14. public class FurnaceModuleUIViewModelBase : ModuleUiViewModelBase
  15. {
  16. public ModuleInfo FOUPA { get; set; }
  17. public ModuleInfo FOUPB { get; set; }
  18. public ModuleInfo FOUPC { get; set; }
  19. public ModuleInfo FOUPD { get; set; }
  20. public ModuleInfo Buffer { get; set; }
  21. public ModuleInfo PM1 { get; set; }
  22. #region Wafer info for machine
  23. public WaferInfo BufferWafer
  24. {
  25. get
  26. {
  27. if (ModuleManager.ModuleInfos["Buffer"].WaferManager.Wafers.Count > 0)
  28. return ModuleManager.ModuleInfos["Buffer"].WaferManager.Wafers[0];
  29. return null;
  30. }
  31. }
  32. public WaferInfo PM1Wafer
  33. {
  34. get
  35. {
  36. if (ModuleManager.ModuleInfos["PM1"].WaferManager.Wafers.Count > 0)
  37. return ModuleManager.ModuleInfos["PM1"].WaferManager.Wafers[0];
  38. return null;
  39. }
  40. }
  41. public WaferInfo EfemRobotWafer1
  42. {
  43. get
  44. {
  45. if (ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers.Count > 0)
  46. return ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers[0];
  47. return null;
  48. }
  49. }
  50. public WaferInfo EfemRobotWafer2
  51. {
  52. get
  53. {
  54. if (ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers.Count > 1)
  55. return ModuleManager.ModuleInfos["EfemRobot"].WaferManager.Wafers[1];
  56. return null;
  57. }
  58. }
  59. #endregion
  60. protected void InitFOUP()
  61. {
  62. FOUPA = ModuleManager.ModuleInfos["LP1"];
  63. FOUPB = ModuleManager.ModuleInfos["LP2"];
  64. //FOUPC = ModuleManager.ModuleInfos["LP3"];
  65. }
  66. protected void InitBuffer()
  67. {
  68. Buffer = ModuleManager.ModuleInfos["Buffer"];
  69. }
  70. protected void InitPM()
  71. {
  72. PM1 = ModuleManager.ModuleInfos["PM1"];
  73. }
  74. }
  75. public class FurnaceUIViewModelBase : UiViewModelBase
  76. {
  77. [Subscription("PM1.IsOnline")]
  78. public bool IsOnline { get; set; }
  79. public static List<string> GetXmlElement(string fileName, string type, bool isSystem = false)
  80. {
  81. List<string> result = new List<string>();
  82. XmlDocument xmlDoc = new XmlDocument();
  83. var cfDirPath = PathManager.GetCfgDir();
  84. xmlDoc.Load(cfDirPath + $"IO\\{fileName}.xml");
  85. var node = xmlDoc.SelectSingleNode("DeviceModelDefine") as XmlElement;
  86. foreach (XmlElement item in node.ChildNodes)
  87. {
  88. var classType = item.GetAttribute("classType");
  89. if (string.IsNullOrEmpty(classType)) continue;
  90. classType = classType.Split('.').LastOrDefault();
  91. if (type != classType) continue;
  92. foreach (XmlElement children in item.ChildNodes)
  93. {
  94. var key = $"PM1.{children.GetAttribute("id")}.DeviceData";
  95. if (result.Contains(key)) continue;
  96. result.Add(key);
  97. }
  98. }
  99. return result;
  100. }
  101. private string _leveldisplay;
  102. public string LevelDisplay
  103. {
  104. get
  105. {
  106. switch (BaseApp.Instance.UserContext.RoleName)
  107. {
  108. case "Manager":
  109. case "Engineer":
  110. _leveldisplay = "LEVEL3";
  111. break;
  112. case "Technician":
  113. _leveldisplay = "LEVEL2";
  114. break;
  115. case "Operator":
  116. _leveldisplay = "LEVEL1";
  117. break;
  118. default:
  119. _leveldisplay = "LEVEL1";
  120. break;
  121. }
  122. return _leveldisplay;
  123. }
  124. }
  125. public string SystemName { get; set; }
  126. private string _bATCHTitle = "LOAD A BATCH P";
  127. public string BATCHTitle
  128. {
  129. get => _bATCHTitle;
  130. set
  131. {
  132. _bATCHTitle = value;
  133. NotifyOfPropertyChange("BATCHTitle");
  134. }
  135. }
  136. public ModuleInfo FOUPA { get; set; }
  137. public ModuleInfo FOUPB { get; set; }
  138. public ModuleInfo FOUPC { get; set; }
  139. public ModuleInfo FOUPD { get; set; }
  140. //public ModuleInfo EFEM { get; set; }
  141. public ModuleInfo PM1 { get; set; }
  142. #region Wafer info for machine
  143. public WaferInfo PM1Wafer
  144. {
  145. get
  146. {
  147. if (ModuleManager.ModuleInfos["PM1"].WaferManager.Wafers.Count > 0)
  148. return ModuleManager.ModuleInfos["PM1"].WaferManager.Wafers[0];
  149. return null;
  150. }
  151. }
  152. public WaferInfo WaferRobotWafer1
  153. {
  154. get
  155. {
  156. if (ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers.Count > 0)
  157. return ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers[0];
  158. return null;
  159. }
  160. }
  161. public WaferInfo WaferRobotWafer2
  162. {
  163. get
  164. {
  165. if (ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers.Count > 1)
  166. return ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers[1];
  167. return null;
  168. }
  169. }
  170. public WaferInfo WaferRobotWafer3
  171. {
  172. get
  173. {
  174. if (ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers.Count > 2)
  175. return ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers[2];
  176. return null;
  177. }
  178. }
  179. public WaferInfo WaferRobotWafer4
  180. {
  181. get
  182. {
  183. if (ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers.Count > 3)
  184. return ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers[3];
  185. return null;
  186. }
  187. }
  188. public WaferInfo WaferRobotWafer5
  189. {
  190. get
  191. {
  192. if (ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers.Count > 4)
  193. return ModuleManager.ModuleInfos["WaferRobot"].WaferManager.Wafers[4];
  194. return null;
  195. }
  196. }
  197. #endregion
  198. protected void InitTM()
  199. {
  200. }
  201. protected void InitLL()
  202. {
  203. }
  204. protected void InitEFEM()
  205. {
  206. //EFEM = ModuleManager.ModuleInfos["EfemRobot"];
  207. }
  208. protected void InitFOUP()
  209. {
  210. //FOUPA = ModuleManager.ModuleInfos["LP1"];
  211. //FOUPB = ModuleManager.ModuleInfos["LP2"];
  212. //FOUPC = ModuleManager.ModuleInfos["LP3"];
  213. //FOUPD = ModuleManager.ModuleInfos["LP4"];
  214. }
  215. protected void InitBuffer()
  216. {
  217. //Buffer1 = ModuleManager.ModuleInfos["Buffer1"];
  218. //Buffer2 = ModuleManager.ModuleInfos["Buffer2"];
  219. //Robot1Wafer = ModuleManager.ModuleInfos["Robot1"];
  220. //Robot2Wafer = ModuleManager.ModuleInfos["Robot2"];
  221. }
  222. protected void InitPM()
  223. {
  224. }
  225. }
  226. }