# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2019-04-17 15:19:34 # Node ID 151c8a6430b7574c02a4c8ede6a9ad4d1029dc72 # Parent 335ac381f2eb1ff480428d44f0497ad2b61b81e3 improve dataformatpanel api diff --git a/src/bpslabel.cpp b/src/bpslabel.cpp --- a/src/bpslabel.cpp +++ b/src/bpslabel.cpp @@ -29,6 +29,7 @@ BPSLabel::BPSLabel(PortControl* portCont { _portControl = portControl; _dataFormatPanel = dataFormatPanel; + prevBytesRead = 0; setText("0bps"); setToolTip(tr(BPS_TOOLTIP)); @@ -42,7 +43,11 @@ BPSLabel::BPSLabel(PortControl* portCont void BPSLabel::onBpsTimeout() { - unsigned bits = _dataFormatPanel->getBytesRead() * 8; + uint64_t curBytesRead = _dataFormatPanel->bytesRead(); + uint64_t bytesRead = curBytesRead - prevBytesRead; + prevBytesRead = curBytesRead; + + unsigned bits = bytesRead * 8; unsigned maxBps = _portControl->maxBitRate(); QString str; if (bits >= maxBps) diff --git a/src/bpslabel.h b/src/bpslabel.h --- a/src/bpslabel.h +++ b/src/bpslabel.h @@ -45,6 +45,8 @@ private: DataFormatPanel* _dataFormatPanel; QTimer bpsTimer; + uint64_t prevBytesRead; + private slots: void onBpsTimeout(); void onPortToggled(bool open); diff --git a/src/dataformatpanel.cpp b/src/dataformatpanel.cpp --- a/src/dataformatpanel.cpp +++ b/src/dataformatpanel.cpp @@ -39,6 +39,7 @@ DataFormatPanel::DataFormatPanel(QSerial serialPort = port; paused = false; readerBeforeDemo = nullptr; + _bytesRead = 0; // initalize default reader currentReader = &bsReader; @@ -130,9 +131,10 @@ void DataFormatPanel::selectReader(Abstr emit sourceChanged(currentReader); } -unsigned DataFormatPanel::getBytesRead() +uint64_t DataFormatPanel::bytesRead() { - return currentReader->getBytesRead(); + _bytesRead += currentReader->getBytesRead(); + return _bytesRead; } void DataFormatPanel::saveSettings(QSettings* settings) diff --git a/src/dataformatpanel.h b/src/dataformatpanel.h --- a/src/dataformatpanel.h +++ b/src/dataformatpanel.h @@ -20,6 +20,7 @@ #ifndef DATAFORMATPANEL_H #define DATAFORMATPANEL_H +#include #include #include #include @@ -49,8 +50,8 @@ public: unsigned numChannels() const; /// Returns active source (reader) Source* activeSource(); - /// Reads and 'zero's number of bytes read from current reader - unsigned getBytesRead(); + /// Returns total number of bytes read + uint64_t bytesRead(); /// Stores data format panel settings into a `QSettings` void saveSettings(QSettings* settings); /// Loads data format panel settings from a `QSettings`. @@ -78,6 +79,7 @@ private: void selectReader(AbstractReader* reader); bool paused; + uint64_t _bytesRead; DemoReader demoReader; AbstractReader* readerBeforeDemo;