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

38 lines
1.6 KiB
C#

using System.Collections.Generic;
using XP.Hardware.MotionControl.Abstractions.Enums;
namespace XP.Hardware.MotionControl.Abstractions
{
/// <summary>
/// 运动系统顶层管理接口 | Motion System Top-Level Management Interface
/// 持有所有轴和安全门实例 | Holds all axis and safety door instances
/// </summary>
public interface IMotionSystem
{
/// <summary>按 AxisId 获取直线轴 | Get linear axis by AxisId</summary>
/// <param name="axisId">直线轴标识 | Linear axis identifier</param>
/// <returns>直线轴实例 | Linear axis instance</returns>
ILinearAxis GetLinearAxis(AxisId axisId);
/// <summary>按 RotaryAxisId 获取旋转轴 | Get rotary axis by RotaryAxisId</summary>
/// <param name="axisId">旋转轴标识 | Rotary axis identifier</param>
/// <returns>旋转轴实例 | Rotary axis instance</returns>
IRotaryAxis GetRotaryAxis(RotaryAxisId axisId);
/// <summary>安全门实例 | Safety door instance</summary>
ISafetyDoor SafetyDoor { get; }
/// <summary>轴复位实例 | Axis reset instance</summary>
IAxisReset AxisReset { get; }
/// <summary>所有直线轴 | All linear axes</summary>
IReadOnlyDictionary<AxisId, ILinearAxis> LinearAxes { get; }
/// <summary>所有旋转轴 | All rotary axes</summary>
IReadOnlyDictionary<RotaryAxisId, IRotaryAxis> RotaryAxes { get; }
/// <summary>更新所有轴和门的状态 | Update all axis and door status</summary>
void UpdateAllStatus();
}
}