Files
Denso/srcs/RobotNet10/RobotApp/RobotNet10.RobotApp/Hubs/CameraQrHub.cs
2026-07-03 16:31:37 +07:00

59 lines
1.6 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.SignalR;
using RobotNet10.RobotApp.Client.Shared.Devices;
using RobotNet10.RobotApp.Devices;
using RobotNet10.Shared.Geometry;
namespace RobotNet10.RobotApp.Hubs;
/// <summary>
/// SignalR Hub cho Camera QR device - cung cấp real-time QR detection data
/// </summary>
[Authorize]
public class CameraQrHub(IDeviceProvider deviceProvider) : Hub
{
/// <summary>
/// Lấy thông tin device (DeviceName) theo device ID
/// </summary>
public async Task<DeviceInfoDto?> GetDeviceInfo(string deviceId)
{
var device = deviceProvider.GetDevice(deviceId);
if (device is not ICameraQr)
{
return null;
}
return new DeviceInfoDto
{
DeviceId = device.DeviceId,
DeviceName = device.DeviceName
};
}
/// <summary>
/// Lấy dữ liệu Camera QR theo device ID
/// </summary>
public async Task<CameraQrDataDto?> GetCameraQrData(string deviceId)
{
var device = deviceProvider.GetDevice(deviceId);
if (device is not ICameraQr cameraQr)
{
return null;
}
return MapToDto(cameraQr);
}
/// <summary>
/// Map ICameraQr sang CameraQrDataDto
/// </summary>
private static CameraQrDataDto MapToDto(ICameraQr cameraQr)
{
return new CameraQrDataDto
{
IsConnected = cameraQr.IsConnected,
Codes = cameraQr.Codes,
};
}
}