using System; using System.Collections.Generic; using MECF.Framework.Common.DataCenter; using OpenSEMI.ClientBase; using Venus_Themes.Unity; namespace Venus_MainPages.Unity { public static class ModuleManager { public static event Action<FlashWaferInformation> FlashWaferEvent; public static void OnFlashWafer(FlashWaferInformation para) { FlashWaferEvent?.Invoke(para); } /// <summary> /// all module need init /// </summary> public static readonly List<string> ModulesID = new List<string>() { "LLA","LLB","TMRobot","LP1","LP2","LP3","EfemRobot","Aligner1" }; public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>(); static ModuleManager() { string installModules = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules"); if (installModules.Contains("PMA")) ModulesID.Add("PMA"); if (installModules.Contains("PMB")) ModulesID.Add("PMB"); if (installModules.Contains("PMC")) ModulesID.Add("PMC"); if (installModules.Contains("PMD")) ModulesID.Add("PMD"); if (installModules.Contains("VCE1")) ModulesID.Add("VCE1"); if (installModules.Contains("VPA")) ModulesID.Add("VPA"); FlashWaferEvent += ModuleManager_FlashWaferEvent; } private static void ModuleManager_FlashWaferEvent(FlashWaferInformation obj) { } public static void Initialize() { ModuleInfos.Clear(); foreach (string moduleID in ModulesID) { ModuleInfo modInfo = CreateModule(moduleID, true); ModuleInfos.Add(moduleID, modInfo); } } public static WaferStatusHandler CreateWaferStatusManager() { WaferStatusHandler WaferStatusManager; WaferStatusImp waferStatusImp = new WaferStatusImp(QueryDataClient.Instance.Service); WaferStatusManager = new WaferStatusHandler(waferStatusImp.GetWaferStatus, ModuleManager.ModulesID); WaferStatusManager.Handle(); return WaferStatusManager; } private static ModuleInfo CreateModule(string p_modid, bool p_install) { ModuleInfo m_data; if (p_install) m_data = new ModuleInfo(p_modid, p_install, CreateWaferStatusManager().WaferStatusDic[p_modid], false); else m_data = new ModuleInfo(p_modid, p_install, null, false); return m_data; } } public class FlashWaferInformation { public string ModuleName { get; set; } public int SoltId { get; set; } } }