25103101 配置为4个串口扫码枪

This commit is contained in:
moxiliang
2025-10-31 11:56:23 +08:00
parent 5d98792d3e
commit deecfd3acb
24 changed files with 931 additions and 263 deletions

View File

@@ -457,6 +457,11 @@ namespace SLC1_N
int SerialPort_CH2BaudRate = jsconfig.GetValue<int>("SerialPort_CH2BaudRate", 9600);
string SerialPort_CH2PortName = jsconfig.GetValue<string>("SerialPort_CH2PortName", "COM11");
int SerialPort_CH3BaudRate = jsconfig.GetValue<int>("SerialPort_CH3BaudRate", 9600);
string SerialPort_CH3PortName = jsconfig.GetValue<string>("SerialPort_CH3PortName", "COM11");
int SerialPort_CH4BaudRate = jsconfig.GetValue<int>("SerialPort_CH4BaudRate", 9600);
string SerialPort_CH4PortName = jsconfig.GetValue<string>("SerialPort_CH4PortName", "COM11");
//设置端口的参数,包括波特率等
// 扫码枪1
SerialPort_CH1Saoma.BaudRate = SerialPort_CH1BaudRate;
@@ -475,22 +480,56 @@ namespace SLC1_N
SetUITextBox(tb_CH1MainMessage, $"CH1串口扫码枪打开失败");
}
//// 扫码枪2
//SerialPort_CH2Saoma.BaudRate = SerialPort_CH2BaudRate;
//SerialPort_CH2Saoma.PortName = SerialPort_CH2PortName;
//SerialPort_CH2Saoma.DataBits = 8;
//SerialPort_CH2Saoma.StopBits = System.IO.Ports.StopBits.One;
//SerialPort_CH2Saoma.Parity = System.IO.Ports.Parity.None;
//SerialPort_CH2Saoma.Open();
//if (SerialPort_CH2Saoma.IsOpen)
//{
// Console.WriteLine($"SerialPort_CH2Saoma: T");
//}
//else
//{
// Console.WriteLine($"SerialPort_CH2Saoma: F");
// SetUITextBox(tb_CH2MainMessage, $"CH2串口扫码枪打开失败");
//}
// 扫码枪2
SerialPort_CH2Saoma.BaudRate = SerialPort_CH2BaudRate;
SerialPort_CH2Saoma.PortName = SerialPort_CH2PortName;
SerialPort_CH2Saoma.DataBits = 8;
SerialPort_CH2Saoma.StopBits = System.IO.Ports.StopBits.One;
SerialPort_CH2Saoma.Parity = System.IO.Ports.Parity.None;
SerialPort_CH2Saoma.Open();
if (SerialPort_CH2Saoma.IsOpen)
{
Console.WriteLine($"SerialPort_CH2Saoma: T");
}
else
{
Console.WriteLine($"SerialPort_CH2Saoma: F");
SetUITextBox(tb_CH2MainMessage, $"CH2串口扫码枪打开失败");
}
// 扫码枪3
SerialPort_CH3Saoma.BaudRate = SerialPort_CH3BaudRate;
SerialPort_CH3Saoma.PortName = SerialPort_CH3PortName;
SerialPort_CH3Saoma.DataBits = 8;
SerialPort_CH3Saoma.StopBits = System.IO.Ports.StopBits.One;
SerialPort_CH3Saoma.Parity = System.IO.Ports.Parity.None;
SerialPort_CH3Saoma.Open();
if (SerialPort_CH3Saoma.IsOpen)
{
Console.WriteLine($"SerialPort_CH3Saoma: T");
}
else
{
Console.WriteLine($"SerialPort_CH3Saoma: F");
SetUITextBox(tb_CH1MainMessage, $"CH3串口扫码枪打开失败");
}
// 扫码枪4
SerialPort_CH4Saoma.BaudRate = SerialPort_CH4BaudRate;
SerialPort_CH4Saoma.PortName = SerialPort_CH4PortName;
SerialPort_CH4Saoma.DataBits = 8;
SerialPort_CH4Saoma.StopBits = System.IO.Ports.StopBits.One;
SerialPort_CH4Saoma.Parity = System.IO.Ports.Parity.None;
SerialPort_CH4Saoma.Open();
if (SerialPort_CH4Saoma.IsOpen)
{
Console.WriteLine($"SerialPort_CH4Saoma: T");
}
else
{
Console.WriteLine($"SerialPort_CH4Saoma: F");
SetUITextBox(tb_CH2MainMessage, $"CH4串口扫码枪打开失败");
}
}
catch (Exception ex)
{
@@ -618,6 +657,26 @@ namespace SLC1_N
if (tcpSaoma_Enabled)
saomaClient2?.SendStartCommand();
break;
case 3: // 扫码枪3启动
if (serialport_saoma_Enabled && SerialPort_CH3Saoma != null && SerialPort_CH3Saoma.IsOpen)
{
SerialPort_CH3Saoma.Write(byt, 0, byt.Length);
}
//if (tcpSaoma_Enabled)
// saomaClient3?.SendStartCommand();
break;
case 4: // 扫码枪4启动
if (serialport_saoma_Enabled && SerialPort_CH4Saoma != null && SerialPort_CH4Saoma.IsOpen)
{
SerialPort_CH4Saoma.Write(byt, 0, byt.Length);
}
//if (tcpSaoma_Enabled)
// saomaClient4?.SendStartCommand();
break;
}
}
@@ -4013,6 +4072,106 @@ namespace SLC1_N
}
}
// 扫码枪3串口接收函数
private void SerialPort_CH3Saoma_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
System.Threading.Thread.Sleep(50);
int len = SerialPort_CH3Saoma.BytesToRead; // 获取可以读取的字节数
if (len > 1)
{
byte[] buff = new byte[len]; // 创建缓存数据数组
SerialPort_CH3Saoma.Read(buff, 0, len); // 把数据读取到buff数组
Invoke((new System.Action(() =>
{
string time = DateTime.Now.ToString();
string code = Encoding.Default.GetString(buff).Replace(" ", "").Replace("\r", "").Replace("\n", "");
Console.WriteLine("扫码枪3串口收到:" + code);
//code = code.Split(';')[0];
//Console.WriteLine("扫码枪3串口去掉分隔符:" + code);
if (lb_CH1Code.Text == code || lb_CH2Code.Text == code || lb_CH3Code.Text == code || lb_CH4Code.Text == code)
{
//MessageBox.Show($"条码 {CODE} 已存在", "重复提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
SerialPort_CH3Saoma.DiscardInBuffer();
return;
}
if (code.Length.ToString() == tb_CH3codeLeng.Text.Trim())
{
lb_CH3Code.Text = code;
}
else
{
//SetUITextBox(tb_CH3MainMessage, "CH3当前条形码长度为" + code.Length + " 所设置的条码长度为" + tb_CH3codeLeng.Text);
}
SerialPort_CH3Saoma.DiscardInBuffer();
})));
}
else
{
return;
}
}
catch (Exception ex)
{
mxlLog.Instance.Error($"串口扫码枪3接收函数 异常 ,行号{ex.StackTrace} ", ex);
}
}
// 扫码枪4串口接收函数
private void SerialPort_CH4Saoma_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
System.Threading.Thread.Sleep(50);
int len = SerialPort_CH4Saoma.BytesToRead; // 获取可以读取的字节数
if (len > 1)
{
byte[] buff = new byte[len]; // 创建缓存数据数组
SerialPort_CH4Saoma.Read(buff, 0, len); // 把数据读取到buff数组
Invoke((new System.Action(() =>
{
string time = DateTime.Now.ToString();
string code = Encoding.Default.GetString(buff).Replace(" ", "").Replace("\r", "").Replace("\n", "");
Console.WriteLine("扫码枪4串口收到:" + code);
//code = code.Split(';')[0];
//Console.WriteLine("扫码枪4串口去掉分隔符:" + code);
if (lb_CH1Code.Text == code || lb_CH2Code.Text == code || lb_CH3Code.Text == code || lb_CH4Code.Text == code)
{
//MessageBox.Show($"条码 {CODE} 已存在", "重复提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
SerialPort_CH4Saoma.DiscardInBuffer();
return;
}
if (code.Length.ToString() == tb_CH4codeLeng.Text.Trim())
{
lb_CH4Code.Text = code;
}
else
{
//SetUITextBox(tb_CH4MainMessage, "CH4当前条形码长度为" + code.Length + " 所设置的条码长度为" + tb_CH4codeLeng.Text);
}
SerialPort_CH4Saoma.DiscardInBuffer();
})));
}
else
{
return;
}
}
catch (Exception ex)
{
mxlLog.Instance.Error($"串口扫码枪1接收函数 异常 ,行号{ex.StackTrace} ", ex);
}
}
// 条码变化函数
private void CH1Code_TextChanged(object sender, EventArgs e)
{