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;
}
}
}