using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using TouchSocket.Core; using TouchSocket.SerialPorts; using TouchSocket.Sockets; using 智能仓储WCS管理系统.Views.Controls; namespace 智能仓储WCS管理系统 { public static class ScannerManager { public static List Scanners = new List(); public static void InitScanners() { //获取当前配置文件的串口号 var ScannerComList = LocalFile.Config.ScannerComList; //通过配置的串口号生成对象 ScannerComList.ForEach(COM => { try { var client = new SerialPortClient(); //成功连接到端口 client.Connected = (client, e) => { Logs.Write($"扫码枪{client.MainSerialPort.PortName},已成功连接!", LogsType.Scanner); //初始化扫码枪对象 var Scanner = new Scanner() { SerialPortClient = (SerialPortClient)client, //ScannerDisplayControl = new ScannerDisplayControl(client.MainSerialPort.PortName), COM = client.MainSerialPort.PortName, TempCode = string.Empty, }; Scanners.Add(Scanner); return EasyTask.CompletedTask; }; client.Setup(new TouchSocket.Core.TouchSocketConfig() .SetSerialPortOption(new SerialPortOption() { BaudRate = 9600,//波特率 DataBits = 8,//数据位 Parity = System.IO.Ports.Parity.None,//校验位 PortName = COM, StopBits = System.IO.Ports.StopBits.One//停止位 })); client.Connect(LocalFile.Config.ScannerTimeOut, new CancellationToken()); } catch (Exception ex) { Logs.Write($"初始化扫码枪异常!{ex.Message}", LogsType.Scanner); } }); } } public class Scanner { public SerialPortClient SerialPortClient { get; set; } public ScannerDisplayControl ScannerDisplayControl { get; set; } /// /// 是否在入库模式中 /// public bool IsInstoreMode { get; set; } public DateTime IsInstoreModeTime { get; set; } = DateTime.MinValue; /// /// 串口号 /// public string COM { get; set; } /// /// 暂存的码 /// public string TempCode { get; set; } = string.Empty; public string ShelfCode { get; set; } = string.Empty; public string ModulesStr { get; set; } = string.Empty; public string MatSn { get; set; } = string.Empty; public string InstoreUser { get; set; } = string.Empty; } }