修改串口
This commit is contained in:
@ -30,6 +30,7 @@ using WCS.Model.ApiModel.MatBaseInfo;
|
||||
using System.Security.Cryptography;
|
||||
using Ping9719.WpfEx;
|
||||
using System.Diagnostics.Eventing.Reader;
|
||||
using System.IO.Ports;
|
||||
|
||||
namespace 智能仓储WCS管理系统.ViewModel
|
||||
{
|
||||
@ -41,30 +42,44 @@ namespace 智能仓储WCS管理系统.ViewModel
|
||||
var scanners = ScannerManager.Scanners;
|
||||
foreach (var scanner in scanners)
|
||||
{
|
||||
scanner.SerialPortClient.Received = (client, e) =>
|
||||
{
|
||||
//获取串口号
|
||||
var COM = client.MainSerialPort.PortName;
|
||||
//获取扫码枪对象
|
||||
var scanner = ScannerManager.Scanners.Where(t => t.COM == COM).FirstOrDefault();
|
||||
if (scanner == null)
|
||||
return EasyTask.CompletedTask;
|
||||
int newBytes = e.ByteBlock.Len;
|
||||
if (newBytes > 0)
|
||||
{
|
||||
var currentScanedCode = Encoding.UTF8.GetString(e.ByteBlock, 0, e.ByteBlock.Len);
|
||||
Logs.Write($"接收到扫码枪[{scanner.COM}]扫码数据{currentScanedCode}", LogsType.Scanner);
|
||||
scanner.TempCode += currentScanedCode;
|
||||
//校验末尾码
|
||||
CheckDataCompleteness(scanner);
|
||||
scanner.ScannerDisplayControl.RefreshValues(scanner.ShelfCode, scanner.MatSn, scanner.InstoreUser);
|
||||
}
|
||||
return EasyTask.CompletedTask;
|
||||
};
|
||||
scanner.SerialPort.DataReceived += SerialPort_DataReceived;
|
||||
}
|
||||
RevertScannerStatus();
|
||||
}
|
||||
|
||||
|
||||
public void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var _serialPort = sender as SerialPort;
|
||||
if (_serialPort == null)
|
||||
return;
|
||||
//// 读取所有可用数据
|
||||
string receivedData = _serialPort.ReadExisting();
|
||||
//获取串口号
|
||||
var COM = _serialPort.PortName;
|
||||
//获取扫码枪对象
|
||||
var scanner = ScannerManager.Scanners.Where(t => t.COM == COM).FirstOrDefault();
|
||||
if (scanner == null)
|
||||
return;
|
||||
//int newBytes = e.ByteBlock.Len;
|
||||
if (receivedData.Length > 0)
|
||||
{
|
||||
var currentScanedCode = receivedData;
|
||||
Logs.Write($"接收到扫码枪[{scanner.COM}]扫码数据{currentScanedCode}", LogsType.Scanner);
|
||||
scanner.TempCode += currentScanedCode;
|
||||
//校验末尾码
|
||||
CheckDataCompleteness(scanner);
|
||||
scanner.ScannerDisplayControl.RefreshValues(scanner.ShelfCode, scanner.MatSn, scanner.InstoreUser);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"接收数据错误: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
#region Property
|
||||
private string shelfCode;
|
||||
public string ShelfCode
|
||||
|
Reference in New Issue
Block a user