using Aitex.Core.RT.Device; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts; using Aitex.Core.Util; using MECF.Framework.Common.Equipment; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.LoadPortBase; using Aitex.Core.RT.SCCore; using EFEM.RT.Devices; namespace EFEM.RT.Tasks { public class CloseDoorTask : CheckImp, ITask { public CloseDoorTask() { } public bool Execute(out string result, params string[] args) { string device = Args2Unit(args.Length > 0 ?args[0]:string.Empty); LoadPortServerModule entity = (LoadPortServerModule)GetEntity(device); if (entity == null) { 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; } var LPRobotActionIntervene = SC.GetValue("System.LPRobotActionIntervene"); if (LPRobotActionIntervene) { 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; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!Check(device, out result)) { return false; } if (!entity.Close(out result)) { return false; } return true; } 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) { flag1 = ErrorCheckList1.VAC | ErrorCheckList1.SENSOR | ErrorCheckList1.COMM | ErrorCheckList1.COMM2 | ErrorCheckList1.VACOFF; flag2 = ErrorCheckList2.RRTWAF | ErrorCheckList2.COMMAND | ErrorCheckList2.PODNG | ErrorCheckList2.VAC_S | ErrorCheckList2.SAFTY | ErrorCheckList2.L_KEY_LK ; flag3 = ErrorCheckList3.DRIVER | ErrorCheckList3.DRPOWERDOWN | ErrorCheckList3.HARDWARE | ErrorCheckList3.INTERNAL; return CheckError(device, out result); } if (_device.IsIdle) { Singleton.Instance.SendSigStatEvent(ModuleHelper.Converter(device)); return true; } return null; } } }