ModuleManager.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using MECF.Framework.Common.DataCenter;
  4. using OpenSEMI.ClientBase;
  5. namespace VirgoUI.Client
  6. {
  7. public static class ModuleManager
  8. {
  9. /// <summary>
  10. /// all module need init
  11. /// </summary>
  12. public static readonly List<string> ModulesID = new List<string>();
  13. private static readonly List<string> ModuleNames = new List<string>{ "LP1", "LP2", "LP3", "EfemRobot", "Aligner1", "Aligner2", "Cooling1", "Cooling2", "Buffer", "PMA", "PMB", "Flipper" };
  14. public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>();
  15. static ModuleManager()
  16. {
  17. string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  18. var modules = moduleString.Split(',');
  19. foreach(var mod in ModuleNames)
  20. {
  21. if(mod.Contains("LP"))
  22. ModulesID.Add(mod.Trim());
  23. else if (modules.Contains(mod.Trim()))
  24. ModulesID.Add(mod.Trim());
  25. }
  26. //foreach (var mod in modules)
  27. // if(ModuleNames.Contains(mod.Trim()))
  28. // ModulesID.Add(mod.Trim());
  29. }
  30. public static void Initialize()
  31. {
  32. ModuleInfos.Clear();
  33. foreach (string moduleID in ModulesID)
  34. {
  35. ModuleInfo modInfo = CreateModule(moduleID, true);
  36. ModuleInfos.Add(moduleID, modInfo);
  37. }
  38. }
  39. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  40. {
  41. ModuleInfo m_data;
  42. if (p_install)
  43. m_data = new ModuleInfo(p_modid, p_install, VirgoUI.Client.ClientApp.Instance.WaferStatusManager.WaferStatusDic[p_modid], false);
  44. else
  45. m_data = new ModuleInfo(p_modid, p_install, null, false);
  46. return m_data;
  47. }
  48. }
  49. }