从串口读取设定的时间?
Read from serial port for set amount of time?
我正在编写一个 C# 程序,它读取从 arduino 发送到串行端口的数字,将它们放入数据表中并在图表中显示。目前点击connect时,会通过DataReceivedHandler事件方法不断从串口读取数据。
我在表单中有三个按钮:
- 仅捕获单个数据输入的 'runonce' 按钮
- 可选择的时间和 'timed' 按钮,仅允许读取一段时间内的数据
- 一个 'continuous' 按钮,可以永久捕获数据
单击其中一个按钮时,其他按钮将被禁用,单击的按钮将重命名为 "Stop"。
如何启用此 datareceivedhandler 事件,使其仅在需要时触发(如上所述)?
您可以通过在按钮单击事件中添加和删除串行端口数据接收处理程序来实现您想要的效果。
您的第二个案例可能想要删除处理程序以响应计时器滴答事件。
像这样:
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;
}
}
我正在编写一个 C# 程序,它读取从 arduino 发送到串行端口的数字,将它们放入数据表中并在图表中显示。目前点击connect时,会通过DataReceivedHandler事件方法不断从串口读取数据。
我在表单中有三个按钮:
- 仅捕获单个数据输入的 'runonce' 按钮
- 可选择的时间和 'timed' 按钮,仅允许读取一段时间内的数据
- 一个 'continuous' 按钮,可以永久捕获数据
单击其中一个按钮时,其他按钮将被禁用,单击的按钮将重命名为 "Stop"。
如何启用此 datareceivedhandler 事件,使其仅在需要时触发(如上所述)?
您可以通过在按钮单击事件中添加和删除串行端口数据接收处理程序来实现您想要的效果。 您的第二个案例可能想要删除处理程序以响应计时器滴答事件。
像这样:
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;
}
}