我有一个涉及串行端口读取和代码处理方式的问题。
我正在使用的设备是扫描仪/磅秤,我正在使程序显示恒定的重量以及扫描条形码
comport.NewLine = "\r";
comport.Write("S14\r");
while (comport.BytesToRead > 0)
{
data = comport.ReadLine();
if (data.StartsWith("S08"))
{
try
{
string data1 = data.Substring(4);
data1 = data1.Trim();
textBox1.Clear();
textBox1.AppendText(data1);
timer3.Stop();
scan();
timer3.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
comport.DiscardInBuffer();
}
else if (data.StartsWith("S144"))
{
if (data == "S1440000")
{
label8.Text = "0.00";
}
else
{
string data3 = data.Substring(4);
data3 = data3.Trim();
var data4 = data3.Insert(2, ".");
string data5 = double.Parse(data4).ToString("F", CultureInfo.GetCultureInfo("en-US"));
label8.Text = data5;
comport.DiscardInBuffer();
}
}
else if (data == "S143")
{
label8.Text = "0.00";
}
else if(data =="S145")
{
label8.Text = "- - - - -";
}
else if(data == "S141")
{
label8.Text = "- - - - -";
}
}
这将不断显示重量,只要没有重量,它就会扫描条形码,试图找出为什么没有重量的原因,它不会扫描,请注意,如果我扫描7次,它可能会捕获到十分之一的重量。次
编辑好,我现在知道为什么它不进行处理,它仅在从扫描仪接收到的数据中首先处理upc时处理,但是我不知道我如何观察数据的输入和输入的正确性多种方式
有时我会从扫描仪收到此信息
S143.S08A07166200024。有时是S1440050.S08A0716620024。有时是S08A0716620024.S143。
有没有人对我应该如何阅读此书有任何建议,所以无论数据以什么顺序显示,我所有的if语句都会触发?
comport.NewLine = "\r";
comport.Write("S14\r");
while (comport.BytesToRead > 0)
{
data = comport.ReadLine();
if (data.StartsWith("S08"))
{
try
{
string data1 = data.Substring(4);
data1 = data1.Trim();
textBox1.Clear();
textBox1.AppendText(data1);
timer3.Stop();
scan();
timer3.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
comport.DiscardInBuffer();
}
else if (data.StartsWith("S144"))
{
if (data == "S1440000")
{
label8.Text = "0.00";
}
else
{
string data3 = data.Substring(4);
data3 = data3.Trim();
var data4 = data3.Insert(2, ".");
string data5 = double.Parse(data4).ToString("F", CultureInfo.GetCultureInfo("en-US"));
label8.Text = data5;
comport.DiscardInBuffer();
}
}
else if (data == "S143")
{
label8.Text = "0.00";
}
else if(data =="S145")
{
label8.Text = "- - - - -";
}
else if(data == "S141")
{
label8.Text = "- - - - -";
}
}
将我的if更改为while循环
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句