using XP.Hardware.MotionControl.Abstractions.Enums;
namespace XP.Hardware.MotionControl.Abstractions
{
///
/// 旋转轴策略接口 | Rotary Axis Strategy Interface
/// 定义旋转轴的运动控制能力 | Defines rotary axis motion control capabilities
///
public interface IRotaryAxis
{
/// 轴标识 | Axis identifier
RotaryAxisId Id { get; }
/// 实际角度(度)| Actual angle (degrees)
double ActualAngle { get; }
/// 轴状态 | Axis status
AxisStatus Status { get; }
/// 是否启用 | Is enabled
bool Enabled { get; }
/// 移动到目标角度 | Move to target angle
/// 目标角度(度)| Target angle (degrees)
/// 操作结果 | Operation result
MotionResult MoveToTarget(double targetAngle, double? speed = null);
/// Jog 启动 | Jog start
/// true=正向,false=反向 | true=positive, false=negative
/// 操作结果 | Operation result
MotionResult JogStart(bool positive);
/// Jog 停止 | Jog stop
/// 操作结果 | Operation result
MotionResult JogStop();
/// 回零 | Home
/// 操作结果 | Operation result
MotionResult Home();
/// 停止 | Stop
/// 操作结果 | Operation result
MotionResult Stop();
/// 从 PLC 更新状态 | Update status from PLC
void UpdateStatus();
}
}