ArmExtendPolicy.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. using Aitex.Core.RT.Device;
  2. using athosRT.Devices.EFEM.Task;
  3. using MECF.Framework.Common.Equipment;
  4. using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace athosRT.Devices.EFEM.ABS
  11. {
  12. public class ArmExtendPolicy : CheckImp, IPolicy
  13. {
  14. public new bool Check(string device, out string reason)
  15. {
  16. reason = string.Empty;
  17. IServerModule entity = GetEntity("Robot");
  18. RobotBaseDevice device1 = DEVICE.GetDevice<RobotBaseDevice>("Robot");
  19. //如果robot处于非busy状态 || robot的Blade1/2Target不是device
  20. if (!entity.Busy || device1.Blade1Target != ModuleHelper.Converter(device) && device1.Blade2Target != ModuleHelper.Converter(device))
  21. {
  22. return true;
  23. }
  24. else
  25. {
  26. reason = "ARMEXTEND";
  27. return false;
  28. }
  29. }
  30. }
  31. }