123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- using Aitex.Core.Common;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.SubstrateTrackings;
- using CyberX8_RT.Modules.Dummy;
- using CyberX8_RT.Modules;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using MECF.Framework.Common.WaferHolder;
- using Aitex.Core.RT.Fsm;
- using CyberX8_RT.Modules.Buffer;
- using MECF.Framework.Common.ToolLayout;
- using MECF.Framework.RT.Core.Equipments;
- namespace CyberX8_RT.Dispatch
- {
- public class DummyWaferManager : Singleton<DummyWaferManager>
- {
- /// <summary>
- /// 加载工序完完毕的WaferHolder
- /// </summary>
- /// <returns></returns>
- public List<WaferHolderInfo> LoadCompletedWaferHolderInfo()
- {
- List<WaferHolderInfo> waferHolderInfos = new List<WaferHolderInfo>();
- List<string> dryerModules = DryerItemManager.Instance.InstalledModules;
- foreach (string item in dryerModules)
- {
- WaferHolderInfo waferHolderInfo = WaferHolderManager.Instance.GetWaferHolder(item);
- if (waferHolderInfo == null)
- {
- continue;
- }
- if (!Enum.TryParse(item, out ModuleName dryerModuleName))
- {
- continue;
- }
- if (WaferHolderTaskManager.Instance.CheckWaferHolderNotExist(waferHolderInfo))
- {
- if (WaferManager.Instance.CheckHasWafer(item, 0))
- {
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(dryerModuleName, 0);
- if (waferInfo != null && waferInfo.WaferType == WaferType.Production)
- {
- waferHolderInfos.Add(waferHolderInfo);
- return waferHolderInfos;
- }
- }
- if (WaferManager.Instance.CheckHasWafer(item, 1))
- {
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(dryerModuleName, 1);
- if (waferInfo != null &&waferInfo.WaferType == WaferType.Production)
- {
- waferHolderInfos.Add(waferHolderInfo);
- return waferHolderInfos;
- }
- }
- }
- }
- List<string> installBufferModules = BufferItemManager.Instance.InstalledModules.ToList();
- foreach (string item in installBufferModules)
- {
- ModuleName moduleName=(ModuleName)Enum.Parse(typeof(ModuleName), item);
- BufferEntity bufferEntity = Singleton<RouteManager>.Instance.GetModule<BufferEntity>(item);
- if(bufferEntity==null)
- {
- continue;
- }
- WaferHolderInfo waferHolderInfo=bufferEntity.WaferHolderInfo;
- if(waferHolderInfo==null)
- {
- continue;
- }
-
- if(WaferManager.Instance.CheckHasWafer(item,0))
- {
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(moduleName, 0);
- if(waferInfo!=null && waferInfo.ProcessState >= EnumWaferProcessStatus.InProcess&&waferInfo.WaferType==WaferType.Production)
- {
- waferHolderInfos.Add(waferHolderInfo);
- continue;
- }
- }
- if (WaferManager.Instance.CheckHasWafer(item, 1))
- {
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(moduleName, 1);
- if (waferInfo != null && waferInfo.ProcessState >= EnumWaferProcessStatus.InProcess&&waferInfo.WaferType==WaferType.Production)
- {
- waferHolderInfos.Add(waferHolderInfo);
- }
- }
- }
- return waferHolderInfos;
- }
- /// <summary>
- /// 通过WaferHolder加载DummyWafer
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- /// <returns></returns>
- public List<WaferInfo> LoadDummyWafersByWaferHolder(WaferHolderInfo waferHolderInfo)
- {
- List<WaferInfo> waferInfos = new List<WaferInfo>();
- if(ModuleHelper.IsInstalled(ModuleName.Dummy1))
- {
- LoadDummyWaferByDummyModule(ModuleName.Dummy1,waferHolderInfo.Id, waferInfos);
- }
- if(ModuleHelper.IsInstalled(ModuleName.Dummy2))
- {
- LoadDummyWaferByDummyModule(ModuleName.Dummy2,waferHolderInfo.Id, waferInfos);
- }
- return waferInfos;
- }
- /// <summary>
- /// 通过Dummy模块加载DummyWafer
- /// </summary>
- /// <param name="moduleName"></param>
- /// <param name="orginalModuleName"></param>
- /// <param name="waferInfos"></param>
- private void LoadDummyWaferByDummyModule(ModuleName dummyModuleName,string waferHolderId,List<WaferInfo> waferInfos)
- {
- DummyEntity dummyEntity = Singleton<RouteManager>.Instance.GetModule<DummyEntity>(dummyModuleName.ToString());
- if (dummyEntity == null)
- {
- return;
- }
- for (int i = 0; i < dummyEntity.MaxSlotNumber; i++)
- {
- if (WaferManager.Instance.CheckNoWafer(dummyModuleName, i))
- {
- continue;
- }
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(dummyModuleName, i);
- if (waferInfo == null)
- {
- continue;
- }
- if (waferInfo.OrginalWaferHolder == waferHolderId)
- {
- waferInfos.Add(waferInfo);
- }
- }
- }
- }
- }
|