# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2015-03-16 18:23:05 # Node ID 4ff060c076abccda8f2464c80a06f50f89dbf4ee # Parent 655c440be89b89cc87716c6bb4e4ce77ca9f9037 addData function implemented properly to show all acquired data diff --git a/mainwindow.cpp b/mainwindow.cpp --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -227,7 +227,7 @@ void MainWindow::onDataReady() samples.replace(i, (this->*readSample)()); i++; } - addData(samples[0]); + addData(samples); } } } @@ -254,14 +254,35 @@ void MainWindow::onPortError(QSerialPort } -void MainWindow::addData(double data) +void MainWindow::addData(QVector data) { - // shift data array and place new data at the end - for (int i = 0; i < dataArray.size()-1; i++) + int offset = numOfSamples - data.size(); + + if (offset < 0) + { + for (int i = 0; i < numOfSamples; i++) + { + dataArray[i] = data[i - offset]; + } + } + else if (offset == 0) { - dataArray[i] = dataArray[i+1]; + dataArray = data; } - dataArray.last() = data; + else + { + // shift old samples + int shift = data.size(); + for (int i = 0; i < offset; i++) + { + dataArray[i] = dataArray[i + shift]; + } + // place new samples + for (int i = 0; i < data.size(); i++) + { + dataArray[offset + i] = data[i]; + } + } // update plot curve.setSamples(dataX, dataArray); diff --git a/mainwindow.h b/mainwindow.h --- a/mainwindow.h +++ b/mainwindow.h @@ -40,7 +40,7 @@ private: QwtPlotCurve curve; QVector dataArray; QVector dataX; - void addData(double data); + void addData(QVector data); NumberFormat numberFormat; unsigned int sampleSize; // number of bytes in the selected number format