从串口读取设定的时间量?

时间:2016-02-12 10:59:23

标签: c# arduino serial-port

我正在编写一个C#程序,它读取从arduino发送到串口的数字,将它们放入数据表中并将它们显示在图表中。目前,当单击连接时,它将使用DataReceivedHandler事件方法从串行端口连续读取数据。

表格中有三个按钮:

  • 只会捕获单个数据输入的“runonce”按钮
  • 可选时间和'定时'按钮,只允许在一段时间内读取数据
  • 一个“连续”按钮,可以永久保存数据

单击其中一个按钮时,其他按钮将被禁用,单击的按钮将重命名为“停止”。

如何启用此datareceivedhandler事件,仅在需要时触发,如上所述?

1 个答案:

答案 0 :(得分:1)

您可以通过在按钮单击事件中添加和删除串行端口数据接收处理程序来实现您的目的。 你的第二种情况可能想要删除处理程序以响应计时器滴答事件。

这样的事情:

    private bool serialPortCapturing;

    private void btn1_Click(object sender, EventArgs e)
    {
        if (!serialPortCapturing)
        {
            serialPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort_DataReceived);
            serialPortCapturing = true;
        }
        else
        {
            serialPort.DataReceived -= new System.IO.Ports.SerialDataReceivedEventHandler(serialPort_DataReceived);
            serialPortCapturing = false;
        }
    }