using System.Collections.Generic; using System.Linq; using MECF.Framework.Common.DataCenter; using OpenSEMI.ClientBase; namespace VirgoUI.Client { public static class ModuleManager { /// /// all module need init /// public static readonly List ModulesID = new List(); private static readonly List ModuleNames = new List{ "LP1", "LP2", "LP3", "EfemRobot", "Aligner1", "Aligner2", "Cooling1", "Cooling2", "Buffer", "PMA", "PMB", "Flipper" }; public static Dictionary ModuleInfos { get; private set; } = new Dictionary(); static ModuleManager() { string moduleString = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules"); var modules = moduleString.Split(','); foreach(var mod in ModuleNames) { if(mod.Contains("LP")) ModulesID.Add(mod.Trim()); else if (modules.Contains(mod.Trim())) ModulesID.Add(mod.Trim()); } //foreach (var mod in modules) // if(ModuleNames.Contains(mod.Trim())) // ModulesID.Add(mod.Trim()); } public static void Initialize() { ModuleInfos.Clear(); foreach (string moduleID in ModulesID) { ModuleInfo modInfo = CreateModule(moduleID, true); ModuleInfos.Add(moduleID, modInfo); } } private static ModuleInfo CreateModule(string p_modid, bool p_install) { ModuleInfo m_data; if (p_install) m_data = new ModuleInfo(p_modid, p_install, VirgoUI.Client.ClientApp.Instance.WaferStatusManager.WaferStatusDic[p_modid], false); else m_data = new ModuleInfo(p_modid, p_install, null, false); return m_data; } } }