Sic01/SicRT/Equipments/Schedulers/SchedulerModuleFactory.cs

72 lines
2.0 KiB
C#

using SicRT.Scheduler;
using MECF.Framework.Common.Equipment;
using System.Collections.Generic;
namespace SicRT.Modules.Schedulers
{
public class SchedulerModuleFactory
{
protected SchedulerTMRobot _tmRobot = new SchedulerTMRobot();
protected SchedulerBuffer _buffer = new SchedulerBuffer(ModuleName.Buffer);
protected SchedulerLoadLock _loadlock = new SchedulerLoadLock(ModuleName.LoadLock);
protected SchedulerPM _pm1 = new SchedulerPM(ModuleName.PM1);
//protected SchedulerPM _pm2 = new SchedulerPM(ModuleName.PM2) ;
protected SchedulerPreHeat _preHeat = new SchedulerPreHeat(ModuleName.PreHeat);
protected List<SchedulerPM> _lstPms = new List<SchedulerPM>();
protected List<SchedulerLoadLock> _lstLls = new List<SchedulerLoadLock>();
protected SchedulerModuleFactory()
{
_lstPms.AddRange(new[] { _pm1 });
//_lstPms.AddRange(new[] { _pm1, _pm2 });
_lstLls.AddRange(new[] { _loadlock });
}
protected SchedulerModule GetModule(string name)
{
switch (ModuleHelper.Converter(name))
{
case ModuleName.Buffer:
return _buffer;
case ModuleName.TMRobot:
return _tmRobot;
case ModuleName.PM1:
return _pm1;
//case ModuleName.PM2:
// return _pm2;
case ModuleName.PreHeat:
return _preHeat;
case ModuleName.LoadLock:
return _loadlock;
}
return null;
}
public void Reset()
{
_tmRobot.ResetTask();
foreach (var pm in _lstPms)
{
pm.ResetTask();
}
foreach (var ll in _lstLls)
{
ll.ResetTask();
}
_buffer.ResetTask();
}
}
}