mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-07-31 13:02:27 -04:00
SoapySDR support: REST API: rest of input and output methods
This commit is contained in:
parent
a71982d60a
commit
da5ac0f0c6
@ -1196,6 +1196,181 @@ bool SoapySDROutput::applySettings(const SoapySDROutputSettings& settings, bool
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SoapySDROutput::webapiSettingsGet(
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
response.setSoapySdrOutputSettings(new SWGSDRangel::SWGSoapySDROutputSettings());
|
||||||
|
response.getSoapySdrOutputSettings()->init();
|
||||||
|
webapiFormatDeviceSettings(response, m_settings);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDROutput::webapiSettingsPutPatch(
|
||||||
|
bool force,
|
||||||
|
const QStringList& deviceSettingsKeys,
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
SoapySDROutputSettings settings = m_settings;
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("centerFrequency")) {
|
||||||
|
settings.m_centerFrequency = response.getSoapySdrOutputSettings()->getCenterFrequency();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("LOppmTenths")) {
|
||||||
|
settings.m_LOppmTenths = response.getSoapySdrOutputSettings()->getLOppmTenths();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("devSampleRate")) {
|
||||||
|
settings.m_devSampleRate = response.getSoapySdrOutputSettings()->getDevSampleRate();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("bandwidth")) {
|
||||||
|
settings.m_bandwidth = response.getSoapySdrOutputSettings()->getBandwidth();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("log2Interp")) {
|
||||||
|
settings.m_log2Interp = response.getSoapySdrOutputSettings()->getLog2Interp();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("transverterDeltaFrequency")) {
|
||||||
|
settings.m_transverterDeltaFrequency = response.getSoapySdrOutputSettings()->getTransverterDeltaFrequency();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("transverterMode")) {
|
||||||
|
settings.m_transverterMode = response.getSoapySdrOutputSettings()->getTransverterMode() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("antenna")) {
|
||||||
|
settings.m_antenna = *response.getSoapySdrOutputSettings()->getAntenna();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("tunableElements"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *tunableElements = response.getSoapySdrOutputSettings()->getTunableElements();
|
||||||
|
|
||||||
|
for (const auto itArg : *tunableElements)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_tunableElements.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_tunableElements.end()) && (m_settings.m_tunableElements[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_tunableElements[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("globalGain")) {
|
||||||
|
settings.m_globalGain = response.getSoapySdrOutputSettings()->getGlobalGain();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("individualGains"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *individualGains = response.getSoapySdrOutputSettings()->getIndividualGains();
|
||||||
|
|
||||||
|
for (const auto itArg : *individualGains)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_individualGains.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_individualGains.end()) && (m_settings.m_individualGains[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_individualGains[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("autoGain")) {
|
||||||
|
settings.m_autoGain = response.getSoapySdrOutputSettings()->getAutoGain() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("autoDCCorrection")) {
|
||||||
|
settings.m_autoDCCorrection = response.getSoapySdrOutputSettings()->getAutoDcCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("autoIQCorrection")) {
|
||||||
|
settings.m_autoIQCorrection = response.getSoapySdrOutputSettings()->getAutoIqCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("dcCorrection"))
|
||||||
|
{
|
||||||
|
settings.m_dcCorrection.real(response.getSoapySdrOutputSettings()->getDcCorrection()->getReal());
|
||||||
|
settings.m_dcCorrection.imag(response.getSoapySdrOutputSettings()->getDcCorrection()->getImag());
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("iqCorrection"))
|
||||||
|
{
|
||||||
|
settings.m_iqCorrection.real(response.getSoapySdrOutputSettings()->getIqCorrection()->getReal());
|
||||||
|
settings.m_iqCorrection.imag(response.getSoapySdrOutputSettings()->getIqCorrection()->getImag());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("streamArgSettings"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *streamArgSettings = response.getSoapySdrOutputSettings()->getStreamArgSettings();
|
||||||
|
|
||||||
|
for (const auto itArg : *streamArgSettings)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_streamArgSettings.end()) && (m_settings.m_streamArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_streamArgSettings[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("deviceArgSettings"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *deviceArgSettings = response.getSoapySdrOutputSettings()->getDeviceArgSettings();
|
||||||
|
|
||||||
|
for (const auto itArg : *deviceArgSettings)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_deviceArgSettings.end()) && (m_settings.m_deviceArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_deviceArgSettings[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MsgConfigureSoapySDROutput *msg = MsgConfigureSoapySDROutput::create(settings, force);
|
||||||
|
m_inputMessageQueue.push(msg);
|
||||||
|
|
||||||
|
if (m_guiMessageQueue) // forward to GUI if any
|
||||||
|
{
|
||||||
|
MsgConfigureSoapySDROutput *msgToGUI = MsgConfigureSoapySDROutput::create(settings, force);
|
||||||
|
m_guiMessageQueue->push(msgToGUI);
|
||||||
|
}
|
||||||
|
|
||||||
|
webapiFormatDeviceSettings(response, settings);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDROutput::webapiReportGet(SWGSDRangel::SWGDeviceReport& response, QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
response.setSoapySdrOutputReport(new SWGSDRangel::SWGSoapySDRReport());
|
||||||
|
response.getSoapySdrOutputReport()->init();
|
||||||
|
webapiFormatDeviceReport(response);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDROutput::webapiRunGet(
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDROutput::webapiRun(
|
||||||
|
bool run,
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
|
||||||
|
MsgStartStop *message = MsgStartStop::create(run);
|
||||||
|
m_inputMessageQueue.push(message);
|
||||||
|
|
||||||
|
if (m_guiMessageQueue) // forward to GUI if any
|
||||||
|
{
|
||||||
|
MsgStartStop *msgToGUI = MsgStartStop::create(run);
|
||||||
|
m_guiMessageQueue->push(msgToGUI);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
void SoapySDROutput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDROutputSettings& settings)
|
void SoapySDROutput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDROutputSettings& settings)
|
||||||
{
|
{
|
||||||
response.getSoapySdrOutputSettings()->setCenterFrequency(settings.m_centerFrequency);
|
response.getSoapySdrOutputSettings()->setCenterFrequency(settings.m_centerFrequency);
|
||||||
|
@ -150,6 +150,29 @@ public:
|
|||||||
bool hasIQAutoCorrection() { return false; } // not in SoapySDR interface
|
bool hasIQAutoCorrection() { return false; } // not in SoapySDR interface
|
||||||
bool hasIQCorrectionValue();
|
bool hasIQCorrectionValue();
|
||||||
|
|
||||||
|
virtual int webapiSettingsGet(
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiSettingsPutPatch(
|
||||||
|
bool force,
|
||||||
|
const QStringList& deviceSettingsKeys,
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiReportGet(
|
||||||
|
SWGSDRangel::SWGDeviceReport& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiRunGet(
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiRun(
|
||||||
|
bool run,
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DeviceSinkAPI *m_deviceAPI;
|
DeviceSinkAPI *m_deviceAPI;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
|
@ -1248,6 +1248,193 @@ bool SoapySDRInput::applySettings(const SoapySDRInputSettings& settings, bool fo
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SoapySDRInput::webapiSettingsGet(
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
response.setSoapySdrInputSettings(new SWGSDRangel::SWGSoapySDRInputSettings());
|
||||||
|
response.getSoapySdrInputSettings()->init();
|
||||||
|
webapiFormatDeviceSettings(response, m_settings);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDRInput::webapiSettingsPutPatch(
|
||||||
|
bool force,
|
||||||
|
const QStringList& deviceSettingsKeys,
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
SoapySDRInputSettings settings = m_settings;
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("centerFrequency")) {
|
||||||
|
settings.m_centerFrequency = response.getSoapySdrInputSettings()->getCenterFrequency();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("LOppmTenths")) {
|
||||||
|
settings.m_LOppmTenths = response.getSoapySdrInputSettings()->getLOppmTenths();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("devSampleRate")) {
|
||||||
|
settings.m_devSampleRate = response.getSoapySdrInputSettings()->getDevSampleRate();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("bandwidth")) {
|
||||||
|
settings.m_bandwidth = response.getSoapySdrInputSettings()->getBandwidth();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("log2Decim")) {
|
||||||
|
settings.m_log2Decim = response.getSoapySdrInputSettings()->getLog2Decim();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("fcPos")) {
|
||||||
|
settings.m_fcPos = static_cast<SoapySDRInputSettings::fcPos_t>(response.getSoapySdrInputSettings()->getFcPos());
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("softDCCorrection")) {
|
||||||
|
settings.m_softDCCorrection = response.getSoapySdrInputSettings()->getSoftDcCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("softIQCorrection")) {
|
||||||
|
settings.m_softIQCorrection = response.getSoapySdrInputSettings()->getSoftIqCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("transverterDeltaFrequency")) {
|
||||||
|
settings.m_transverterDeltaFrequency = response.getSoapySdrInputSettings()->getTransverterDeltaFrequency();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("transverterMode")) {
|
||||||
|
settings.m_transverterMode = response.getSoapySdrInputSettings()->getTransverterMode() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("fileRecordName")) {
|
||||||
|
settings.m_fileRecordName = *response.getSoapySdrInputSettings()->getFileRecordName();
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("antenna")) {
|
||||||
|
settings.m_antenna = *response.getSoapySdrInputSettings()->getAntenna();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("tunableElements"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *tunableElements = response.getSoapySdrInputSettings()->getTunableElements();
|
||||||
|
|
||||||
|
for (const auto itArg : *tunableElements)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_tunableElements.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_tunableElements.end()) && (m_settings.m_tunableElements[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_tunableElements[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("globalGain")) {
|
||||||
|
settings.m_globalGain = response.getSoapySdrInputSettings()->getGlobalGain();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("individualGains"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *individualGains = response.getSoapySdrInputSettings()->getIndividualGains();
|
||||||
|
|
||||||
|
for (const auto itArg : *individualGains)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_individualGains.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_individualGains.end()) && (m_settings.m_individualGains[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_individualGains[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("autoGain")) {
|
||||||
|
settings.m_autoGain = response.getSoapySdrInputSettings()->getAutoGain() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("autoDCCorrection")) {
|
||||||
|
settings.m_autoDCCorrection = response.getSoapySdrInputSettings()->getAutoDcCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("autoIQCorrection")) {
|
||||||
|
settings.m_autoIQCorrection = response.getSoapySdrInputSettings()->getAutoIqCorrection() != 0;
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("dcCorrection"))
|
||||||
|
{
|
||||||
|
settings.m_dcCorrection.real(response.getSoapySdrInputSettings()->getDcCorrection()->getReal());
|
||||||
|
settings.m_dcCorrection.imag(response.getSoapySdrInputSettings()->getDcCorrection()->getImag());
|
||||||
|
}
|
||||||
|
if (deviceSettingsKeys.contains("iqCorrection"))
|
||||||
|
{
|
||||||
|
settings.m_iqCorrection.real(response.getSoapySdrInputSettings()->getIqCorrection()->getReal());
|
||||||
|
settings.m_iqCorrection.imag(response.getSoapySdrInputSettings()->getIqCorrection()->getImag());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("streamArgSettings"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *streamArgSettings = response.getSoapySdrInputSettings()->getStreamArgSettings();
|
||||||
|
|
||||||
|
for (const auto itArg : *streamArgSettings)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_streamArgSettings.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_streamArgSettings.end()) && (m_settings.m_streamArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_streamArgSettings[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (deviceSettingsKeys.contains("deviceArgSettings"))
|
||||||
|
{
|
||||||
|
QList<SWGSDRangel::SWGArgValue*> *deviceArgSettings = response.getSoapySdrInputSettings()->getDeviceArgSettings();
|
||||||
|
|
||||||
|
for (const auto itArg : *deviceArgSettings)
|
||||||
|
{
|
||||||
|
auto ovalue = settings.m_deviceArgSettings.find(*itArg->getKey());
|
||||||
|
|
||||||
|
if ((ovalue != settings.m_deviceArgSettings.end()) && (m_settings.m_deviceArgSettings[*itArg->getKey()] != *ovalue)) {
|
||||||
|
m_settings.m_deviceArgSettings[*itArg->getKey()] = *ovalue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MsgConfigureSoapySDRInput *msg = MsgConfigureSoapySDRInput::create(settings, force);
|
||||||
|
m_inputMessageQueue.push(msg);
|
||||||
|
|
||||||
|
if (m_guiMessageQueue) // forward to GUI if any
|
||||||
|
{
|
||||||
|
MsgConfigureSoapySDRInput *msgToGUI = MsgConfigureSoapySDRInput::create(settings, force);
|
||||||
|
m_guiMessageQueue->push(msgToGUI);
|
||||||
|
}
|
||||||
|
|
||||||
|
webapiFormatDeviceSettings(response, settings);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDRInput::webapiReportGet(SWGSDRangel::SWGDeviceReport& response, QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
response.setSoapySdrInputReport(new SWGSDRangel::SWGSoapySDRReport());
|
||||||
|
response.getSoapySdrInputReport()->init();
|
||||||
|
webapiFormatDeviceReport(response);
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDRInput::webapiRunGet(
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SoapySDRInput::webapiRun(
|
||||||
|
bool run,
|
||||||
|
SWGSDRangel::SWGDeviceState& response,
|
||||||
|
QString& errorMessage)
|
||||||
|
{
|
||||||
|
(void) errorMessage;
|
||||||
|
m_deviceAPI->getDeviceEngineStateStr(*response.getState());
|
||||||
|
MsgStartStop *message = MsgStartStop::create(run);
|
||||||
|
m_inputMessageQueue.push(message);
|
||||||
|
|
||||||
|
if (m_guiMessageQueue) // forward to GUI if any
|
||||||
|
{
|
||||||
|
MsgStartStop *msgToGUI = MsgStartStop::create(run);
|
||||||
|
m_guiMessageQueue->push(msgToGUI);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 200;
|
||||||
|
}
|
||||||
|
|
||||||
void SoapySDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDRInputSettings& settings)
|
void SoapySDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDRInputSettings& settings)
|
||||||
{
|
{
|
||||||
response.getSoapySdrInputSettings()->setCenterFrequency(settings.m_centerFrequency);
|
response.getSoapySdrInputSettings()->setCenterFrequency(settings.m_centerFrequency);
|
||||||
|
@ -172,6 +172,29 @@ public:
|
|||||||
bool hasIQAutoCorrection() { return false; } // not in SoapySDR interface
|
bool hasIQAutoCorrection() { return false; } // not in SoapySDR interface
|
||||||
bool hasIQCorrectionValue();
|
bool hasIQCorrectionValue();
|
||||||
|
|
||||||
|
virtual int webapiSettingsGet(
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiSettingsPutPatch(
|
||||||
|
bool force,
|
||||||
|
const QStringList& deviceSettingsKeys,
|
||||||
|
SWGSDRangel::SWGDeviceSettings& response, // query + response
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
virtual int webapiReportGet(
|
||||||
|
SWGSDRangel::SWGDeviceReport& response,
|
||||||
|
QString& errorMessage);
|
||||||
|
|
||||||
|
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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user