最大 16 のトレースをプロットしており、それぞれに 300 のデータポイントがあり、100 ミリ秒ごとに 100 のデータポイントを継続的に更新しています。そのため、平均して 100 ミリ秒ごとに合計 1600 のデータポイントを更新しており、リアルタイムでプロットできるポイントの限界に達しています。プロット速度をさらに改善する方法はありますか、それともそのポイントの量は本当に JChart2D で達成できる限界に達しています。
注意として、JChart2D はリアルタイム アプリケーション用の JFreeChart として他のライブラリよりも優れています。JFreeChart は優れた機能を備えていますが、リアルタイムではかなり重いです。
データが追加されたことをswingワーカーに通知するたびに、私が実際に使用しているループは次のとおりです。
for (int l = 0; l < readcycles; l++){
sixteenBitNumber = data[l];
for (int k = 0; k < (SampledSignalPerPacket); k+=ScreenPointJump){
for (int o = 0; o < root.getChildCount(); o++){
for (int p = 0; p < graphnodes[o].getChildCount(); p++){
if (seriesindex[o][p] > ScreenSize){
seriesindex[o][p] = 0;
}
datapoint = (float)(sixteenBitNumber[signalnodes[o][p].signalIndex + NbOfSampledSignal*k])*10/32767;
trace[o][p].addPoint(seriesindex[o][p], datapoint);
seriesindex[o][p] = seriesindex[o][p] + ScreenPointJump;//seriesindex[o][p]++;
}
}
}
}
トレースは次のように初期化されています
public Trace2DLtd[][] trace = new Trace2DLtd[4][4];