using Aitex.Core.RT.Device; using Aitex.Core.Util; using EFEM.RT.Modules; using Aitex.Sorter.Common; using Efem; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase; namespace EFEM.RT.Tasks { public class EmsTask : CheckImp, ITask { public EmsTask() { } public bool Execute(out string result, params string[] args) { string device = DeviceName.Robot; 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; } RobotBaseDevice robot = DEVICE.GetDevice(device); Singleton.Instance.IsEMSStop = false; if (!robot.Stop( )) { return false; } return true; } public bool? Monitor(out string result, params string[] args) { result = string.Empty; string device = DeviceName.Robot; RobotBaseDevice robot = DEVICE.GetDevice(device); if (robot.IsError) { return false; } if (robot.IsReady()) { Singleton.Instance.IsEMSStop = true; return true; } return null; } } }