将串行端口流捕获到数据库

时间:2017-08-31 08:46:29

标签: c# string winforms stream serial-port

我遇到了一个应该从该字符串接收串行端口流(工业权重)数据的应用程序,我只需要削减权重值并将其发送到数据库。

我遇到的唯一问题是抓住生产线并削减重量值。

以下是将串行流捕获到textBoxes字段中的操作:

public void write_to_field(object sender, EventArgs e)
{
     if (textBox1.Text.Length <= Convert.ToInt16(strLenghBox.Text))
     {
           string DispString;
           DispString = serialPort1.ReadLine();
           textBox1.AppendText(DispString);
      }
      else
      {
           textBox1.Text = "";
      }
 }

在texbox字段中,我有连续的数据流,当它中的字符数达到每个(strLenghBox.Text)字符数时,我清除textBox。

但它工作不正确,因为我有偏移(我可能开始得到字符串不是从它开始,我会得到和偏移),而且我不能抓住称重值将其传递给数据库,因为字段不是全部时间和我有一个抵消。

我认为在这种情况下我可能会出错。

1 个答案:

答案 0 :(得分:3)

您正在尝试从可以发送碎片数据的源中检索数据。为确保数据完整性,您可能需要:

  • 无论来自流
  • 的格式如何堆积数据的队列
  • 一种在检索完整值或队列为空之前对数据进行描述的方法
  • 检测已检索到完整值的方法(您不清楚数据在流中的分离方式,例如分隔符,例如换行符)

通过这种方式,您可以将数据读取与值检测和显示分开。