From 2c5ea336da97aa5095de42f7655b93ed410c2ad1 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 19 Apr 2017 22:43:18 +0200 Subject: [PATCH] LimeSDR input: status bar updated --- .../limesdrinput/limesdrinput.cpp | 2 +- .../samplesource/limesdrinput/limesdrinput.h | 2 + .../limesdrinput/limesdrinputgui.cpp | 33 ++++--- .../limesdrinput/limesdrinputgui.ui | 87 +++++++++++++++++-- 4 files changed, 107 insertions(+), 17 deletions(-) diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 4c121104f..1eb89eed0 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -358,7 +358,7 @@ bool LimeSDRInput::handleMessage(const Message& message) } else { - qDebug() << "LimeSDRInput::handleMessage: got stream status at %llu" << status.timestamp + qDebug() << "LimeSDRInput::handleMessage: got stream status at: " << status.timestamp << " fifoFilledCount: " << status.fifoFilledCount << " fifoSize: " << status.fifoSize << " underrun: " << status.underrun diff --git a/plugins/samplesource/limesdrinput/limesdrinput.h b/plugins/samplesource/limesdrinput/limesdrinput.h index 9256d4256..c1753e4ad 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.h +++ b/plugins/samplesource/limesdrinput/limesdrinput.h @@ -128,6 +128,7 @@ public: uint64_t getTimestamp() const { return m_timestamp; } static MsgReportStreamInfo* create( + bool success, bool active, uint32_t fifoFilledCount, uint32_t fifoSize, @@ -140,6 +141,7 @@ public: ) { return new MsgReportStreamInfo( + success, active, fifoFilledCount, fifoSize, diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp index 6e38962a9..32d78d697 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp @@ -186,21 +186,34 @@ void LimeSDRInputGUI::handleMessagesToGUI() if (report->getSuccess()) { - if (report->getActive()) - { - ui->streamStatusLabel->setStyleSheet("QLabel { background-color : green; }"); - } - else - { - ui->streamStatusLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }"); + ui->streamStatusLabel->setStyleSheet("QLabel { background-color : green; }"); + ui->streamLinkRateText->setText(tr("%1 MB/s").arg(QString::number(report->getLinkRate() / 1000000.0f, 'f', 3))); + + if (report->getUnderrun() > 0) { + ui->underrunLabel->setStyleSheet("QLabel { background-color : red; }"); + } else { + ui->underrunLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }"); } - ui->streamSampleRateText->setText(tr("%1kS").arg(QString::number(report->getSampleRate() / 1000.0f, 'f', 0))); - ui->streamLinkRateText->setText(tr("%1kB").arg(QString::number(report->getLinkRate() / 1000.0f, 'f', 0))); + if (report->getOverrun() > 0) { + ui->overrunLabel->setStyleSheet("QLabel { background-color : red; }"); + } else { + ui->overrunLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }"); + } + + if (report->getDroppedPackets() > 0) { + ui->droppedLabel->setStyleSheet("QLabel { background-color : red; }"); + } else { + ui->droppedLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }"); + } + + ui->fifoBar->setMaximum(report->getFifoSize()); + ui->fifoBar->setValue(report->getFifoFilledCount()); + ui->fifoBar->setToolTip(tr("FIFO fill %1/%2 bytes").arg(QString::number(report->getFifoFilledCount())).arg(QString::number(report->getFifoSize()))); } else { - ui->streamStatusLabel->setStyleSheet("QLabel { background-color : red; }"); + ui->streamStatusLabel->setStyleSheet("QLabel { background:rgb(79,79,79); }"); } } } diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.ui b/plugins/samplesource/limesdrinput/limesdrinputgui.ui index eb4740af8..443cff8d0 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.ui +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.ui @@ -628,18 +628,68 @@ - + - 50 + 12 0 + + Red if underruns + + + background:rgb(79,79,79); + - 00000kS + U - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignCenter + + + + + + + + 12 + 0 + + + + Red if overruns + + + background:rgb(79,79,79); + + + O + + + Qt::AlignCenter + + + + + + + + 12 + 0 + + + + Red if dropped packets + + + background:rgb(79,79,79); + + + D + + + Qt::AlignCenter @@ -647,18 +697,43 @@ - 50 + 90 0 + + Stream link rate (MB/s) + - 00000kB + 000.000 MB/s Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + 16777215 + 15 + + + + + 8 + + + + border: 2px solid rgb(79, 79, 79); +text-align: center; + + + 0 + + +