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