Web API: implemented device run APIs for BladeRF input, SDRdaemon input and SDRplay

This commit is contained in:
f4exb 2017-12-09 12:41:42 +01:00
parent 7d122b6b67
commit 9819e01da5
14 changed files with 156 additions and 3 deletions

View File

@ -1,5 +1,7 @@
project(bladerfinput) project(bladerfinput)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(bladerfinput_SOURCES set(bladerfinput_SOURCES
bladerfinputgui.cpp bladerfinputgui.cpp
bladerfinput.cpp bladerfinput.cpp
@ -24,6 +26,7 @@ if (BUILD_DEBIAN)
include_directories( include_directories(
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CMAKE_SOURCE_DIR}/devices ${CMAKE_SOURCE_DIR}/devices
${LIBBLADERFLIBSRC}/include ${LIBBLADERFLIBSRC}/include
${LIBBLADERFLIBSRC}/src ${LIBBLADERFLIBSRC}/src
@ -32,6 +35,7 @@ else (BUILD_DEBIAN)
include_directories( include_directories(
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CMAKE_SOURCE_DIR}/devices ${CMAKE_SOURCE_DIR}/devices
${LIBBLADERF_INCLUDE_DIR} ${LIBBLADERF_INCLUDE_DIR}
) )
@ -57,6 +61,7 @@ target_link_libraries(inputbladerf
bladerf bladerf
sdrbase sdrbase
sdrgui sdrgui
swagger
bladerfdevice bladerfdevice
) )
else (BUILD_DEBIAN) else (BUILD_DEBIAN)
@ -65,6 +70,7 @@ target_link_libraries(inputbladerf
${LIBBLADERF_LIBRARIES} ${LIBBLADERF_LIBRARIES}
sdrbase sdrbase
sdrgui sdrgui
swagger
bladerfdevice bladerfdevice
) )
endif (BUILD_DEBIAN) endif (BUILD_DEBIAN)

View File

@ -20,6 +20,10 @@
#include <errno.h> #include <errno.h>
#include <QDebug> #include <QDebug>
#include "SWGDeviceSettings.h"
#include "SWGRtlSdrSettings.h"
#include "SWGDeviceState.h"
#include "util/simpleserializer.h" #include "util/simpleserializer.h"
#include "dsp/dspcommands.h" #include "dsp/dspcommands.h"
#include "dsp/dspengine.h" #include "dsp/dspengine.h"
@ -542,6 +546,37 @@ bladerf_lna_gain BladerfInput::getLnaGain(int lnaGain)
} }
} }
int BladerfInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}
int BladerfInput::webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
if (run)
{
if (m_deviceAPI->initAcquisition())
{
m_deviceAPI->startAcquisition();
DSPEngine::instance()->startAudioOutput();
}
}
else
{
m_deviceAPI->stopAcquisition();
DSPEngine::instance()->stopAudioOutput();
}
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}
//struct bladerf *BladerfInput::open_bladerf_from_serial(const char *serial) //struct bladerf *BladerfInput::open_bladerf_from_serial(const char *serial)
//{ //{
// int status; // int status;

View File

@ -87,6 +87,15 @@ public:
virtual bool handleMessage(const Message& message); virtual bool handleMessage(const Message& message);
virtual int webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
virtual int webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
private: private:
bool openDevice(); bool openDevice();
void closeDevice(); void closeDevice();

View File

@ -22,6 +22,7 @@ CONFIG(MINGW64):LIBBLADERFSRC = "D:\softs\bladeRF\host\libraries\libbladeRF\incl
INCLUDEPATH += $$PWD INCLUDEPATH += $$PWD
INCLUDEPATH += ../../../sdrbase INCLUDEPATH += ../../../sdrbase
INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../sdrgui
INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client
INCLUDEPATH += ../../../devices INCLUDEPATH += ../../../devices
INCLUDEPATH += $$LIBBLADERFSRC INCLUDEPATH += $$LIBBLADERFSRC
@ -44,6 +45,7 @@ FORMS += bladerfinputgui.ui
LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase
LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui
LIBS += -L../../../swagger/$${build_subdir} -lswagger
LIBS += -L../../../libbladerf/$${build_subdir} -llibbladerf LIBS += -L../../../libbladerf/$${build_subdir} -llibbladerf
LIBS += -L../../../devices/$${build_subdir} -ldevices LIBS += -L../../../devices/$${build_subdir} -ldevices

View File

@ -27,7 +27,7 @@
const PluginDescriptor BlderfInputPlugin::m_pluginDescriptor = { const PluginDescriptor BlderfInputPlugin::m_pluginDescriptor = {
QString("BladerRF Input"), QString("BladerRF Input"),
QString("3.8.2"), QString("3.8.6"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,

View File

@ -1,5 +1,7 @@
project(sdrdaemonsource) project(sdrdaemonsource)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
if (HAS_SSSE3) if (HAS_SSSE3)
message(STATUS "SDRdaemonSource: use SSSE3 SIMD" ) message(STATUS "SDRdaemonSource: use SSSE3 SIMD" )
elseif (HAS_NEON) elseif (HAS_NEON)
@ -49,6 +51,7 @@ if (BUILD_DEBIAN)
target_include_directories(inputsdrdaemonsource PUBLIC target_include_directories(inputsdrdaemonsource PUBLIC
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${LIBCM256CCSRC} ${LIBCM256CCSRC}
${LIBNANOMSG_INCLUDE_DIR} ${LIBNANOMSG_INCLUDE_DIR}
) )
@ -56,6 +59,7 @@ else (BUILD_DEBIAN)
target_include_directories(inputsdrdaemonsource PUBLIC target_include_directories(inputsdrdaemonsource PUBLIC
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CM256CC_INCLUDE_DIR} ${CM256CC_INCLUDE_DIR}
${LIBNANOMSG_INCLUDE_DIR} ${LIBNANOMSG_INCLUDE_DIR}
) )
@ -68,6 +72,7 @@ target_link_libraries(inputsdrdaemonsource
${LIBNANOMSG_LIBRARIES} ${LIBNANOMSG_LIBRARIES}
sdrbase sdrbase
sdrgui sdrgui
swagger
) )
else (BUILD_DEBIAN) else (BUILD_DEBIAN)
target_link_libraries(inputsdrdaemonsource target_link_libraries(inputsdrdaemonsource
@ -76,6 +81,7 @@ target_link_libraries(inputsdrdaemonsource
${LIBNANOMSG_LIBRARIES} ${LIBNANOMSG_LIBRARIES}
sdrbase sdrbase
sdrgui sdrgui
swagger
) )
endif (BUILD_DEBIAN) endif (BUILD_DEBIAN)

View File

@ -20,6 +20,7 @@ CONFIG(MINGW64):LIBCM256CCSRC = "D:\softs\cm256cc"
INCLUDEPATH += $$PWD INCLUDEPATH += $$PWD
INCLUDEPATH += ../../../sdrbase INCLUDEPATH += ../../../sdrbase
INCLUDEPATH += ../../../sdrgui INCLUDEPATH += ../../../sdrgui
INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client
INCLUDEPATH += $$LIBNANOMSGSRC/src INCLUDEPATH += $$LIBNANOMSGSRC/src
INCLUDEPATH += $$LIBCM256CCSRC INCLUDEPATH += $$LIBCM256CCSRC
@ -55,6 +56,7 @@ FORMS += sdrdaemonsourcegui.ui
LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase
LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui
LIBS += -L../../../swagger/$${build_subdir} -lswagger
LIBS += -L../../../nanomsg/$${build_subdir} -lnanomsg LIBS += -L../../../nanomsg/$${build_subdir} -lnanomsg
LIBS += -L../../../cm256cc/$${build_subdir} -lcm256cc LIBS += -L../../../cm256cc/$${build_subdir} -lcm256cc

View File

@ -18,6 +18,10 @@
#include <errno.h> #include <errno.h>
#include <QDebug> #include <QDebug>
#include "SWGDeviceSettings.h"
#include "SWGRtlSdrSettings.h"
#include "SWGDeviceState.h"
#include "util/simpleserializer.h" #include "util/simpleserializer.h"
#include "dsp/dspcommands.h" #include "dsp/dspcommands.h"
#include "dsp/dspengine.h" #include "dsp/dspengine.h"
@ -206,3 +210,34 @@ void SDRdaemonSourceInput::setMessageQueueToGUI(MessageQueue *queue)
m_SDRdaemonUDPHandler->setMessageQueueToGUI(queue); m_SDRdaemonUDPHandler->setMessageQueueToGUI(queue);
} }
int SDRdaemonSourceInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}
int SDRdaemonSourceInput::webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
if (run)
{
if (m_deviceAPI->initAcquisition())
{
m_deviceAPI->startAcquisition();
DSPEngine::instance()->startAudioOutput();
}
}
else
{
m_deviceAPI->stopAcquisition();
DSPEngine::instance()->stopAudioOutput();
}
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}

View File

@ -320,6 +320,15 @@ public:
virtual void setMessageQueueToGUI(MessageQueue *queue); virtual void setMessageQueueToGUI(MessageQueue *queue);
virtual int webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
virtual int webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
private: private:
DeviceSourceAPI *m_deviceAPI; DeviceSourceAPI *m_deviceAPI;
QMutex m_mutex; QMutex m_mutex;

View File

@ -26,7 +26,7 @@
const PluginDescriptor SDRdaemonSourcePlugin::m_pluginDescriptor = { const PluginDescriptor SDRdaemonSourcePlugin::m_pluginDescriptor = {
QString("SDRdaemon source input"), QString("SDRdaemon source input"),
QString("3.8.0"), QString("3.8.6"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,

View File

@ -1,5 +1,7 @@
project(sdrplay) project(sdrplay)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(sdrplay_SOURCES set(sdrplay_SOURCES
sdrplaygui.cpp sdrplaygui.cpp
sdrplayinput.cpp sdrplayinput.cpp
@ -24,6 +26,7 @@ if (BUILD_DEBIAN)
include_directories( include_directories(
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${LIBMIRISDRSRC}/include ${LIBMIRISDRSRC}/include
${LIBMIRISDRSRC}/src ${LIBMIRISDRSRC}/src
) )
@ -31,6 +34,7 @@ else (BUILD_DEBIAN)
include_directories( include_directories(
. .
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${LIBMIRISDR_INCLUDE_DIR} ${LIBMIRISDR_INCLUDE_DIR}
) )
endif (BUILD_DEBIAN) endif (BUILD_DEBIAN)
@ -52,6 +56,7 @@ target_link_libraries(inputsdrplay
mirisdr mirisdr
sdrbase sdrbase
sdrgui sdrgui
swagger
) )
else (BUILD_DEBIAN) else (BUILD_DEBIAN)
target_link_libraries(inputsdrplay target_link_libraries(inputsdrplay
@ -59,6 +64,7 @@ target_link_libraries(inputsdrplay
${LIBMIRISDR_LIBRARIES} ${LIBMIRISDR_LIBRARIES}
sdrbase sdrbase
sdrgui sdrgui
swagger
) )
endif (BUILD_DEBIAN) endif (BUILD_DEBIAN)

View File

@ -18,6 +18,10 @@
#include <errno.h> #include <errno.h>
#include <QDebug> #include <QDebug>
#include "SWGDeviceSettings.h"
#include "SWGRtlSdrSettings.h"
#include "SWGDeviceState.h"
#include "util/simpleserializer.h" #include "util/simpleserializer.h"
#include "dsp/dspcommands.h" #include "dsp/dspcommands.h"
#include "dsp/dspengine.h" #include "dsp/dspengine.h"
@ -566,4 +570,34 @@ bool SDRPlayInput::setCenterFrequency(quint64 freq_hz)
} }
} }
int SDRPlayInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}
int SDRPlayInput::webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
{
if (run)
{
if (m_deviceAPI->initAcquisition())
{
m_deviceAPI->startAcquisition();
DSPEngine::instance()->startAudioOutput();
}
}
else
{
m_deviceAPI->stopAcquisition();
DSPEngine::instance()->stopAudioOutput();
}
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
return 200;
}

View File

@ -114,6 +114,15 @@ public:
virtual bool handleMessage(const Message& message); virtual bool handleMessage(const Message& message);
virtual int webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
virtual int webapiRun(
bool run,
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
private: private:
bool openDevice(); bool openDevice();
void closeDevice(); void closeDevice();

View File

@ -25,7 +25,7 @@
const PluginDescriptor SDRPlayPlugin::m_pluginDescriptor = { const PluginDescriptor SDRPlayPlugin::m_pluginDescriptor = {
QString("SDRPlay RSP1 Input"), QString("SDRPlay RSP1 Input"),
QString("3.8.0"), QString("3.8.6"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,