diff --git a/src/framedreader.cpp b/src/framedreader.cpp
--- a/src/framedreader.cpp
+++ b/src/framedreader.cpp
@@ -36,6 +36,7 @@ FramedReader::FramedReader(QIODevice* de
syncWord = _settingsWidget.syncWord();
checksumEnabled = _settingsWidget.isChecksumEnabled();
onNumberFormatChanged(_settingsWidget.numberFormat());
+ debugModeEnabled = _settingsWidget.isDebugModeEnabled();
checkSettings();
// init setting connections
@@ -54,6 +55,9 @@ FramedReader::FramedReader(QIODevice* de
connect(&_settingsWidget, &FramedReaderSettings::checksumChanged,
[this](bool enabled){checksumEnabled = enabled; reset();});
+ connect(&_settingsWidget, &FramedReaderSettings::debugModeChanged,
+ [this](bool enabled){debugModeEnabled = enabled;});
+
// init reader state
reset();
}
@@ -235,6 +239,7 @@ void FramedReader::onDataReady()
}
else
{
+ if (debugModeEnabled) qDebug() << "Frame size:" << frameSize;
gotSize = true;
}
}
diff --git a/src/framedreader.h b/src/framedreader.h
--- a/src/framedreader.h
+++ b/src/framedreader.h
@@ -57,6 +57,7 @@ private:
bool checksumEnabled;
bool hasSizeByte;
unsigned frameSize;
+ bool debugModeEnabled;
/// Checks the validity of syncWord and frameSize then shows an
/// error message. Also updates `settingsInvalid`. If settings are
@@ -79,7 +80,6 @@ private:
// `data` contains i th channels data
void addChannelData(unsigned int channel, double* data, unsigned size);
-
private slots:
void onDataReady();
diff --git a/src/framedreadersettings.cpp b/src/framedreadersettings.cpp
--- a/src/framedreadersettings.cpp
+++ b/src/framedreadersettings.cpp
@@ -35,6 +35,9 @@ FramedReaderSettings::FramedReaderSettin
emit checksumChanged(enabled);
});
+ connect(ui->cbDebugMode, &QCheckBox::toggled,
+ this, &FramedReaderSettings::debugModeChanged);
+
connect(ui->rbFixedSize, &QRadioButton::toggled,
ui->spSize, &QWidget::setEnabled);
@@ -135,3 +138,8 @@ bool FramedReaderSettings::isChecksumEna
{
return ui->cbChecksum->isChecked();
}
+
+bool FramedReaderSettings::isDebugModeEnabled()
+{
+ return ui->cbDebugMode->isChecked();
+}
diff --git a/src/framedreadersettings.h b/src/framedreadersettings.h
--- a/src/framedreadersettings.h
+++ b/src/framedreadersettings.h
@@ -46,6 +46,7 @@ public:
QByteArray syncWord();
unsigned frameSize(); /// If frame bye is enabled `0` is returned
bool isChecksumEnabled();
+ bool isDebugModeEnabled();
signals:
/// If sync word is invalid (empty or 1 nibble missing at the end)
@@ -56,6 +57,7 @@ signals:
void checksumChanged(bool);
void numOfChannelsChanged(unsigned);
void numberFormatChanged(NumberFormat);
+ void debugModeChanged(bool);
private:
Ui::FramedReaderSettings *ui;
diff --git a/src/framedreadersettings.ui b/src/framedreadersettings.ui
--- a/src/framedreadersettings.ui
+++ b/src/framedreadersettings.ui
@@ -75,6 +75,22 @@
All is well.
+
+
+
+ 360
+ 160
+ 111
+ 22
+
+
+
+ Enable printing of extra log messages that can be useful for debugging
+
+
+ Debug Mode
+
+