|
@@ -27,6 +27,7 @@ using System.Reflection;
|
|
|
using Venus_RT.Modules.LPs;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using Venus_RT.Devices.EFEM;
|
|
|
+using Venus_RT.Modules.Schedulers;
|
|
|
|
|
|
namespace Venus_RT.Modules
|
|
|
{
|
|
@@ -476,10 +477,10 @@ namespace Venus_RT.Modules
|
|
|
return ModuleHelper.IsInstalled((ModuleName)args[0]);
|
|
|
});
|
|
|
OP.Subscribe("System.SETMCycle", (cmd, args) => CheckToPostMessage((int)MSG.SETMCycle, args));
|
|
|
- OP.Subscribe("System.CreateSEJob", (cmd, args) => CheckToPostMessage((int)MSG.CreateSEJob, args));
|
|
|
- OP.Subscribe("System.StartSEJob", (cmd, args) => CheckToPostMessage((int)MSG.StartSEJob, args));
|
|
|
- OP.Subscribe("System.ReturnAllSEWafer", (cmd, args) => CheckToPostMessage((int)MSG.SEReturnWafer, args));
|
|
|
- OP.Subscribe("System.SEAbort", (cmd, args) => CheckToPostMessage((int)MSG.SEAbort, args));
|
|
|
+ OP.Subscribe("System.CreateSEJob", (cmd, args) => CheckToPostMessage((int)MSG.CreateJob, args));
|
|
|
+ OP.Subscribe("System.StartSEJob", (cmd, args) => CheckToPostMessage((int)MSG.StartJob, args));
|
|
|
+ OP.Subscribe("System.ReturnAllSEWafer", (cmd, args) => CheckToPostMessage((int)MSG.ReturnAllWafer, args));
|
|
|
+ OP.Subscribe("System.SEAbort", (cmd, args) => CheckToPostMessage((int)MSG.AbortJob, args));
|
|
|
}
|
|
|
|
|
|
public bool CheckToPostMessage(int msg, params object[] args)
|
|
@@ -683,6 +684,7 @@ namespace Venus_RT.Modules
|
|
|
_seTMCycle = new SETMCycle(ModuleName.SETM);
|
|
|
_setransfer = new SEManualTransfer();
|
|
|
_sereturnWafer = new SEReturnWafer(_setransfer);
|
|
|
+ _AutoCycle = new VenusDispatcher();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -960,7 +962,7 @@ namespace Venus_RT.Modules
|
|
|
{
|
|
|
Dictionary<string, object> obj = (Dictionary<string, object>)objs[0];
|
|
|
var moduleName = (ModuleName)Enum.Parse(typeof(ModuleName), obj["Module"].ToString());
|
|
|
- if (EFEM.EfemDevice[moduleName].IsLoaded)
|
|
|
+ if ((Singleton<TransferModule>.Instance.GetScheduler(moduleName) as SchedulerLoadPort).IsLoaded)
|
|
|
{
|
|
|
return _AutoCycle.CreateJob(obj, out var reason);
|
|
|
}
|
|
@@ -1112,12 +1114,13 @@ namespace Venus_RT.Modules
|
|
|
}
|
|
|
private bool FsmStartSETMCycle(object[] objs)
|
|
|
{
|
|
|
- return _seTMCycle.Start(objs) == RState.Running;
|
|
|
+ //return _seTMCycle.Start(objs) == RState.Running;
|
|
|
+ return _AutoCycle.Start(objs) == RState.Running;
|
|
|
}
|
|
|
|
|
|
private bool FsmMonitorSETMCycle(object[] objs)
|
|
|
{
|
|
|
- RState ret = _seTMCycle.Monitor();
|
|
|
+ RState ret = _AutoCycle.Monitor();
|
|
|
if (ret == RState.Failed || ret == RState.Timeout)
|
|
|
{
|
|
|
PostMsg(MSG.ERROR);
|
|
@@ -1128,24 +1131,25 @@ namespace Venus_RT.Modules
|
|
|
}
|
|
|
private bool FsmStopSETMCycle(object[] objs)
|
|
|
{
|
|
|
- _seTMCycle.Abort();
|
|
|
+ _AutoCycle.Abort();
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
private bool FsmStartCreateSEJob(object[] objs)
|
|
|
{
|
|
|
- _seTMCycle.CreateJob((Dictionary<string, object>)objs[0]);
|
|
|
+ _AutoCycle.CreateJob((Dictionary<string, object>)objs[0], out string reason);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
private bool FsmStartSEJob(object[] objs)
|
|
|
{
|
|
|
- return _seTMCycle.StartJob(objs[0].ToString()) == RState.Running;
|
|
|
+ //return _seTMCycle.StartJob(objs[0].ToString()) == RState.Running;
|
|
|
+ return _AutoCycle.StartJob(objs[0].ToString(), out string reason);
|
|
|
}
|
|
|
|
|
|
private bool FsmSEJobMonitor(object[] objs)
|
|
|
{
|
|
|
- RState ret = _seTMCycle.Monitor();
|
|
|
+ RState ret = _AutoCycle.Monitor();
|
|
|
return ret == RState.End;
|
|
|
}
|
|
|
|
|
@@ -1182,7 +1186,7 @@ namespace Venus_RT.Modules
|
|
|
}
|
|
|
private bool SEAbortJob(object[] objs)
|
|
|
{
|
|
|
- _seTMCycle.AbortJob((string)objs[0], out var reason);
|
|
|
+ _AutoCycle.AbortJob((string)objs[0], out var reason);
|
|
|
return true;
|
|
|
}
|
|
|
private bool SEAbort(object[] objs)
|