Files
XplorePlane/XP.Hardware.MotionControl/Abstractions/IRotaryAxis.cs
T

49 lines
1.8 KiB
C#

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