mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
Web API: LimeSDROutput settings implementation
This commit is contained in:
parent
8625a07098
commit
87772cb8fa
@ -26,6 +26,7 @@ if (BUILD_DEBIAN)
|
||||
include_directories(
|
||||
.
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||
${CMAKE_SOURCE_DIR}/devices
|
||||
${LIBLIMESUITESRC}/src
|
||||
${LIBLIMESUITESRC}/src/ADF4002
|
||||
@ -41,6 +42,7 @@ else (BUILD_DEBIAN)
|
||||
include_directories(
|
||||
.
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||
${CMAKE_SOURCE_DIR}/devices
|
||||
${LIMESUITE_INCLUDE_DIR}
|
||||
)
|
||||
@ -66,6 +68,7 @@ target_link_libraries(outputlimesdr
|
||||
limesuite
|
||||
sdrbase
|
||||
sdrgui
|
||||
swagger
|
||||
limesdrdevice
|
||||
)
|
||||
else (BUILD_DEBIAN)
|
||||
@ -74,6 +77,7 @@ target_link_libraries(outputlimesdr
|
||||
${LIMESUITE_LIBRARY}
|
||||
sdrbase
|
||||
sdrgui
|
||||
swagger
|
||||
limesdrdevice
|
||||
)
|
||||
endif (BUILD_DEBIAN)
|
||||
|
@ -20,6 +20,9 @@
|
||||
#include <string.h>
|
||||
#include "lime/LimeSuite.h"
|
||||
|
||||
#include "SWGDeviceSettings.h"
|
||||
#include "SWGLimeSdrOutputSettings.h"
|
||||
|
||||
#include "device/devicesourceapi.h"
|
||||
#include "device/devicesinkapi.h"
|
||||
#include "dsp/dspcommands.h"
|
||||
@ -1022,3 +1025,55 @@ bool LimeSDROutput::applySettings(const LimeSDROutputSettings& settings, bool fo
|
||||
return true;
|
||||
}
|
||||
|
||||
int LimeSDROutput::webapiSettingsGet(
|
||||
SWGSDRangel::SWGDeviceSettings& response,
|
||||
QString& errorMessage __attribute__((unused)))
|
||||
{
|
||||
response.setLimeSdrOutputSettings(new SWGSDRangel::SWGLimeSdrOutputSettings());
|
||||
response.getLimeSdrOutputSettings()->setAntennaPath((int) m_settings.m_antennaPath);
|
||||
response.getLimeSdrOutputSettings()->setCenterFrequency(m_settings.m_centerFrequency);
|
||||
response.getLimeSdrOutputSettings()->setDevSampleRate(m_settings.m_devSampleRate);
|
||||
response.getLimeSdrOutputSettings()->setExtClock(m_settings.m_extClock ? 1 : 0);
|
||||
response.getLimeSdrOutputSettings()->setExtClockFreq(m_settings.m_extClockFreq);
|
||||
response.getLimeSdrOutputSettings()->setGain(m_settings.m_gain);
|
||||
response.getLimeSdrOutputSettings()->setLog2HardInterp(m_settings.m_log2HardInterp);
|
||||
response.getLimeSdrOutputSettings()->setLog2SoftInterp(m_settings.m_log2SoftInterp);
|
||||
response.getLimeSdrOutputSettings()->setLpfBw(m_settings.m_lpfBW);
|
||||
response.getLimeSdrOutputSettings()->setLpfFirEnable(m_settings.m_lpfFIREnable ? 1 : 0);
|
||||
response.getLimeSdrOutputSettings()->setLpfFirbw(m_settings.m_lpfFIRBW);
|
||||
response.getLimeSdrOutputSettings()->setNcoEnable(m_settings.m_ncoEnable ? 1 : 0);
|
||||
response.getLimeSdrOutputSettings()->setNcoFrequency(m_settings.m_ncoFrequency);
|
||||
return 200;
|
||||
}
|
||||
|
||||
int LimeSDROutput::webapiSettingsPutPatch(
|
||||
bool force,
|
||||
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||
QString& errorMessage __attribute__((unused)))
|
||||
{
|
||||
LimeSDROutputSettings settings;
|
||||
settings.m_antennaPath = (LimeSDROutputSettings::PathRFE) response.getLimeSdrOutputSettings()->getAntennaPath();
|
||||
settings.m_centerFrequency = response.getLimeSdrOutputSettings()->getCenterFrequency();
|
||||
settings.m_devSampleRate = response.getLimeSdrOutputSettings()->getDevSampleRate();
|
||||
settings.m_extClock = response.getLimeSdrOutputSettings()->getExtClock() != 0;
|
||||
settings.m_extClockFreq = response.getLimeSdrOutputSettings()->getExtClockFreq();
|
||||
settings.m_gain = response.getLimeSdrOutputSettings()->getGain();
|
||||
settings.m_log2HardInterp = response.getLimeSdrOutputSettings()->getLog2HardInterp();
|
||||
settings.m_log2SoftInterp = response.getLimeSdrOutputSettings()->getLog2SoftInterp();
|
||||
settings.m_lpfBW = response.getLimeSdrOutputSettings()->getLpfBw();
|
||||
settings.m_lpfFIREnable = response.getLimeSdrOutputSettings()->getLpfFirEnable() != 0;
|
||||
settings.m_lpfFIRBW = response.getLimeSdrOutputSettings()->getLpfFirbw();
|
||||
settings.m_ncoEnable = response.getLimeSdrOutputSettings()->getNcoEnable() != 0;
|
||||
settings.m_ncoFrequency = response.getLimeSdrOutputSettings()->getNcoFrequency();
|
||||
|
||||
MsgConfigureLimeSDR *msg = MsgConfigureLimeSDR::create(settings, force);
|
||||
m_inputMessageQueue.push(msg);
|
||||
|
||||
if (m_guiMessageQueue) // forward to GUI if any
|
||||
{
|
||||
MsgConfigureLimeSDR *msgToGUI = MsgConfigureLimeSDR::create(settings, force);
|
||||
m_guiMessageQueue->push(msgToGUI);
|
||||
}
|
||||
|
||||
return 200;
|
||||
}
|
||||
|
@ -178,6 +178,15 @@ public:
|
||||
|
||||
virtual bool handleMessage(const Message& message);
|
||||
|
||||
virtual int webapiSettingsGet(
|
||||
SWGSDRangel::SWGDeviceSettings& response,
|
||||
QString& errorMessage);
|
||||
|
||||
virtual int webapiSettingsPutPatch(
|
||||
bool force,
|
||||
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||
QString& errorMessage);
|
||||
|
||||
std::size_t getChannelIndex();
|
||||
void getLORange(float& minF, float& maxF, float& stepF) const;
|
||||
void getSRRange(float& minF, float& maxF, float& stepF) const;
|
||||
|
@ -23,6 +23,7 @@ CONFIG(MINGW64):LIBLIMESUITESRC = "D:\softs\LimeSuite"
|
||||
INCLUDEPATH += $$PWD
|
||||
INCLUDEPATH += ../../../sdrbase
|
||||
INCLUDEPATH += ../../../sdrgui
|
||||
INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client
|
||||
INCLUDEPATH += ../../../devices
|
||||
INCLUDEPATH += ../../../liblimesuite/srcmw
|
||||
INCLUDEPATH += $$LIBLIMESUITESRC/src
|
||||
@ -55,6 +56,7 @@ FORMS += limesdroutputgui.ui
|
||||
|
||||
LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase
|
||||
LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui
|
||||
LIBS += -L../../../swagger/$${build_subdir} -lswagger
|
||||
LIBS += -L../../../liblimesuite/$${build_subdir} -lliblimesuite
|
||||
LIBS += -L../../../devices/$${build_subdir} -ldevices
|
||||
|
||||
|
@ -241,6 +241,14 @@ void LimeSDROutputGUI::handleInputMessages()
|
||||
|
||||
delete message;
|
||||
}
|
||||
else if (LimeSDROutput::MsgConfigureLimeSDR::match(*message))
|
||||
{
|
||||
const LimeSDROutput::MsgConfigureLimeSDR& cfg = (LimeSDROutput::MsgConfigureLimeSDR&) *message;
|
||||
m_settings = cfg.getSettings();
|
||||
displaySettings();
|
||||
|
||||
delete message;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (handleMessage(*message)) {
|
||||
|
Loading…
Reference in New Issue
Block a user