[英]Reading serial data from arduino with c# application
我正在构建需要读取从arduino接收到的一些串行数据的ac#应用程序。 arduino发送以下信息:
Serial.write(0x1);
Serial.write(0x106);
Serial.write(fake_channel.samples, SAMPLE_COUNT); //Sample array
样本数组只不过是一个用整数填充的数组。
用C#应用程序阅读此内容的最佳方法是什么? 我需要从串行数据中获取整数。 因此,当我得到0x1时,我想读取1。我可以使用以下方法读取数据:
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
//Code to read the serial data needed here
}
在我的一个较旧的应用程序中,我能够通过以下方式读取字符串格式的一些串行数据:serialPort.ReadExisting(); 现在唯一的问题是我没有收到字符串,而是一个看起来像字节的整数。 那是我感到困惑的部分,因为如何从看起来像字节的东西中读取整数。
DataReceived
事件告诉您已接收到一些字节,您可以去读取它们。
如果要读取字节(不是字符串),则可以使用serialPort.BytesToRead
属性来知道有多少字节可读取。 然后可以使用serialPort.Read(byte[], int, int)
方法在一次读出所有的字节,或serialPort.ReadByte()
方法来读取一次一个字节。
如果尝试读取更多可用字节,则该方法将阻塞,直到指定数量的字节可用为止。 为了防止这种情况,您可以使用serialPort.ReadTimeout
设置读取超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.