[英]Read char data from Arduino in C#
所以我正在開發一個代碼,使我能夠通過SerialPort
讀取來自arduino的數據。 我已經定義了我想從Arduino讀取的字符,根據接收的內容,我將向Arduino發送一些東西。
我將收到的內容基於三個字符:@,r和\\ r。
string arroba = "@" + "r" + "\r";
byte[] asciiBytes = Encoding.ASCII.GetBytes(arroba);
我已經編寫了這段代碼,但是我不知道這是否真的可行。
當arduino發送給我時,我想像這樣閱讀:
comport.ReadByte(asciiBytes);
您能幫我弄清楚我如何讀取來自arduino的數據嗎?
首先,您應該通過將事件處理程序添加到ComPort來監聽傳入的數據:
comport.DataReceived += Received;
在此處理程序內部,您可以讀取接收到的字節。 如果接收到的數據中包含特定序列(@,r,\\ r),請檢查以下字節:
private void Received(object sender, SerialDataReceivedEventArgs e)
{
int bytes = comport.BytesToRead;
byte[] buffer = new byte[bytes];
comport.Read(buffer, 0, bytes);
if (buffer.Except(Encoding.ASCII.GetBytes("@r\r")).Any() == true)
{
//Your sequence was received
}
}
由於Except
是LINQ,所以請不要忘記添加
using System.Linq;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.