ModuleManager.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System.Collections.Generic;
  2. using MECF.Framework.Common.DataCenter;
  3. using OpenSEMI.ClientBase;
  4. namespace Venus_MainPages.Unity
  5. {
  6. public static class ModuleManager
  7. {
  8. /// <summary>
  9. /// all module need init
  10. /// </summary>
  11. public static readonly List<string> ModulesID = new List<string>()
  12. {
  13. "LLA","LLB","TMRobot","LP1","LP2","LP3","EfemRobot","Aligner1"
  14. };
  15. public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>();
  16. static ModuleManager()
  17. {
  18. string installModules = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  19. if (installModules.Contains("PMA"))
  20. ModulesID.Add("PMA");
  21. if (installModules.Contains("PMB"))
  22. ModulesID.Add("PMB");
  23. if (installModules.Contains("PMC"))
  24. ModulesID.Add("PMC");
  25. if (installModules.Contains("PMD"))
  26. ModulesID.Add("PMD");
  27. if (installModules.Contains("VCE1"))
  28. ModulesID.Add("VCE1");
  29. }
  30. public static void Initialize()
  31. {
  32. ModuleInfos.Clear();
  33. foreach (string moduleID in ModulesID)
  34. {
  35. ModuleInfo modInfo = CreateModule(moduleID, true);
  36. ModuleInfos.Add(moduleID, modInfo);
  37. }
  38. }
  39. public static WaferStatusHandler CreateWaferStatusManager()
  40. {
  41. WaferStatusHandler WaferStatusManager;
  42. WaferStatusImp waferStatusImp = new WaferStatusImp(QueryDataClient.Instance.Service);
  43. WaferStatusManager = new WaferStatusHandler(waferStatusImp.GetWaferStatus, ModuleManager.ModulesID);
  44. WaferStatusManager.Handle();
  45. return WaferStatusManager;
  46. }
  47. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  48. {
  49. ModuleInfo m_data;
  50. if (p_install)
  51. m_data = new ModuleInfo(p_modid, p_install, CreateWaferStatusManager().WaferStatusDic[p_modid], false);
  52. else
  53. m_data = new ModuleInfo(p_modid, p_install, null, false);
  54. return m_data;
  55. }
  56. }
  57. }