using XP.Hardware.MotionControl.Abstractions.Enums;
namespace XP.Hardware.MotionControl.Abstractions
{
///
/// 直线轴策略接口 | Linear Axis Strategy Interface
/// 定义直线轴的运动控制能力 | Defines linear axis motion control capabilities
///
public interface ILinearAxis
{
/// 轴标识 | Axis identifier
AxisId Id { get; }
/// 实际位置(mm)| Actual position (mm)
double ActualPosition { get; }
/// 轴状态 | Axis status
AxisStatus Status { get; }
/// 正限位触发 | Positive limit triggered
bool PositiveLimitHit { get; }
/// 负限位触发 | Negative limit triggered
bool NegativeLimitHit { get; }
/// 移动到目标位置 | Move to target position
/// 目标位置(mm)| Target position (mm)
/// 操作结果 | Operation result
MotionResult MoveToTarget(double target, 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();
}
}