From 345112f1fe4b98be46dbabf187bf400daf8c34ae Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 25 Mar 2019 15:26:01 +0100 Subject: [PATCH] Reverse API originator information: implemented for start/stop in all sink plugins --- .../samplesink/bladerf1output/bladerf1output.cpp | 15 +++++++++++++-- .../samplesink/bladerf2output/bladerf2output.cpp | 15 +++++++++++++-- plugins/samplesink/hackrfoutput/hackrfoutput.cpp | 15 +++++++++++++-- .../samplesink/limesdroutput/limesdroutput.cpp | 15 +++++++++++++-- .../samplesink/plutosdroutput/plutosdroutput.cpp | 15 +++++++++++++-- plugins/samplesink/remoteoutput/remoteoutput.cpp | 15 +++++++++++++-- .../samplesink/soapysdroutput/soapysdroutput.cpp | 15 +++++++++++++-- plugins/samplesink/xtrxoutput/xtrxoutput.cpp | 15 +++++++++++++-- 8 files changed, 104 insertions(+), 16 deletions(-) diff --git a/plugins/samplesink/bladerf1output/bladerf1output.cpp b/plugins/samplesink/bladerf1output/bladerf1output.cpp index b66be76fd..73f2f908d 100644 --- a/plugins/samplesink/bladerf1output/bladerf1output.cpp +++ b/plugins/samplesink/bladerf1output/bladerf1output.cpp @@ -728,16 +728,27 @@ void Bladerf1Output::webapiReverseSendSettings(QList& deviceSettingsKey void Bladerf1Output::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("BladeRF1")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/bladerf2output/bladerf2output.cpp b/plugins/samplesink/bladerf2output/bladerf2output.cpp index b8f57c885..137e5f866 100644 --- a/plugins/samplesink/bladerf2output/bladerf2output.cpp +++ b/plugins/samplesink/bladerf2output/bladerf2output.cpp @@ -1178,16 +1178,27 @@ void BladeRF2Output::webapiReverseSendSettings(QList& deviceSettingsKey void BladeRF2Output::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("BladeRF2")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp index 07498d24c..52acfcbd1 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp @@ -676,16 +676,27 @@ void HackRFOutput::webapiReverseSendSettings(QList& deviceSettingsKeys, void HackRFOutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("HackRF")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/limesdroutput/limesdroutput.cpp b/plugins/samplesink/limesdroutput/limesdroutput.cpp index 7688caa98..24124db94 100644 --- a/plugins/samplesink/limesdroutput/limesdroutput.cpp +++ b/plugins/samplesink/limesdroutput/limesdroutput.cpp @@ -1514,16 +1514,27 @@ void LimeSDROutput::webapiReverseSendSettings(QList& deviceSettingsKeys void LimeSDROutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("LimeSDR")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp index 509ec703f..df3b0a2db 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp @@ -856,16 +856,27 @@ void PlutoSDROutput::webapiReverseSendSettings(QList& deviceSettingsKey void PlutoSDROutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("PlutoSDR")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/remoteoutput/remoteoutput.cpp b/plugins/samplesink/remoteoutput/remoteoutput.cpp index 4b30ed54f..56b58889b 100644 --- a/plugins/samplesink/remoteoutput/remoteoutput.cpp +++ b/plugins/samplesink/remoteoutput/remoteoutput.cpp @@ -678,15 +678,26 @@ void RemoteOutput::webapiReverseSendSettings(QList& deviceSettingsKeys, void RemoteOutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("RemoteOutput")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp index 8026fe0f7..8d11c757a 100644 --- a/plugins/samplesink/soapysdroutput/soapysdroutput.cpp +++ b/plugins/samplesink/soapysdroutput/soapysdroutput.cpp @@ -1899,16 +1899,27 @@ void SoapySDROutput::webapiReverseSendSettings(QList& deviceSettingsKey void SoapySDROutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("SoapySDR")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } } diff --git a/plugins/samplesink/xtrxoutput/xtrxoutput.cpp b/plugins/samplesink/xtrxoutput/xtrxoutput.cpp index 6c1efe913..ae3462d3f 100644 --- a/plugins/samplesink/xtrxoutput/xtrxoutput.cpp +++ b/plugins/samplesink/xtrxoutput/xtrxoutput.cpp @@ -1406,16 +1406,27 @@ void XTRXOutput::webapiReverseSendSettings(QList& deviceSettingsKeys, c void XTRXOutput::webapiReverseSendStartStop(bool start) { + SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); + swgDeviceSettings->setTx(1); + swgDeviceSettings->setOriginatorIndex(m_deviceAPI->getDeviceSetIndex()); + swgDeviceSettings->setDeviceHwType(new QString("XTRX")); + QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/run") .arg(m_settings.m_reverseAPIAddress) .arg(m_settings.m_reverseAPIPort) .arg(m_settings.m_reverseAPIDeviceIndex); m_networkRequest.setUrl(QUrl(deviceSettingsURL)); + m_networkRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/json"); + + QBuffer *buffer=new QBuffer(); + buffer->open((QBuffer::ReadWrite)); + buffer->write(swgDeviceSettings->asJson().toUtf8()); + buffer->seek(0); if (start) { - m_networkManager->sendCustomRequest(m_networkRequest, "POST"); + m_networkManager->sendCustomRequest(m_networkRequest, "POST", buffer); } else { - m_networkManager->sendCustomRequest(m_networkRequest, "DELETE"); + m_networkManager->sendCustomRequest(m_networkRequest, "DELETE", buffer); } }