Initial commit
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
using RobotNet10.RobotApp.Client.Shared.Devices;
|
||||
|
||||
namespace RobotNet10.RobotApp.Devices;
|
||||
|
||||
/// <summary>
|
||||
/// Interface cung cấp các chức năng để quản lý và truy xuất devices
|
||||
/// </summary>
|
||||
public interface IDeviceProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// Lấy device theo deviceId
|
||||
/// </summary>
|
||||
/// <param name="deviceId">Định danh duy nhất của device</param>
|
||||
/// <returns>Device nếu tìm thấy, null nếu không tìm thấy</returns>
|
||||
DeviceBase? GetDevice(string deviceId);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy device theo deviceId (async)
|
||||
/// </summary>
|
||||
/// <param name="deviceId">Định danh duy nhất của device</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>Device nếu tìm thấy, null nếu không tìm thấy</returns>
|
||||
Task<DeviceBase?> GetDeviceAsync(string deviceId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy device theo deviceType (lấy device đầu tiên tìm thấy)
|
||||
/// </summary>
|
||||
/// <param name="deviceType">Loại thiết bị</param>
|
||||
/// <returns>Device nếu tìm thấy, null nếu không tìm thấy</returns>
|
||||
DeviceBase? GetDeviceByType(DeviceType deviceType);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy device theo deviceType (async)
|
||||
/// </summary>
|
||||
/// <param name="deviceType">Loại thiết bị</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>Device nếu tìm thấy, null nếu không tìm thấy</returns>
|
||||
Task<DeviceBase?> GetDeviceByTypeAsync(DeviceType deviceType, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy tất cả devices theo deviceType
|
||||
/// </summary>
|
||||
/// <param name="deviceType">Loại thiết bị</param>
|
||||
/// <returns>Danh sách devices của loại được chỉ định</returns>
|
||||
IReadOnlyList<DeviceBase> GetDevicesByType(DeviceType deviceType);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy tất cả devices theo deviceType (async)
|
||||
/// </summary>
|
||||
/// <param name="deviceType">Loại thiết bị</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>Danh sách devices của loại được chỉ định</returns>
|
||||
Task<IReadOnlyList<DeviceBase>> GetDevicesByTypeAsync(DeviceType deviceType, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy tất cả devices
|
||||
/// </summary>
|
||||
/// <returns>Danh sách tất cả devices</returns>
|
||||
IReadOnlyList<DeviceBase> GetAllDevices();
|
||||
|
||||
/// <summary>
|
||||
/// Lấy tất cả devices (async)
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>Danh sách tất cả devices</returns>
|
||||
Task<IReadOnlyList<DeviceBase>> GetAllDevicesAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Kiểm tra device có tồn tại không
|
||||
/// </summary>
|
||||
/// <param name="deviceId">Định danh của device</param>
|
||||
/// <returns>True nếu device tồn tại, false nếu không</returns>
|
||||
bool ContainsDevice(string deviceId);
|
||||
|
||||
/// <summary>
|
||||
/// Lấy số lượng devices
|
||||
/// </summary>
|
||||
/// <returns>Số lượng devices đã đăng ký</returns>
|
||||
int GetDeviceCount();
|
||||
|
||||
/// <summary>
|
||||
/// Lấy số lượng devices theo deviceType
|
||||
/// </summary>
|
||||
/// <param name="deviceType">Loại thiết bị</param>
|
||||
/// <returns>Số lượng devices của loại được chỉ định</returns>
|
||||
int GetDeviceCountByType(DeviceType deviceType);
|
||||
|
||||
/// <summary>
|
||||
/// Kiểm tra xem tất cả devices đã được load chưa
|
||||
/// </summary>
|
||||
bool AreDevicesLoaded { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Kiểm tra xem tất cả devices đã kết nối chưa
|
||||
/// </summary>
|
||||
bool AreDevicesConnected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Đợi cho đến khi tất cả devices đã được load
|
||||
/// </summary>
|
||||
/// <param name="timeout">Timeout để đợi</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>True nếu devices đã load, false nếu timeout</returns>
|
||||
Task<bool> WaitForDevicesLoadedAsync(TimeSpan timeout, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Đợi cho đến khi tất cả devices đã kết nối
|
||||
/// </summary>
|
||||
/// <param name="timeout">Timeout để đợi</param>
|
||||
/// <param name="cancellationToken">Cancellation token</param>
|
||||
/// <returns>True nếu devices đã connect, false nếu timeout</returns>
|
||||
Task<bool> WaitForDevicesConnectedAsync(TimeSpan timeout, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Event được kích hoạt khi tất cả devices đã được load
|
||||
/// </summary>
|
||||
event EventHandler? DevicesLoaded;
|
||||
|
||||
/// <summary>
|
||||
/// Event được kích hoạt khi tất cả devices đã kết nối
|
||||
/// </summary>
|
||||
event EventHandler? DevicesConnected;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user