增加工位号兼容功能 不依赖固定的 OP10 OP20做硬编码判定 通过App.config作为工位依据

This commit is contained in:
XingCheng3
2026-05-13 01:01:09 +08:00
parent 0ca8274260
commit 69b69af17f
6 changed files with 244 additions and 191 deletions

View File

@@ -57,18 +57,28 @@ namespace MesWork
/// </summary>
public static string WeighingType = AppSettings["WeighingType"] ?? "Hanging";
/// <summary>
/// 工位1现场工位号Hanging模式下代表放油前工位
/// </summary>
public static string Station1OpName = AppSettings["Station1OpName"] ?? "";
/// <summary>
/// 工位2现场工位号Hanging模式下代表放油后工位
/// </summary>
public static string Station2OpName = AppSettings["Station2OpName"] ?? "";
/// <summary>
/// 是否启用扫码枪1=启用, 0=禁用
/// </summary>
public static int IsUseBarcode = int.TryParse(AppSettings["IsUseBarcode"], out var _iub) ? _iub : 0;
/// <summary>
/// OP10扫码枪COM口如COM3空则不启用
/// 工位1扫码枪COM口如COM3空则不启用
/// </summary>
public static string OP10BarCOM = AppSettings["OP10BarCOM"] ?? "";
public static string Station1BarCOM = AppSettings["Station1BarCOM"] ?? "";
/// <summary>
/// OP20扫码枪COM口如COM4空则不启用
/// 工位2扫码枪COM口如COM4空则不启用
/// </summary>
public static string OP20BarCOM = AppSettings["OP20BarCOM"] ?? "";
public static string Station2BarCOM = AppSettings["Station2BarCOM"] ?? "";
/// <summary>
/// 扫码枪波特率
/// </summary>

View File

@@ -10,7 +10,7 @@ namespace MesWork
public static class BarcodeManager
{
/// <summary>
/// 扫码枪实例字典key = opNameOP10/OP20
/// 扫码枪实例字典key = opName
/// </summary>
public static Dictionary<string, BarcodeScanner> Scanners { get; } = new Dictionary<string, BarcodeScanner>(StringComparer.OrdinalIgnoreCase);
@@ -33,27 +33,24 @@ namespace MesWork
int baudRate = MesWorkForm.BarcodeBaudRate;
// OP10
string op10Com = MesWorkForm.OP10BarCOM?.Trim();
if (!string.IsNullOrEmpty(op10Com))
InitScanner(MesWorkForm.Station1OpName, MesWorkForm.Station1BarCOM, baudRate);
InitScanner(MesWorkForm.Station2OpName, MesWorkForm.Station2BarCOM, baudRate);
}
private static void InitScanner(string opName, string comPort, int baudRate)
{
opName = opName?.Trim();
comPort = comPort?.Trim();
if (string.IsNullOrEmpty(opName) || string.IsNullOrEmpty(comPort))
{
var scanner = new BarcodeScanner("OP10", baudRate);
scanner.BarcodeReceived += HandleBarcodeReceived;
scanner.Log += HandleLog;
Scanners["OP10"] = scanner;
scanner.Connect(op10Com);
return;
}
// OP20
string op20Com = MesWorkForm.OP20BarCOM?.Trim();
if (!string.IsNullOrEmpty(op20Com))
{
var scanner = new BarcodeScanner("OP20", baudRate);
scanner.BarcodeReceived += HandleBarcodeReceived;
scanner.Log += HandleLog;
Scanners["OP20"] = scanner;
scanner.Connect(op20Com);
}
var scanner = new BarcodeScanner(opName, baudRate);
scanner.BarcodeReceived += HandleBarcodeReceived;
scanner.Log += HandleLog;
Scanners[opName] = scanner;
scanner.Connect(comPort);
}
/// <summary>