ModuleManager.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using System;
  2. using System.Collections.Generic;
  3. using MECF.Framework.Common.DataCenter;
  4. using OpenSEMI.ClientBase;
  5. using Venus_Core;
  6. using Venus_Themes.Unity;
  7. namespace Venus_MainPages.Unity
  8. {
  9. public static class ModuleManager
  10. {
  11. public static PressureType ModulePressureType= (PressureType)Convert.ToInt32(QueryDataClient.Instance.Service.GetConfig("System.PressureUnitType"));
  12. public static event Action<FlashWaferInformation> FlashWaferEvent;
  13. public static void OnFlashWafer(FlashWaferInformation para)
  14. {
  15. FlashWaferEvent?.Invoke(para);
  16. }
  17. /// <summary>
  18. /// all module need init
  19. /// </summary>
  20. public static readonly List<string> ModulesID = new List<string>()
  21. {
  22. "LLA","LLB","TMRobot","LP1","LP2","LP3","EfemRobot","Aligner1"
  23. };
  24. public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>();
  25. static ModuleManager()
  26. {
  27. string installModules = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  28. if (installModules.Contains("PMA"))
  29. ModulesID.Add("PMA");
  30. if (installModules.Contains("PMB"))
  31. ModulesID.Add("PMB");
  32. if (installModules.Contains("PMC"))
  33. ModulesID.Add("PMC");
  34. if (installModules.Contains("PMD"))
  35. ModulesID.Add("PMD");
  36. if (installModules.Contains("VCE1"))
  37. ModulesID.Add("VCE1");
  38. if (installModules.Contains("VCEA"))
  39. ModulesID.Add("VCEA");
  40. if (installModules.Contains("VCEB"))
  41. ModulesID.Add("VCEB");
  42. if (installModules.Contains("VPA"))
  43. ModulesID.Add("VPA");
  44. if (installModules.Contains("Aligner1"))
  45. ModulesID.Add("Aligner1");
  46. FlashWaferEvent += ModuleManager_FlashWaferEvent;
  47. }
  48. private static void ModuleManager_FlashWaferEvent(FlashWaferInformation obj)
  49. {
  50. }
  51. public static void Initialize()
  52. {
  53. ModuleInfos.Clear();
  54. foreach (string moduleID in ModulesID)
  55. {
  56. ModuleInfo modInfo = CreateModule(moduleID, true);
  57. ModuleInfos.Add(moduleID, modInfo);
  58. }
  59. }
  60. public static WaferStatusHandler CreateWaferStatusManager()
  61. {
  62. WaferStatusHandler WaferStatusManager;
  63. WaferStatusImp waferStatusImp = new WaferStatusImp(QueryDataClient.Instance.Service);
  64. WaferStatusManager = new WaferStatusHandler(waferStatusImp.GetWaferStatus, ModuleManager.ModulesID);
  65. WaferStatusManager.Handle();
  66. return WaferStatusManager;
  67. }
  68. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  69. {
  70. ModuleInfo m_data;
  71. if (p_install)
  72. m_data = new ModuleInfo(p_modid, p_install, CreateWaferStatusManager().WaferStatusDic[p_modid], false);
  73. else
  74. m_data = new ModuleInfo(p_modid, p_install, null, false);
  75. return m_data;
  76. }
  77. }
  78. public class FlashWaferInformation
  79. {
  80. public string ModuleName { get; set; }
  81. public int SoltId { get; set; }
  82. }
  83. }