Implementato sdk honeywell e metodi per lo scanner barcode

This commit is contained in:
2026-02-24 17:49:25 +01:00
parent e8adb76256
commit 7fa96eeb09
27 changed files with 477 additions and 53 deletions

View File

@@ -0,0 +1,32 @@
using CommunityToolkit.Mvvm.Messaging;
using SteUp.Shared.Core.BarcodeReader.Contracts;
using SteUp.Shared.Core.Messages.Scanner;
namespace SteUp.Shared.Core.BarcodeReader;
public class BarcodeManager(
IBarcodeReaderService scanner,
IMessenger messenger) : IBarcodeManager
{
public void Init()
{
if (!scanner.IsRightAdapter())
{
Console.WriteLine("Dispositivo non compatibile con lo scanner Honeywell.");
return;
}
scanner.Register(
onScanSuccessful: dto =>
{
messenger.Send(new NewScannerMessage(dto.StringValue));
},
onScanFailed: ex =>
{
messenger.Send(new ErrorScannerMessage(ex.Message));
}
);
scanner.Init(() => { scanner.ChangeSettings([("TRIGGER_SCAN_MODE", "ONE_SHOT")]); });
}
}

View File

@@ -0,0 +1,6 @@
namespace SteUp.Shared.Core.BarcodeReader.Contracts;
public interface IBarcodeManager
{
void Init();
}

View File

@@ -0,0 +1,14 @@
using SteUp.Shared.Core.BarcodeReader.Dto;
namespace SteUp.Shared.Core.BarcodeReader.Contracts;
public interface IBarcodeReaderService
{
bool IsRightAdapter();
void Init(Action onDeviceReady);
void Deinit();
void Register(Action<BarcodeScanDto> onScanSuccessful, Action<Exception> onScanFailed);
string GetAdapterName();
void OnKeyEvent(object keyEvent);
void ChangeSettings(List<(string Key, object Value)> settings);
}

View File

@@ -0,0 +1,8 @@
namespace SteUp.Shared.Core.BarcodeReader.Dto;
public class BarcodeScanDto
{
public string? StringValue { get; set; }
public string? Type { get; set; }
public string? Name { get; set; }
}

View File

@@ -1,5 +1,6 @@
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account;
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Device;
using SteUp.Shared.Core.BarcodeReader.Contracts;
using SteUp.Shared.Core.Data.Contracts;
using SteUp.Shared.Core.Dto;
using SteUp.Shared.Core.Dto.PageState;

View File

@@ -0,0 +1,5 @@
using CommunityToolkit.Mvvm.Messaging.Messages;
namespace SteUp.Shared.Core.Messages.Scanner;
public class ErrorScannerMessage(string? value = null) : ValueChangedMessage<string?>(value);

View File

@@ -0,0 +1,5 @@
using CommunityToolkit.Mvvm.Messaging.Messages;
namespace SteUp.Shared.Core.Messages.Scanner;
public class NewScannerMessage(string? value = null) : ValueChangedMessage<string?>(value);

View File

@@ -0,0 +1,15 @@
using CommunityToolkit.Mvvm.Messaging;
namespace SteUp.Shared.Core.Messages.Scanner;
public class OnScannerService
{
public event Action<string?>? OnNewScanSuccessful;
public event Action<string?>? OnErrorScan;
public OnScannerService(IMessenger messenger)
{
messenger.Register<NewScannerMessage>(this, (_, x) => { OnNewScanSuccessful?.Invoke(x.Value); });
messenger.Register<ErrorScannerMessage>(this, (_, x) => { OnErrorScan?.Invoke(x.Value); });
}
}