123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using athosRT.Devices.EFEM.Task;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace athosRT.Devices.EFEM
- {
- public class TaskFactory
- {
- private Dictionary<string, ITaskT> _tasks = new Dictionary<string, ITaskT>();//查询字典获取要加入的task
- private List<string> _hideTasks = new List<string>();//任务添加的lsit
- public TaskFactory()
- {
- _tasks["MOV.INIT"] = (ITaskT)new TaskT<InitTask>(EfemCommandType.MOV, EfemCommand.INIT);
- _tasks["MOV.ORGSH"] = (ITaskT)new TaskT<OrgshTask>(EfemCommandType.MOV, EfemCommand.ORGSH);
- _tasks["MOV.HOME"] = (ITaskT)new TaskT<HomeTask>(EfemCommandType.MOV, EfemCommand.HOME);
- _tasks["MOV.LOCK"] = (ITaskT)new TaskT<LockTask>(EfemCommandType.MOV, EfemCommand.LOCK);
- _tasks["MOV.UNLOCK"] = (ITaskT)new TaskT<UnlockTask>(EfemCommandType.MOV, EfemCommand.UNLOCK);
- _tasks["MOV.DOCK"] = (ITaskT)new TaskT<DockTask>(EfemCommandType.MOV, EfemCommand.DOCK);
- _tasks["MOV.UNDOCK"] = (ITaskT)new TaskT<UnDockTask>(EfemCommandType.MOV, EfemCommand.UNDOCK);
- _tasks["MOV.OPEN"] = (ITaskT)new TaskT<OpenTask>(EfemCommandType.MOV, EfemCommand.OPEN);
- _tasks["MOV.CLOSE"] = (ITaskT)new TaskT<CloseDoorTask>(EfemCommandType.MOV, EfemCommand.CLOSE);
- _tasks["GET.CSTID"] = (ITaskT)new TaskT<CstidTask>(EfemCommandType.GET, EfemCommand.CSTID);
- _tasks["SET.CSTID"] = (ITaskT)new TaskT<SetCstidTask>(EfemCommandType.SET, EfemCommand.CSTID);
- _tasks["MOV.WAFSH"] = (ITaskT)new TaskT<WafshTask>(EfemCommandType.MOV, EfemCommand.WAFSH);
- _tasks["GET.MAPDT"] = (ITaskT)new TaskT<QueryWaferMappingTask>(EfemCommandType.GET, EfemCommand.MAPDT);
- _tasks["MOV.ALIGN"] = (ITaskT)new TaskT<AlignTaskEx>(EfemCommandType.MOV, EfemCommand.ALIGN);
- _tasks["MOV.ALIGN2"] = (ITaskT)new TaskT<AlignTaskEx2>(EfemCommandType.MOV, EfemCommand.ALIGN2);
- _tasks["MOV.LIFT"] = (ITaskT)new TaskT<LiftTask>(EfemCommandType.MOV, EfemCommand.LIFT);
- _tasks["MOV.GOTO"] = (ITaskT)new TaskT<GotoTask>(EfemCommandType.MOV, EfemCommand.GOTO);
- _tasks["MOV.LOAD"] = (ITaskT)new TaskT<PickTask>(EfemCommandType.MOV, EfemCommand.LOAD);
- _tasks["MOV.UNLOAD"] = (ITaskT)new TaskT<PlaceTask>(EfemCommandType.MOV, EfemCommand.UNLOAD);
- _tasks["MOV.TRANS"] = (ITaskT)new TaskT<TransferTask>(EfemCommandType.MOV, EfemCommand.TRANS);
- _tasks["MOV.CHANGE"] = (ITaskT)new TaskT<ExchangeTask>(EfemCommandType.MOV, EfemCommand.CHANGE);
- _tasks["MOV.MPNT"] = (ITaskT)new TaskT<MpntTask>(EfemCommandType.MOV, EfemCommand.MPNT);
- _tasks["MOV.EMS"] = (ITaskT)new TaskT<EmsTask>(EfemCommandType.MOV, EfemCommand.EMS);
- _tasks["MOV.HOLD"] = (ITaskT)new TaskT<HoldTask>(EfemCommandType.MOV, EfemCommand.HOLD);
- _tasks["MOV.RESTR"] = (ITaskT)new TaskT<RestrTask>(EfemCommandType.MOV, EfemCommand.RESTR);
- _tasks["MOV.ABORT"] = (ITaskT)new TaskT<AbortTask>(EfemCommandType.MOV, EfemCommand.ABORT);
- _tasks["SET.ERROR"] = (ITaskT)new TaskT<ClearErrorTask>(EfemCommandType.SET, EfemCommand.ERROR);
- _tasks["GET.ERROR"] = (ITaskT)new TaskT<QueryErrorTask>(EfemCommandType.GET, EfemCommand.ERROR);
- _tasks["SET.THICKNESS"] = (ITaskT)new TaskT<ThicknessTask>(EfemCommandType.SET, EfemCommand.THICKNESS);
- _tasks["GET.THICKNESS"] = (ITaskT)new TaskT<GetThicknessTask>(EfemCommandType.GET, EfemCommand.THICKNESS);
- _tasks["SET.EVENT"] = (ITaskT)new TaskT<SetEventTask>(EfemCommandType.SET, EfemCommand.EVENT);
- _tasks["GET.EVENT"] = (ITaskT)new TaskT<QueryEventTask>(EfemCommandType.GET, EfemCommand.EVENT);
- _tasks["SET.SIGOUT"] = (ITaskT)new TaskT<SigoutTask>(EfemCommandType.SET, EfemCommand.SIGOUT);
- _tasks["GET.SIGSTAT"] = (ITaskT)new TaskT<SigStatTask>(EfemCommandType.GET, EfemCommand.SIGSTAT);
- _tasks["SET.CLAMP"] = (ITaskT)new TaskT<SetClampTask>(EfemCommandType.SET, EfemCommand.CLAMP);
- _tasks["GET.CLAMP"] = (ITaskT)new TaskT<GetClampTask>(EfemCommandType.GET, EfemCommand.CLAMP);
- _tasks["SET.MODE"] = (ITaskT)new TaskT<SetModeTask>(EfemCommandType.SET, EfemCommand.MODE);
- _tasks["GET.MODE"] = (ITaskT)new TaskT<QueryModeTask>(EfemCommandType.GET, EfemCommand.MODE);
- _tasks["MOV.TRANSREQ"] = (ITaskT)new TaskT<SetTransferTask>(EfemCommandType.MOV, EfemCommand.TRANSREQ);
- _tasks["GET.TRANSREQ"] = (ITaskT)new TaskT<QueryTransferTask>(EfemCommandType.GET, EfemCommand.TRANSREQ);
- _tasks["GET.STATE"] = (ITaskT)new TaskT<QueryStateTask>(EfemCommandType.GET, EfemCommand.STATE);
- }
- public bool UnSupport(EfemCommandType type, EfemCommand cmd)
- {
- string key = string.Format("{0}.{1}", (object)type, (object)cmd);
- return _hideTasks.Exists((Predicate<string>)(item => item == key)) || !this._tasks.ContainsKey(key);//检查任务中是否有 或者 字典中有没有此任务
- }
- public ITaskT Create(EfemCommandType type, EfemCommand cmd) => !this.UnSupport(type, cmd) ? (ITaskT)((ICloneable)this._tasks[string.Format("{0}.{1}", (object)type, (object)cmd)]).Clone() : (ITaskT)null;
- }
- }
|