using Aitex.Core.RT.Routine; using MECF.Framework.Common.CommonData.PUF; using MECF.Framework.Common.Routine; using CyberX8_Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CyberX8_RT.Devices.AXIS.GalilLipsel { public class GalilLipselSwitchOffRoutine : RoutineBase, IRoutine { private enum SwitchOffStep { SwitchOff, End } #region 内部变量 private JetAxisBase _axis; #endregion public GalilLipselSwitchOffRoutine(string module,JetAxisBase axis) : base(module) { _axis = axis; } public void Abort() { Runner.Stop("Manual Abort"); } public RState Monitor() { Runner.Run(SwitchOffStep.SwitchOff,SwitchOff,CheckSwitchOff,1000) .End(SwitchOffStep.End,NullFun,100); return Runner.Status; } /// /// 下电 /// /// public bool SwitchOff() { return _axis.WriteSwitchOff(); } private bool CheckSwitchOff() { return !_axis.IsSwitchOn; } public RState Start(params object[] objs) { return Runner.Start(Module, "Switch Off"); } } }