我試圖處理我的傳入緩衝區,並確保我在每次傳輸時獲得了所有125字節的數據。我創建了一個字節數組。我如何知道正在接收125個字節的數據。我試圖顯示字節數,但它顯示不同的數字,我不確定是否正確的編碼來獲得接收的字節數。如何讀取C#中的字節
這裏是我的代碼:
void datareceived(object sender, SerialDataReceivedEventArgs e)
{
myDelegate d = new myDelegate(update);
listBox1.Invoke(d, new object[] { });
}
public void update()
{
Console.WriteLine("Number of bytes:" + serialPort.BytesToRead); // it shows 155
while (serialPort.BytesToRead > 0)
bBuffer.Add((byte)serialPort.ReadByte());
ProcessBuffer(bBuffer);
}
private void ProcessBuffer(List<byte> bBuffer)
{
// Create a byte array buffer to hold the incoming data
byte[] buffer = bBuffer.ToArray();
// Show the user the incoming data // Display mode
for (int i = 0; i < buffer.Length; i++)
{
listBox1.Items.Add("SP: " + (bBuffer[43].ToString()) + " " + " HR: " + (bBuffer[103].ToString()) + " Time: ");
}
}
我想澄清我的答案(我最初誤解了問題),但:'只BytesToRead'指本地接收BU FFER;它不會告訴你什麼是傳入的。通常情況下,像BytesToRead這樣的主要用途是:如果你想在處理已經存在的數據或阻塞(同步)之間做出決定,或者做一個'BeginRead'(async) – 2011-12-19 07:08:59