From 6de0e20cebca1a7753247774a2da4f911d5f2735 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 14 Dec 2017 23:29:12 +0100 Subject: [PATCH] Web API: /sdrangel/deviceset/{deviceSetIndex}/device/run POST,DELETE: return previous state instead of attempt to wait and return the state after change since it does not work reliably --- Readme.md | 2 +- fcdlib/fcdtraits.cpp | 4 ++-- plugins/samplesink/bladerfoutput/bladerfoutput.cpp | 4 +--- plugins/samplesink/filesink/filesinkoutput.cpp | 4 +--- plugins/samplesink/filesink/filesinkplugin.cpp | 2 +- plugins/samplesink/hackrfoutput/hackrfoutput.cpp | 4 +--- plugins/samplesink/limesdroutput/limesdroutput.cpp | 4 +--- plugins/samplesink/plutosdroutput/plutosdroutput.cpp | 4 +--- .../samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp | 4 +--- .../samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp | 2 +- plugins/samplesource/airspy/airspyinput.cpp | 4 +--- plugins/samplesource/airspy/airspyplugin.cpp | 2 +- plugins/samplesource/bladerfinput/bladerfinput.cpp | 4 +--- plugins/samplesource/fcdpro/fcdproinput.cpp | 4 +--- plugins/samplesource/fcdproplus/fcdproplusinput.cpp | 4 +--- plugins/samplesource/filesource/filesourceinput.cpp | 4 +--- plugins/samplesource/hackrfinput/hackrfinput.cpp | 4 +--- plugins/samplesource/limesdrinput/limesdrinput.cpp | 4 +--- plugins/samplesource/plutosdrinput/plutosdrinput.cpp | 4 +--- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 4 +--- .../sdrdaemonsource/sdrdaemonsourceinput.cpp | 4 +--- plugins/samplesource/sdrplay/sdrplayinput.cpp | 4 +--- sdrbase/resources/index.html | 10 +++++----- swagger/sdrangel/api/swagger/swagger.yaml | 4 ++-- swagger/sdrangel/code/html2/index.html | 10 +++++----- 25 files changed, 35 insertions(+), 69 deletions(-) diff --git a/Readme.md b/Readme.md index 1701ebb35..cc27b7e91 100644 --- a/Readme.md +++ b/Readme.md @@ -103,7 +103,7 @@ HackRF is better used with a sampling rate of 4.8 MS/s and above. The 2.4 and 3.

LimeSDR

-

⚠ The plugins should work normally when running as single instances. Support of many Rx and/or Tx instances running concurrently is considered experimental. +

⚠ The plugins should work normally when running as single instances. Support of many Rx and/or Tx instances running concurrently is considered experimental.

You will need a minimal installation of LimeSuite. Presently version 17.12.1 should be used with its corresponding firmware (v4) and gateware (v2.12) installed in the LimeSDR device: diff --git a/fcdlib/fcdtraits.cpp b/fcdlib/fcdtraits.cpp index ca2d0cd70..afa7157cd 100644 --- a/fcdlib/fcdtraits.cpp +++ b/fcdlib/fcdtraits.cpp @@ -22,8 +22,8 @@ const char *fcd_traits::displayedName = "FunCube Dongle Pro+"; const char *fcd_traits::pluginDisplayedName = "FunCube Pro Input"; const char *fcd_traits::pluginDisplayedName = "FunCube Pro+ Input"; -const char *fcd_traits::pluginVersion = "3.8.0"; -const char *fcd_traits::pluginVersion = "3.8.0"; +const char *fcd_traits::pluginVersion = "3.8.6"; +const char *fcd_traits::pluginVersion = "3.8.6"; const int64_t fcd_traits::loLowLimitFreq = 64000000L; const int64_t fcd_traits::loLowLimitFreq = 150000L; diff --git a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp index 66dfd818e..6e89f8eaa 100644 --- a/plugins/samplesink/bladerfoutput/bladerfoutput.cpp +++ b/plugins/samplesink/bladerfoutput/bladerfoutput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -509,6 +508,7 @@ int BladerfOutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -518,8 +518,6 @@ int BladerfOutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/filesink/filesinkoutput.cpp b/plugins/samplesink/filesink/filesinkoutput.cpp index 80497575b..b94535a34 100644 --- a/plugins/samplesink/filesink/filesinkoutput.cpp +++ b/plugins/samplesink/filesink/filesinkoutput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -289,6 +288,7 @@ int FileSinkOutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -298,8 +298,6 @@ int FileSinkOutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/filesink/filesinkplugin.cpp b/plugins/samplesink/filesink/filesinkplugin.cpp index 5b8ef58f3..f00477966 100644 --- a/plugins/samplesink/filesink/filesinkplugin.cpp +++ b/plugins/samplesink/filesink/filesinkplugin.cpp @@ -25,7 +25,7 @@ const PluginDescriptor FileSinkPlugin::m_pluginDescriptor = { QString("File sink output"), - QString("3.8.0"), + QString("3.8.6"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp index dd2bcd71f..e613bc793 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp @@ -18,7 +18,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -436,6 +435,7 @@ int HackRFOutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -445,8 +445,6 @@ int HackRFOutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/limesdroutput/limesdroutput.cpp b/plugins/samplesink/limesdroutput/limesdroutput.cpp index b4c273d2b..e18334b8c 100644 --- a/plugins/samplesink/limesdroutput/limesdroutput.cpp +++ b/plugins/samplesink/limesdroutput/limesdroutput.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include "lime/LimeSuite.h" #include "SWGDeviceSettings.h" @@ -1116,6 +1115,7 @@ int LimeSDROutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -1125,7 +1125,5 @@ int LimeSDROutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp index 85ab01258..4029c295f 100644 --- a/plugins/samplesink/plutosdroutput/plutosdroutput.cpp +++ b/plugins/samplesink/plutosdroutput/plutosdroutput.cpp @@ -15,7 +15,6 @@ /////////////////////////////////////////////////////////////////////////////////// #include -#include #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" @@ -514,6 +513,7 @@ int PlutoSDROutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -523,8 +523,6 @@ int PlutoSDROutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp index 2db6bd872..db4e775c2 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkoutput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -311,6 +310,7 @@ int SDRdaemonSinkOutput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -320,8 +320,6 @@ int SDRdaemonSinkOutput::webapiRun( m_guiMessageQueue->push(messagetoGui); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp index 65e330910..ba335f1f3 100644 --- a/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp +++ b/plugins/samplesink/sdrdaemonsink/sdrdaemonsinkplugin.cpp @@ -26,7 +26,7 @@ const PluginDescriptor SDRdaemonSinkPlugin::m_pluginDescriptor = { QString("SDRdaemon sink output"), - QString("3.8.0"), + QString("3.8.6"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index e6b10d2a6..1e7c82610 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -583,6 +582,7 @@ int AirspyInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -592,8 +592,6 @@ int AirspyInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/airspy/airspyplugin.cpp b/plugins/samplesource/airspy/airspyplugin.cpp index 43fe367a9..0fc7d5003 100644 --- a/plugins/samplesource/airspy/airspyplugin.cpp +++ b/plugins/samplesource/airspy/airspyplugin.cpp @@ -27,7 +27,7 @@ const PluginDescriptor AirspyPlugin::m_pluginDescriptor = { QString("Airspy Input"), - QString("3.8.0"), + QString("3.8.6"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index f8e82f5a8..1169e2663 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -18,7 +18,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -581,6 +580,7 @@ int BladerfInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -590,8 +590,6 @@ int BladerfInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index 90230f652..e13f0d2ec 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" @@ -715,6 +714,7 @@ int FCDProInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -724,7 +724,5 @@ int FCDProInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index dd232ccc7..b17c5ec64 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -19,7 +19,6 @@ #include #include #include -#include #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" @@ -426,6 +425,7 @@ int FCDProPlusInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -435,8 +435,6 @@ int FCDProPlusInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index e6189f363..23f0643d4 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -340,6 +339,7 @@ int FileSourceInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -349,8 +349,6 @@ int FileSourceInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/hackrfinput/hackrfinput.cpp b/plugins/samplesource/hackrfinput/hackrfinput.cpp index 1ad13ef60..304f99a22 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinput.cpp @@ -18,7 +18,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -525,6 +524,7 @@ int HackRFInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -534,8 +534,6 @@ int HackRFInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index d8809076f..fc9353df4 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include "lime/LimeSuite.h" #include "SWGDeviceSettings.h" @@ -1281,6 +1280,7 @@ int LimeSDRInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -1290,8 +1290,6 @@ int LimeSDRInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index a00125204..44a903b27 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -15,7 +15,6 @@ /////////////////////////////////////////////////////////////////////////////////// #include -#include #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" @@ -601,6 +600,7 @@ int PlutoSDRInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -610,8 +610,6 @@ int PlutoSDRInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index bc1c52978..57e43ce9c 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #include "SWGDeviceSettings.h" #include "SWGRtlSdrSettings.h" @@ -564,6 +563,7 @@ int RTLSDRInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -573,7 +573,5 @@ int RTLSDRInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp index 86bfb4c5b..9b4ed86d0 100644 --- a/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp +++ b/plugins/samplesource/sdrdaemonsource/sdrdaemonsourceinput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -245,6 +244,7 @@ int SDRdaemonSourceInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -254,8 +254,6 @@ int SDRdaemonSourceInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index 32a4af40a..f63a91c63 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -16,7 +16,6 @@ #include #include -#include #include #include "SWGDeviceSettings.h" @@ -605,6 +604,7 @@ int SDRPlayInput::webapiRun( SWGSDRangel::SWGDeviceState& response, QString& errorMessage __attribute__((unused))) { + m_deviceAPI->getDeviceEngineStateStr(*response.getState()); MsgStartStop *message = MsgStartStop::create(run); m_inputMessageQueue.push(message); @@ -614,8 +614,6 @@ int SDRPlayInput::webapiRun( m_guiMessageQueue->push(msgToGUI); } - usleep(100000); - m_deviceAPI->getDeviceEngineStateStr(*response.getState()); return 200; } diff --git a/sdrbase/resources/index.html b/sdrbase/resources/index.html index 90bfb1166..66a116e0d 100644 --- a/sdrbase/resources/index.html +++ b/sdrbase/resources/index.html @@ -4682,7 +4682,7 @@ except ApiException as e:

Responses

-

Status: 200 - On success return current state

+

Status: 200 - On success return state before change