私は約でデータのストリームを持っています。シリアルポートからの 500 Hz。データは、マシンを制御しているマイクロプロセッサによって送信されます。データは、伝送プロトコルで使用されるヘッダー文字を取り除くクラスによってフィルター処理され、別のテキスト ボックスに表示されます。これは、取得した 4 つの変数をさまざまなテキスト ボックスに割り当てるコードです。
private void SetText(string text)
{
if (this.txtOutput.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.BeginInvoke(d, new object[] { text });
}
else
{
txtOutput.AppendText(text + "\r\n");
string a = "", b = "", c = "", d="";
string invia = text.ToString();
Stripper strp = new Stripper();
strp.Distri(invia, out a, out b, out c, out d);
if (a != "")
{
textBox7.Text = a; //currentRes
}
if (b != "")
{
textBox2.Text = b; //temperature
}
if (d != "" )
{
textBox3.Text = d; //motor current
}
if (c == "1\r") //motor RPM
{
timer3.Start();
}
}
}
私が直面している問題は、毎秒何百もの値「a」、「b」、および「d」を取得し、明らかに関連するテキストボックスがちらつくことです。さらに、関連するテキスト ボックスに表示する前に、各タイプの 100 サンプルを取得して、各変数の値を平均したいと思います。これにより、ちらつきが回避され、より正確な読み取りが可能になります。
変数 "a"、"b"、"d" のそれぞれを、その間に他の機能を制御する必要があるアプリケーションをフリーズせずに x サンプルに平均化するにはどうすればよいですか? サンプル コードは非常に高く評価されます。