85 lines
2.4 KiB
C#
85 lines
2.4 KiB
C#
namespace RobotNet10.RobotApp.Modules;
|
|
|
|
/// <summary>
|
|
/// Interface cho Lift Module - Module điều khiển nâng hạ
|
|
/// </summary>
|
|
public interface ILiftModule
|
|
{
|
|
/// <summary>
|
|
/// Nâng lên (lift up)
|
|
/// </summary>
|
|
Task LiftUpAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Hạ xuống (lift down)
|
|
/// </summary>
|
|
Task LiftDownAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Dừng nâng/hạ ngay lập tức (khi đang di chuyển)
|
|
/// </summary>
|
|
Task LiftStopAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Di chuyển đến vị trí cụ thể
|
|
/// </summary>
|
|
/// <param name="position">Vị trí target (encoder counts)</param>
|
|
Task LiftToPositionAsync(int position, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Lấy vị trí hiện tại
|
|
/// </summary>
|
|
Task<int> GetCurrentPositionAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Kiểm tra module đã homed chưa
|
|
/// </summary>
|
|
Task<bool> IsHomedAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Thực hiện homing thủ công (nếu cần gọi lại sau khi fault hoặc thay đổi cơ khí)
|
|
/// </summary>
|
|
Task HomeAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// Chuyển chiều cao (m) sang vị trí encoder. Dùng cho action liftCameraByHeight.
|
|
/// </summary>
|
|
/// <param name="heightM">Chiều cao theo mét (trong khoảng MinHeightM..MaxHeightM từ config)</param>
|
|
/// <returns>Vị trí encoder tương ứng</returns>
|
|
int GetPositionFromHeightM(double heightM);
|
|
|
|
bool Enable { get; }
|
|
|
|
/// <summary>
|
|
/// Kiểm tra module đã sẵn sàng chưa (initialized và homed)
|
|
/// </summary>
|
|
bool IsReady { get; }
|
|
|
|
/// <summary>
|
|
/// Lấy trạng thái hiện tại của module
|
|
/// </summary>
|
|
LiftModuleState State { get; }
|
|
|
|
LiftPosition Position { get; }
|
|
}
|
|
|
|
public enum LiftPosition
|
|
{
|
|
Bottom,
|
|
Middle,
|
|
Top,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Trạng thái của Lift Module
|
|
/// </summary>
|
|
public enum LiftModuleState
|
|
{
|
|
Uninitialized,
|
|
Initializing,
|
|
Homing,
|
|
Ready,
|
|
Moving,
|
|
Error
|
|
}
|