У меня возник вопрос, связанный с чтением последовательного порта и обработкой кода.Чтение последовательного порта
Устройство Я работаю с это сканер/масштаб я делаю свою программу шоу постоянного веса, а также сканирование штрих-кода
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 = "- - - - -";
}
}
Это покажет вес постоянно и до тех пор, пока не вес он сканирует штрих-код im, пытаясь понять, почему, когда есть вес, он не сканирует, обратите внимание, что если я скачу 7 раз, он может поймать его один раз из 10 раз
Редактировать ok Теперь я знаю, почему его нет он обрабатывает только upc, когда он первый в полученных данных от сканера, но я не знаю, как правильно сортировать это, я смотрел, как d ата был пришедший в и она была пришедшая несколько способов
когда-нибудь я буду получать это от сканера
S143.S08A07166200024. иногда S1440050.S08A0716620024. иногда S08A0716620024.S143.
есть ли у кого-нибудь какие-либо предложения по поводу того, как я должен читать это, чтобы все мои утверждения if загорелись независимо от того, какой заказ получил данные?
Пожалуйста, удалите закомментированный код, если это действительно необходимо. –