syc_zhaoqianyan 66fc5b3b19 1.扫码枪实现
2.体重秤实现
3.打印机实现
2025-07-01 14:20:07 +08:00

37 lines
1.1 KiB
C#

using Microsoft.Extensions.Logging;
namespace Seyounth.Auto.Hs.Runtime.Scanner;
public class ScannerService : IScannerService
{
public ScannerService(ILogger<ScannerService> logger,IEnumerable<IScanner> scanners)
{
_logger = logger;
_scanners.AddRange(scanners);
//todo:向_scanners里添加HikScanner
}
public IReadOnlyList<IScanner> Scanners => _scanners;
private readonly ILogger<ScannerService> _logger;
private readonly List<IScanner> _scanners = new List<IScanner>();
public async Task StartAsync()
{
await Task.WhenAll(_scanners.Select(e => e.ConnectAsync()));
}
public async Task StopAsync()
{
await Task.WhenAll(_scanners.Select(x => x.DisconnectAsync()
.ContinueWith(t =>
{
if (t.IsCompletedSuccessfully)
_logger.LogInformation($"Scanner {x.Id} disconnected.");
else
_logger.LogError($"Scanner {x.Id} failed to disconnect, error: {t.Exception?.Message}");
})));
}
public event Action<IScanner, string>? OnScanned;
}