123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using Aitex.Common.Util;
- using Aitex.Core.RT.DataCenter;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- using System.Xml;
- namespace MECF.Framework.Common.ToolLayout
- {
- public class ToolLayoutConfigManager : Singleton<ToolLayoutConfigManager>
- {
- #region 内部变量
- private List<string> _installedModules= new List<string>();
- #endregion
- #region 属性
- /// <summary>
- /// 已经安装好的模块集合
- /// </summary>
- public List<string> InstalledModules { get { return _installedModules; } }
- #endregion
- /// <summary>
- /// 初始化
- /// </summary>
- public void Initialize()
- {
- string xmlPath = PathManager.GetCfgDir() + "Layout\\ToolLayoutConfiguration.xml";
- XmlDocument xml = new XmlDocument();
- xml.Load(xmlPath);
- XmlNodeList itemsNode = xml.SelectNodes("ToolLayoutXmlRoot/Items/Item");
- foreach (var item in itemsNode)
- {
- XmlElement element = item as XmlElement;
- if (element == null)
- continue;
- string type= element.GetAttribute("i:type");
- switch (type)
- {
- case "Prewet":
- PrewetItemManager.Instance.InitializePrewetItem(element); break;
- case "Rinse":
- RinseItemManager.Instance.InitializeRinseItem(element); break;
- case "Reservoir":
- ReservoirItemManager.Instance.InitializeReservoirItem(element); break;
- case "Dryer":
- DryerItemManager.Instance.InitializeDryerItem(element); break;
- case "Buffer":
- BufferItemManager.Instance.InitializeBufferItem(element); break;
- case "SRD":
- SrdItemManager.Instance.InitialSRDItem(element); break;
- case "DummyCassette":
- DummyCasseteItemManager.Instance.InitializeDummyCasseteItem(element); break;
- case "SystemFacilities":
- FacilitiesItemManager.Instance.Initialize(element); break;
- case "SystemSafety":
- SafetyItemManager.Instance.Initialize(element); break;
- case "LoadPort":
- LoadPortItemManager.Instance.InitializeLoadPortItem(element); break;
- case "Transporter":
- TransporterItemManager.Instance.InitializeTransporterItem(element); break;
- case "PUF":
- PufItemManager.Instance.InitializePufItem(element); break;
- case "EFEM":
- EfemItemManager.Instance.InitializeEfemItem(element);break;
- case "Loader":
- LoaderItemManager.Instance.InitializeLoaderItem(element);break;
- case "Linmot":
- LinmotItemManager.Instance.InitializeLinmotItem(element); break;
- case "ResistivityProbe":
- ResistivityProbeItemManager.Instance.InitializeItem(element); break;
- case "PlatingPowerSupply":
- PowerSupplierItemManager.Instance.InitializeItem(element);break;
- case "CMMPowerSupply":
- CmmPowerItemManager.Instance.InitializeItem(element);break;
- case "TempControl":
- TemperatureItemManager.Instance.InitializeTemperatureItem(element);break;
- case "BarcodeReader":
- BarcodeReaderItemManager.Instance.InitializeItem(element); break;
- }
- }
- _installedModules.AddRange(RinseItemManager.Instance.InstalledModules);
- _installedModules.AddRange(ReservoirItemManager.Instance.InstalledModules);
- _installedModules.AddRange(MetalItemManager.Instance.InstalledModules);
- _installedModules.AddRange(PrewetItemManager.Instance.InstalledModules);
- _installedModules.AddRange(DryerItemManager.Instance.InstalledModules);
- _installedModules.AddRange(BufferItemManager.Instance.InstalledModules);
- _installedModules.AddRange(SrdItemManager.Instance.InstalledModules);
- _installedModules.AddRange(DummyCasseteItemManager.Instance.InstalledModules);
- _installedModules.AddRange(FacilitiesItemManager.Instance.InstalledModules);
- _installedModules.AddRange(SafetyItemManager.Instance.InstalledModules);
- _installedModules.AddRange(LoadPortItemManager.Instance.InstalledModules);
- _installedModules.AddRange(TransporterItemManager.Instance.InstalledModules);
- _installedModules.AddRange(PufItemManager.Instance.InstalledModules);
- _installedModules.AddRange(EfemItemManager.Instance.InstalledModules);
- _installedModules.AddRange(LoaderItemManager.Instance.InstalledModules);
- InitializeData();
- CellItemManager.Instance.InitializeLayoutCellItems();
- CellItemRecipeTimeManager.Instance.Initialize();
- MetalUsageManager.Instance.Initialize();
- ReservoirUsageManager.Instance.Initialize();
- }
- /// <summary>
- /// 初始化DATA
- /// </summary>
- private void InitializeData()
- {
- DATA.Subscribe("System.ReservoirMetals", () => ReservoirItemManager.Instance.ReservoirMetalsDictionary, SubscriptionAttribute.FLAG.IgnoreSaveDB);
- DATA.Subscribe("System.InstalledModules", () => _installedModules, SubscriptionAttribute.FLAG.IgnoreSaveDB);
- }
- /// <summary>
- /// 检验模块是否Installed
- /// </summary>
- /// <param name="module"></param>
- /// <returns></returns>
- public bool IsInstalled(ModuleName module)
- {
- return _installedModules.Contains(module.ToString());
- }
- }
- }
|