print server with new concept

This commit is contained in:
EugeneTes
2026-01-16 12:00:24 +01:00
parent 147265358f
commit 5229cac987
30 changed files with 694 additions and 217 deletions

View File

@@ -1,26 +0,0 @@
using Inspectron.Epson;
namespace EpsonPrintService;
/// <summary>
/// Simple console implementation that logs discovered printers to the console
/// </summary>
public class ConsoleDiscoveredPrintersReceiver : IDiscoveredPrintersReceiver
{
public Task OnPrintersDiscoveredAsync(IReadOnlyList<DiscoveredPrinter> printers)
{
Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] Discovered printers changed. Found {printers.Count} printer(s):");
foreach (var printer in printers)
{
Console.WriteLine($" - {printer.IPAddress}");
}
if (printers.Count == 0)
{
Console.WriteLine(" (no printers found)");
}
return Task.CompletedTask;
}
}

View File

@@ -1,15 +0,0 @@
using Inspectron.Epson;
namespace EpsonPrintService;
/// <summary>
/// Interface for receiving discovered printer updates
/// </summary>
public interface IDiscoveredPrintersReceiver
{
/// <summary>
/// Called when the list of discovered printers has changed
/// </summary>
/// <param name="printers">The current list of discovered printers</param>
Task OnPrintersDiscoveredAsync(IReadOnlyList<DiscoveredPrinter> printers);
}

View File

@@ -1,4 +1,5 @@
using Inspectron.Epson;
using Inspectron.Epson.PrintServer.ConfigurationSources;
using Microsoft.Extensions.Logging;
namespace EpsonPrintService;
@@ -20,15 +21,13 @@ public class PrinterDiscoveryBackgroundTask
public PrinterDiscoveryBackgroundTask(
IDiscoveryService discoveryService,
IDiscoveredPrintersReceiver receiver,
ILogger logger,
TimeSpan? interval = null,
TimeSpan? discoveryTimeout = null)
ILogger logger)
{
_discoveryService = discoveryService;
_receiver = receiver;
_logger = logger;
_interval = interval ?? TimeSpan.FromSeconds(30);
_discoveryTimeout = discoveryTimeout ?? TimeSpan.FromSeconds(3);
_interval = TimeSpan.FromSeconds(30);
_discoveryTimeout = TimeSpan.FromSeconds(3);
}
/// <summary>
@@ -68,6 +67,11 @@ public class PrinterDiscoveryBackgroundTask
try
{
var printers = await _discoveryService.DiscoverPrintersAsync(_discoveryTimeout);
printers.Add(new DiscoveredPrinter()
{
IPAddress = "127.0.0.1",
ModelName = "TM-T30III",
});
var currentIps = printers.Select(p => p.IPAddress).ToHashSet();
if (HasConfigurationChanged(currentIps))

View File

@@ -23,6 +23,9 @@ kernel.Bind<IDiscoveryService>().To<DiscoveryService>().InSingletonScope();
kernel.Bind<EpsonPrintServiceConfiguration>().ToConstant(config);
//kernel.Bind<IPrinterFactory>().ToMethod(sp=>new HtmlPrinterFactory("TM-U220II.html", paperWidth: 258,type:0x0d, logger:sp.Kernel.Get<ILogger>()));
//kernel.Bind<IPrinterFactory>().ToMethod(sp=>new HtmlPrinterFactory("TM-T30III.html",logger:sp.Kernel.Get<ILogger>()));
kernel.Bind<IPrinterFactory>().To<EpsonPrinterFactory>();
kernel.Bind<IPrintJobSource, SignalRPrintJobSource>().To<SignalRPrintJobSource>().InSingletonScope();
kernel.Bind<IPrintService>().To<Inspectron.Epson.PrintServer.PrintServices.EpsonPrintService>();
@@ -35,10 +38,10 @@ kernel.Bind<ILogger>().ToMethod(ctx =>
return loggerFactory.CreateLogger("EpsonPrintService");
});
kernel.Bind<IAssignedPrinterRepository>().ToConstant(config);
kernel.Bind<IPrinterFactory>().To<PrinterFactory>().InSingletonScope();
kernel.Bind<IWrapperPrinterFactory>().To<PrinterWrapperFactory>().InSingletonScope();
kernel.Bind<IPrinterConfigurationSource>().To<FixedConfigurationSource>();
kernel.Bind<PrintServer>().ToSelf().InSingletonScope();
kernel.Bind<IDiscoveredPrintersReceiver>().To<ConsoleDiscoveredPrintersReceiver>().InSingletonScope();
kernel.Bind<IDiscoveredPrintersReceiver>().To<JamesDiscoveredPrintersReceiver>().InSingletonScope();
kernel.Bind<PrinterDiscoveryBackgroundTask>().ToSelf().InSingletonScope();
var printLoop = kernel.Get<PrintLoop>();

View File

@@ -1,5 +1,6 @@
{
"GroupId": "67e534f8e86e816689323023",
"RestaurantId": "63e37295bd6f26dbd36164c0",
"GroupId": "64a3d9f0876bc5d1704bce43",
"RestaurantId": "64a3d9f0876bc5d1704bce43",
"ApiKey": "LBOACMlvFEgDbZqt24uW0LjiFv0LKU5DT94g0JDoBnI=",
"PrinterConfigurations": {}
}