Implementato sdk honeywell e metodi per lo scanner barcode
This commit is contained in:
32
SteUp.Shared/Core/BarcodeReader/BarcodeManager.cs
Normal file
32
SteUp.Shared/Core/BarcodeReader/BarcodeManager.cs
Normal 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")]); });
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace SteUp.Shared.Core.BarcodeReader.Contracts;
|
||||
|
||||
public interface IBarcodeManager
|
||||
{
|
||||
void Init();
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
8
SteUp.Shared/Core/BarcodeReader/Dto/BarcodeScanDto.cs
Normal file
8
SteUp.Shared/Core/BarcodeReader/Dto/BarcodeScanDto.cs
Normal 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; }
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
using CommunityToolkit.Mvvm.Messaging.Messages;
|
||||
|
||||
namespace SteUp.Shared.Core.Messages.Scanner;
|
||||
|
||||
public class ErrorScannerMessage(string? value = null) : ValueChangedMessage<string?>(value);
|
||||
5
SteUp.Shared/Core/Messages/Scanner/NewScannerMessage.cs
Normal file
5
SteUp.Shared/Core/Messages/Scanner/NewScannerMessage.cs
Normal 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);
|
||||
15
SteUp.Shared/Core/Messages/Scanner/OnScannerService.cs
Normal file
15
SteUp.Shared/Core/Messages/Scanner/OnScannerService.cs
Normal 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); });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user