ModuleManager.cs 2.9 KB

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