私は新しいのでスレッドにアドバイスしたいと思います。私はオンラインでのスレッドのいくつかの記事を読んだ。Cでスレッディングを使用してCOMポートを読む#
私はcomポートのデータを読んでいます。 5秒ごとにデータを読み込んでリストボックスのデータを更新するようなスレッドを使用したいと思います。現在、すべてのデータが読み取られています。 どこから始めたらよいかわかりません。
私はスレッドコードを入れ始めますか?私はWindowsフォーム、C#VS2008を使用しています。
はここでCOMポートからデータを読み取るために私のコードです:すべての
void datareceived(object sender, SerialDataReceivedEventArgs e)
{
myDelegate d = new myDelegate(update);
listBox1.Invoke(d, new object[] { });
}
public void update()
{
while (serialPortN.BytesToRead > 0)
bBuffer.Add((byte)serialPortN.ReadByte());
ProcessBuffer(bBuffer);
}
private void ProcessBuffer(List<byte> bBuffer)
{
int numberOfBytesToRead = 125;
if (bBuffer.Count >= numberOfBytesToRead)
{
listBox1.Items.Add("SP: " + (bBuffer[43].ToString()) + " " + " HR: " + (bBuffer[103].ToString()));
// Remove the bytes read from the list
bBuffer.RemoveRange(0, numberOfBytesToRead);
}
}
ありがとう!
こんにちはピーター、ご返信ありがとうございます。 COMポートデータの読み込みでは、ボタンのクリックイベントの下にデータを挿入しました。私は、ボイドタイマーの下にボタンのクリックイベントハンドラを置く必要がありますか?ありがとう! – fb69
私は100%フォローしていません。ボタンクリックイベントの下でデータを挿入したという意味ですか?どのデータを挿入しましたか?コードファイルのvoid TimerElapsedの後にボタンのクリックイベントハンドラを置くことができるかどうかを知りたい場合は、そうすることができます。 – peter
申し訳ありませんピーター、私が意味することは、タイマの経過メソッドは、私はプロセスのバッファーコーディングを挿入することができますか?データを処理するプロセスバッファメソッド以降。 – fb69