123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- using Aitex.Core.Common;
- using Aitex.Core.Util;
- using CyberX8_RT.Dispatch;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.Jobs;
- using MECF.Framework.Common.SubstrateTrackings;
- using MECF.Framework.Common.WaferHolder;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CyberX8_RT.Modules
- {
- public class FaModuleNotifier : Singleton<FaModuleNotifier>
- {
- /// <summary>
- /// FA回复
- /// </summary>
- private SchedulerFACallback _schedulerFACallback = new SchedulerFACallback();
- /// <summary>
- /// 上报WaferShuttle 任务启动
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- public void NotifyWaferShuttleJobStart(WaferHolderInfo waferHolderInfo)
- {
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferHolderInfo.CurrentControlJobId);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.WaferShuttleJobStart(controlJobInfo, waferHolderInfo.SequenceRecipe.Ppid, waferHolderInfo);
- }
- /// <summary>
- /// 上报WaferShuttle 任务结束
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- public void NotifyWaferShuttleJobEnd(WaferHolderInfo waferHolderInfo)
- {
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferHolderInfo.CurrentControlJobId);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.WaferShuttleJobEnd(controlJobInfo, waferHolderInfo.SequenceRecipe.Ppid, waferHolderInfo);
- }
- /// <summary>
- /// 上报WaferShuttle recipe启动
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifyWaferShuttleRecipeStart(WaferHolderInfo waferHolderInfo,string recipeId)
- {
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferHolderInfo.CurrentControlJobId);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.WaferShuttleRecipeStart(controlJobInfo, waferHolderInfo.SequenceRecipe.Ppid, waferHolderInfo,recipeId);
- }
- /// <summary>
- /// 上报WaferShuttle recipe完成
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifyWaferShuttleRecipeEnd(WaferHolderInfo waferHolderInfo, string recipeId,int processTimeLength)
- {
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferHolderInfo.CurrentControlJobId);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.WaferShuttleRecipeEnd(controlJobInfo, waferHolderInfo.SequenceRecipe.Ppid, waferHolderInfo, recipeId,processTimeLength);
- }
- /// <summary>
- /// 上报WaferShuttle recipe失败
- /// </summary>
- /// <param name="waferHolderInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifyWaferShuttleRecipeFailed(WaferHolderInfo waferHolderInfo, string recipeId)
- {
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferHolderInfo.CurrentControlJobId);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.WaferShuttleRecipeFailed(controlJobInfo, waferHolderInfo.SequenceRecipe.Ppid, waferHolderInfo, recipeId);
- }
- /// <summary>
- /// 上报SRD Recipe启动
- /// </summary>
- /// <param name="waferInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifySRDRecipeStart(ModuleName srdModule, string recipeId)
- {
- if (WaferManager.Instance.CheckNoWafer(srdModule, 0))
- {
- return;
- }
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);
- if (waferInfo == null || waferInfo.IsEmpty)
- {
- return;
- }
- if (waferInfo.ProcessJob == null)
- {
- return;
- }
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.SrdRecipeStart(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);
- }
- /// <summary>
- /// 上报SRD Recipe结束
- /// </summary>
- /// <param name="waferInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifySRDRecipeEnd(ModuleName srdModule, string recipeId)
- {
- if (WaferManager.Instance.CheckNoWafer(srdModule, 0))
- {
- return;
- }
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);
- if (waferInfo == null || waferInfo.IsEmpty)
- {
- return;
- }
- if (waferInfo.ProcessJob == null)
- {
- return;
- }
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.SrdRecipeEnd(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);
- }
- /// <summary>
- /// 上报SRD Recipe失败
- /// </summary>
- /// <param name="waferInfo"></param>
- /// <param name="recipeId"></param>
- public void NotifySRDRecipeFailed(ModuleName srdModule, string recipeId)
- {
- if (WaferManager.Instance.CheckNoWafer(srdModule, 0))
- {
- return;
- }
- WaferInfo waferInfo = WaferManager.Instance.GetWafer(srdModule, 0);
- if (waferInfo == null || waferInfo.IsEmpty)
- {
- return;
- }
- if (waferInfo.ProcessJob == null)
- {
- return;
- }
- ControlJobInfo controlJobInfo = JobProcesser.Instance.GetControlJobInfoByName(waferInfo.ProcessJob.ControlJobName);
- if (controlJobInfo == null)
- {
- return;
- }
- _schedulerFACallback.SrdRecipeFailed(controlJobInfo, waferInfo.SequenceName, recipeId, ((ModuleName)waferInfo.Station).ToString(), waferInfo.Slot);
- }
- }
- }
|