增加打印机断线重连功能,修改隔板标签打印功能

This commit is contained in:
anerx 2025-03-25 16:31:41 +08:00
parent b7a60fde31
commit e06cf5cba4
4 changed files with 65 additions and 13 deletions

View File

@ -106,29 +106,49 @@ public class HyosungPlcService(ILogger<HyosungPlcService> logger) : IHyosungPlcS
await _writer.WriteShortsAsync(12120, ls.ToArray()); await _writer.WriteShortsAsync(12120, ls.ToArray());
} }
public async Task WritePrintLableOptionsAsync(int side) public async Task WritePrintLableOptionsAsync(int side, int slave)
{ {
short data = 0; short masterCount = 0;
switch (side) switch (side)
{ {
case 0: case 0:
data = 1; masterCount = 1;
break; break;
case 1: case 1:
data = 2; masterCount = 2;
break; break;
case 2: case 2:
data = 6; masterCount = 6;
break; break;
case 3: case 3:
data = 14; masterCount = 14;
break; break;
case 4: case 4:
data = 30; masterCount = 30;
break; break;
} }
await _writer.WriteShortsAsync(13050, [1, 1, 1, 2]); short slaveCount = 0;
switch (slave)
{
case 0:
masterCount = 1;
break;
case 1:
masterCount = 2;
break;
case 2:
masterCount = 6;
break;
case 3:
masterCount = 14;
break;
case 4:
masterCount = 30;
break;
}
await _writer.WriteShortsAsync(13050, [1, 1, slaveCount, masterCount]);
} }
public async Task WritePrintLabelResultAsync(int index, bool result) public async Task WritePrintLabelResultAsync(int index, bool result)

View File

@ -58,7 +58,7 @@ public interface IHyosungPlcService
Task WritePackLineOptionAsync(PackLineOption option); Task WritePackLineOptionAsync(PackLineOption option);
Task WritePrintLableOptionsAsync(int side); Task WritePrintLableOptionsAsync(int side,int slaveCount);
Task WritePrintLabelResultAsync(int index, bool result); Task WritePrintLabelResultAsync(int index, bool result);

View File

@ -7,18 +7,32 @@ public class AveryPrinter(string host, int port)
{ {
public string Host => host; public string Host => host;
public int Port => port; public int Port => port;
private readonly Socket _socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); private Socket _socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public async Task ConnectAsync(CancellationToken token) public async Task ConnectAsync(CancellationToken token)
{ {
try try
{ {
await _socket.ConnectAsync(Host, Convert.ToInt32(port), token); await _socket.ConnectAsync(Host, Convert.ToInt32(port), token);
}catch(Exception e) }
catch (Exception e)
{ {
Console.WriteLine($"Host[{Host}:{port}] error:{e.Message}"); Console.WriteLine($"Host[{Host}:{port}] error:{e.Message}");
} }
}
private async Task<bool> CheckConnectAsync()
{
byte[] arrMsg = [0xff];
try
{
await _socket.SendAsync(arrMsg); //发送字节数组
return true;
}
catch
{
return false;
}
} }
public async Task CloseAsync(CancellationToken token) public async Task CloseAsync(CancellationToken token)
@ -29,6 +43,12 @@ public class AveryPrinter(string host, int port)
public async Task SendContentAsync(string context) public async Task SendContentAsync(string context)
{ {
if (!await CheckConnectAsync())
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
await ConnectAsync(CancellationToken.None);
}
await _socket.SendAsync(Encoding.UTF8.GetBytes(context)); await _socket.SendAsync(Encoding.UTF8.GetBytes(context));
} }
@ -37,11 +57,23 @@ public class AveryPrinter(string host, int port)
public async Task CleanContextAsync() public async Task CleanContextAsync()
{ {
if (!await CheckConnectAsync())
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
await ConnectAsync(CancellationToken.None);
}
await _socket.SendAsync(Encoding.UTF8.GetBytes(CleanCmd)); await _socket.SendAsync(Encoding.UTF8.GetBytes(CleanCmd));
} }
public async Task PrintAsync() public async Task PrintAsync()
{ {
if (!await CheckConnectAsync())
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
await ConnectAsync(CancellationToken.None);
}
await _socket.SendAsync(Encoding.UTF8.GetBytes(PrintCmd)); await _socket.SendAsync(Encoding.UTF8.GetBytes(PrintCmd));
} }
} }

View File

@ -383,7 +383,7 @@ public class HyosungRuntime(
// } // }
tray = await trayService.PrintTrayAsync(arg, mod,variety); tray = await trayService.PrintTrayAsync(arg, mod,variety);
await dictService.SetValue("System", "CurrentPackingTrayCode", arg); await dictService.SetValue("System", "CurrentPackingTrayCode", arg);
await hyosungPlcService.WritePrintLableOptionsAsync(variety.MasterLabelCount); await hyosungPlcService.WritePrintLableOptionsAsync(variety.MasterLabelCount,variety.SubLabelCount);
} }
/// <summary> /// <summary>