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");
}
}
}