# HG changeset patch # User Hasan Yavuz ÖZDERYA # Date 2017-02-14 05:58:51 # Node ID 538d40c57b2b222add97a5836268d47e842184c5 # Parent b44879156c7c6b6dfd8836d7cf0e95f077c23f08 moved buffer access to abstract reader class diff --git a/src/abstractreader.cpp b/src/abstractreader.cpp --- a/src/abstractreader.cpp +++ b/src/abstractreader.cpp @@ -1,5 +1,5 @@ /* - Copyright © 2016 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -44,3 +44,10 @@ void AbstractReader::spsTimerTimeout() } sampleCount = 0; } + +void AbstractReader::addData(double* samples, unsigned length) +{ + _channelMan->addData(samples, length); + sampleCount += length; + emit dataAdded(); +} diff --git a/src/abstractreader.h b/src/abstractreader.h --- a/src/abstractreader.h +++ b/src/abstractreader.h @@ -1,5 +1,5 @@ /* - Copyright © 2016 Hasan Yavuz Özderya + Copyright © 2017 Hasan Yavuz Özderya This file is part of serialplot. @@ -72,13 +72,14 @@ public slots: protected: QIODevice* _device; - ChannelManager* _channelMan; - /// Implementing class should simply increase this count as samples are read - unsigned sampleCount; + /// Should be called with read data + void addData(double* samples, unsigned length); private: const int SPS_UPDATE_TIMEOUT = 1; // second + ChannelManager* _channelMan; + unsigned sampleCount; unsigned samplesPerSecond; QTimer spsTimer; diff --git a/src/asciireader.cpp b/src/asciireader.cpp --- a/src/asciireader.cpp +++ b/src/asciireader.cpp @@ -29,7 +29,6 @@ AsciiReader::AsciiReader(QIODevice* devi { paused = false; discardFirstLine = true; - sampleCount = 0; _numOfChannels = _settingsWidget.numOfChannels(); autoNumOfChannels = (_numOfChannels == NUMOFCHANNELS_AUTO); @@ -155,9 +154,7 @@ void AsciiReader::onDataReady() } // commit data - _channelMan->addData(channelSamples, _numOfChannels); - sampleCount += numReadChannels; - emit dataAdded(); + addData(channelSamples, _numOfChannels); delete[] channelSamples; } diff --git a/src/binarystreamreader.cpp b/src/binarystreamreader.cpp --- a/src/binarystreamreader.cpp +++ b/src/binarystreamreader.cpp @@ -29,7 +29,6 @@ BinaryStreamReader::BinaryStreamReader(Q paused = false; skipByteRequested = false; skipSampleRequested = false; - sampleCount = 0; _numOfChannels = _settingsWidget.numOfChannels(); connect(&_settingsWidget, &BinaryStreamReaderSettings::numOfChannelsChanged, @@ -171,9 +170,7 @@ void BinaryStreamReader::onDataReady() } } - _channelMan->addData(channelSamples, numOfPackagesToRead*_numOfChannels); - sampleCount += numOfPackagesToRead*_numOfChannels; - emit dataAdded(); + addData(channelSamples, numOfPackagesToRead*_numOfChannels); delete[] channelSamples; } diff --git a/src/demoreader.cpp b/src/demoreader.cpp --- a/src/demoreader.cpp +++ b/src/demoreader.cpp @@ -81,10 +81,8 @@ void DemoReader::demoTimerTimeout() { // we are calculating the fourier components of square wave samples[ci] = 4*sin(2*M_PI*double((ci+1)*count)/period)/((2*(ci+1))*M_PI); - sampleCount++; } - _channelMan->addData(samples, _numOfChannels); + addData(samples, _numOfChannels); delete[] samples; - emit dataAdded(); } } diff --git a/src/framedreader.cpp b/src/framedreader.cpp --- a/src/framedreader.cpp +++ b/src/framedreader.cpp @@ -310,8 +310,7 @@ void FramedReader::readFrameDataAndCheck if (!checksumEnabled || checksumPassed) { // commit data - _channelMan->addData(channelSamples, numOfPackagesToRead * _numOfChannels); - emit dataAdded(); + addData(channelSamples, numOfPackagesToRead*_numOfChannels); } else {