ModuleManager.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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. FlashWaferEvent += ModuleManager_FlashWaferEvent;
  45. }
  46. private static void ModuleManager_FlashWaferEvent(FlashWaferInformation obj)
  47. {
  48. }
  49. public static void Initialize()
  50. {
  51. ModuleInfos.Clear();
  52. foreach (string moduleID in ModulesID)
  53. {
  54. ModuleInfo modInfo = CreateModule(moduleID, true);
  55. ModuleInfos.Add(moduleID, modInfo);
  56. }
  57. }
  58. public static WaferStatusHandler CreateWaferStatusManager()
  59. {
  60. WaferStatusHandler WaferStatusManager;
  61. WaferStatusImp waferStatusImp = new WaferStatusImp(QueryDataClient.Instance.Service);
  62. WaferStatusManager = new WaferStatusHandler(waferStatusImp.GetWaferStatus, ModuleManager.ModulesID);
  63. WaferStatusManager.Handle();
  64. return WaferStatusManager;
  65. }
  66. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  67. {
  68. ModuleInfo m_data;
  69. if (p_install)
  70. m_data = new ModuleInfo(p_modid, p_install, CreateWaferStatusManager().WaferStatusDic[p_modid], false);
  71. else
  72. m_data = new ModuleInfo(p_modid, p_install, null, false);
  73. return m_data;
  74. }
  75. }
  76. public class FlashWaferInformation
  77. {
  78. public string ModuleName { get; set; }
  79. public int SoltId { get; set; }
  80. }
  81. }