52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
using RobotNet10.RobotApp.Interfaces;
|
|
using RobotNet10.Shared.Sensor;
|
|
|
|
namespace RobotNet10.RobotApp.Devices;
|
|
|
|
/// <summary>
|
|
/// Interface cho thiết bị RF Handle (Remote Control Handle) - tay điều khiển RF với joystick
|
|
/// </summary>
|
|
public interface IRfHandle
|
|
{
|
|
/// <summary>
|
|
/// Event được trigger khi dữ liệu được cập nhật
|
|
/// </summary>
|
|
event Action? Updated;
|
|
|
|
// ====================== STATES ===========================
|
|
|
|
DateTime LastUpdateTime { get; }
|
|
|
|
int Heartbeat { get; }
|
|
bool RemoteReady { get; }
|
|
bool EStop { get; }
|
|
|
|
bool LiftUp { get; }
|
|
bool LiftDown { get; }
|
|
bool RotateLeft { get; }
|
|
bool RotateRight { get; }
|
|
|
|
bool ModeSelect { get; }
|
|
bool Enable { get; }
|
|
|
|
int Speed { get; }
|
|
double Linear { get; }
|
|
double Angular { get; }
|
|
|
|
/// <summary>
|
|
/// Current RF Handle mode (Default, Maintenance, Override, None)
|
|
/// </summary>
|
|
RFMode Mode { get; }
|
|
|
|
/// <summary>
|
|
/// Joy state hiện tại được cache (thread-safe)
|
|
/// </summary>
|
|
Joy? CurrentJoyState { get; }
|
|
|
|
/// <summary>
|
|
/// Đọc joy state từ thiết bị
|
|
/// </summary>
|
|
Task<Joy> ReadJoyStateAsync(CancellationToken cancellationToken = default);
|
|
}
|
|
|