From 8ea5606034f78ef554d1c3ae8f8f7eddcff32a02 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 8 Jun 2019 22:28:06 +0200 Subject: [PATCH] KiwiSDR: restored disconnect signal with reporting in the GUI --- plugins/samplesource/kiwisdr/kiwisdrgui.cpp | 18 ++++++++++-------- plugins/samplesource/kiwisdr/kiwisdrinput.cpp | 3 ++- plugins/samplesource/kiwisdr/kiwisdrworker.cpp | 8 ++++++++ plugins/samplesource/kiwisdr/kiwisdrworker.h | 1 + 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp index 29bee3b16..35f8e9c1c 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp @@ -53,15 +53,17 @@ KiwiSDRGui::KiwiSDRGui(DeviceUISet *deviceUISet, QWidget* parent) : qDebug("KiwiSDRGui::KiwiSDRGui"); m_sampleSource = m_deviceUISet->m_deviceAPI->getSampleSource(); - m_statusTooltips.push_back("Idle"); - m_statusTooltips.push_back("Connecting..."); - m_statusTooltips.push_back("Connected"); - m_statusTooltips.push_back("Error"); + m_statusTooltips.push_back("Idle"); // 0 + m_statusTooltips.push_back("Connecting..."); // 1 + m_statusTooltips.push_back("Connected"); // 2 + m_statusTooltips.push_back("Error"); // 3 + m_statusTooltips.push_back("Disconnected"); // 4 - m_statusColors.push_back("gray"); - m_statusColors.push_back("rgb(232, 212, 35)"); - m_statusColors.push_back("rgb(35, 138, 35)"); - m_statusColors.push_back("rgb(232, 85, 85)"); + m_statusColors.push_back("gray"); // Idle + m_statusColors.push_back("rgb(232, 212, 35)"); // Connecting (yellow) + m_statusColors.push_back("rgb(35, 138, 35)"); // Connected (green) + m_statusColors.push_back("rgb(232, 85, 85)"); // Error (red) + m_statusColors.push_back("rgb(232, 85, 232)"); // Disconnected (magenta) ui->setupUi(this); ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); diff --git a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp index 58b1ffb0f..951a9cac2 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp @@ -184,8 +184,9 @@ void KiwiSDRInput::setCenterFrequency(qint64 centerFrequency) void KiwiSDRInput::setWorkerStatus(int status) { - if (m_guiMessageQueue) + if (m_guiMessageQueue) { m_guiMessageQueue->push(MsgSetStatus::create(status)); + } } bool KiwiSDRInput::handleMessage(const Message& message) diff --git a/plugins/samplesource/kiwisdr/kiwisdrworker.cpp b/plugins/samplesource/kiwisdr/kiwisdrworker.cpp index 8859b9888..41eb2e8cc 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrworker.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrworker.cpp @@ -36,6 +36,8 @@ KiwiSDRWorker::KiwiSDRWorker(SampleSinkFifo* sampleFifo) this, &KiwiSDRWorker::onBinaryMessageReceived); connect(&m_webSocket, QOverload::of(&QWebSocket::error), this, &KiwiSDRWorker::onSocketError); + connect(&m_webSocket, &QWebSocket::disconnected, + this, &KiwiSDRWorker::onDisconnected); } void KiwiSDRWorker::onConnected() @@ -43,6 +45,12 @@ void KiwiSDRWorker::onConnected() m_webSocket.sendTextMessage("SET auth t=kiwi p=#"); } +void KiwiSDRWorker::onDisconnected() +{ + qDebug("KiwiSDRWorker::onDisconnected"); + emit updateStatus(4); +} + void KiwiSDRWorker::onSocketError(QAbstractSocket::SocketError error) { emit updateStatus(3); diff --git a/plugins/samplesource/kiwisdr/kiwisdrworker.h b/plugins/samplesource/kiwisdr/kiwisdrworker.h index 5b516a9dd..fe43ebc85 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrworker.h +++ b/plugins/samplesource/kiwisdr/kiwisdrworker.h @@ -55,6 +55,7 @@ public slots: private slots: void onConnected(); + void onDisconnected(); void onBinaryMessageReceived(const QByteArray &message); void onSocketError(QAbstractSocket::SocketError error);