ModuleManager.cs 3.0 KB

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