using Aitex.Core.RT.Device; using Aitex.Core.RT.Device.Unit; using Aitex.Core.Util; using Aitex.Sorter.Common; using Efem; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase; namespace EFEM.RT.Tasks { public class SetTransferTask : CheckImp, ITask { public SetTransferTask() { } public bool Execute(out string result, params string[] args) { string device = Args2Unit(args.Length > 0 ?args[0]:string.Empty); IServerModule entity = GetEntity(device); if (entity == null || entity is LoadPortServerModule) { result = PARAM_NG; return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } ///TODO //LoadPort _device = DEVICE.GetDevice(device); //_device.Clamp(out result); var e84Lp = DEVICE.GetDevice(Singleton.Instance.GetE84LpName(device.ToString())); if(e84Lp == null) { return false; } if (bool.Parse(args[0])) return e84Lp.SetAMHS(out result); else return e84Lp.SetManual(out result); } public bool? Monitor(out string result, params string[] args) { result = string.Empty; string device = Args2Unit(args.Length > 0 ?args[0]:string.Empty); LoadPortBaseDevice _device = DEVICE.GetDevice(device); if (_device.IsError) { flag3 = ErrorCheckList3.INTERNAL; return CheckError(device, out result); } if (!_device.IsBusy && _device.ClampState == FoupClampState.Close) return true; return null; } } public class QueryTransferTask : CheckImp, ITask { public QueryTransferTask() { } public bool Execute(out string result, params string[] args) { string device = DeviceName.System; //EfemEventType type; //if (!Enum.TryParse(args[0], out type)) //{ // result = PARAM_NG; // return false; //} //EfemEventValue value; //if (!Enum.TryParse(args[1], out value)) //{ // result = PARAM_NG; // return false; //} if (!Check(device, out result)) { return false; } return true; } public bool? Monitor(out string result, params string[] args) { result = string.Empty; result = "LOAD"; //EfemEventType type; //Enum.TryParse(args[0], out type); //SystemEntity entity = (SystemEntity)GetEntity(DeviceName.System); //if (entity.QueryEvent(type)) // result = string.Format("ON"); //else // result = string.Format("OFF"); return true; } } }