ModuleManager.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System.Collections.Generic;
  2. using MECF.Framework.Common.DataCenter;
  3. using OpenSEMI.ClientBase;
  4. namespace VirgoUI.Client
  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. private static readonly List<string> ModuleNames = new List<string>{ "LP1", "LP2", "LP3", "EfemRobot", "Aligner1", "Aligner2", "Cooling1", "Cooling2", "Buffer", "PMA", "PMB", "Flipper" };
  13. public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>();
  14. static ModuleManager()
  15. {
  16. string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  17. var modules = moduleString.Split(',');
  18. foreach (var mod in modules)
  19. if(ModuleNames.Contains(mod.Trim()))
  20. ModulesID.Add(mod.Trim());
  21. }
  22. public static void Initialize()
  23. {
  24. ModuleInfos.Clear();
  25. foreach (string moduleID in ModulesID)
  26. {
  27. ModuleInfo modInfo = CreateModule(moduleID, true);
  28. ModuleInfos.Add(moduleID, modInfo);
  29. }
  30. }
  31. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  32. {
  33. ModuleInfo m_data;
  34. if (p_install)
  35. m_data = new ModuleInfo(p_modid, p_install, VirgoUI.Client.ClientApp.Instance.WaferStatusManager.WaferStatusDic[p_modid], false);
  36. else
  37. m_data = new ModuleInfo(p_modid, p_install, null, false);
  38. return m_data;
  39. }
  40. }
  41. }