LimeSDR: implemeted WEB API for reporting

This commit is contained in:
f4exb 2018-05-26 22:16:59 +02:00
parent be15aa7cb0
commit 862c689754
17 changed files with 1288 additions and 2 deletions

View File

@ -23,6 +23,8 @@
#include "SWGDeviceSettings.h"
#include "SWGLimeSdrOutputSettings.h"
#include "SWGDeviceState.h"
#include "SWGDeviceReport.h"
#include "SWGLimeSdrOutputReport.h"
#include "device/devicesourceapi.h"
#include "device/devicesinkapi.h"
@ -1172,6 +1174,15 @@ int LimeSDROutput::webapiSettingsPutPatch(
return 200;
}
int LimeSDROutput::webapiReportGet(
SWGSDRangel::SWGDeviceReport& response,
QString& errorMessage __attribute__((unused)))
{
response.setLimeSdrOutputReport(new SWGSDRangel::SWGLimeSdrOutputReport());
response.getLimeSdrOutputReport()->init();
webapiFormatDeviceReport(response);
return 200;
}
void LimeSDROutput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const LimeSDROutputSettings& settings)
{
response.getLimeSdrOutputSettings()->setAntennaPath((int) settings.m_antennaPath);
@ -1216,3 +1227,36 @@ int LimeSDROutput::webapiRun(
return 200;
}
void LimeSDROutput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response)
{
bool success = false;
double temp = 0.0;
lms_stream_status_t status;
status.active = false;
status.fifoFilledCount = 0;
status.fifoSize = 1;
status.underrun = 0;
status.overrun = 0;
status.droppedPackets = 0;
status.linkRate = 0.0;
status.timestamp = 0;
success = (m_streamId.handle && (LMS_GetStreamStatus(&m_streamId, &status) == 0));
response.getLimeSdrOutputReport()->setSuccess(success ? 1 : 0);
response.getLimeSdrOutputReport()->setStreamActive(status.active ? 1 : 0);
response.getLimeSdrOutputReport()->setFifoSize(status.fifoSize);
response.getLimeSdrOutputReport()->setFifoFill(status.fifoFilledCount);
response.getLimeSdrOutputReport()->setUnderrunCount(status.underrun);
response.getLimeSdrOutputReport()->setOverrunCount(status.overrun);
response.getLimeSdrOutputReport()->setDroppedPacketsCount(status.droppedPackets);
response.getLimeSdrOutputReport()->setLinkRate(status.linkRate);
response.getLimeSdrOutputReport()->setHwTimestamp(status.timestamp);
if (m_deviceShared.m_deviceParams->getDevice()) {
LMS_GetChipTemperature(m_deviceShared.m_deviceParams->getDevice(), 0, &temp);
}
response.getLimeSdrOutputReport()->setTemperature(temp);
}

View File

@ -207,6 +207,10 @@ public:
SWGSDRangel::SWGDeviceSettings& response, // query + response
QString& errorMessage);
virtual int webapiReportGet(
SWGSDRangel::SWGDeviceReport& response,
QString& errorMessage);
virtual int webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
@ -244,6 +248,7 @@ private:
void resumeTxBuddies();
bool applySettings(const LimeSDROutputSettings& settings, bool force = false, bool forceNCOFrequency = false);
void webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const LimeSDROutputSettings& settings);
void webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response);
};
#endif /* PLUGINS_SAMPLESOURCE_LIMESDROUTPUT_LIMESDROUTPUT_H_ */

View File

@ -23,6 +23,8 @@
#include "SWGDeviceSettings.h"
#include "SWGLimeSdrInputSettings.h"
#include "SWGDeviceState.h"
#include "SWGDeviceReport.h"
#include "SWGLimeSdrInputReport.h"
#include "device/devicesourceapi.h"
#include "device/devicesinkapi.h"
@ -1385,6 +1387,16 @@ void LimeSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re
}
}
int LimeSDRInput::webapiReportGet(
SWGSDRangel::SWGDeviceReport& response,
QString& errorMessage __attribute__((unused)))
{
response.setLimeSdrInputReport(new SWGSDRangel::SWGLimeSdrInputReport());
response.getLimeSdrInputReport()->init();
webapiFormatDeviceReport(response);
return 200;
}
int LimeSDRInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage __attribute__((unused)))
@ -1411,3 +1423,35 @@ int LimeSDRInput::webapiRun(
return 200;
}
void LimeSDRInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response)
{
bool success = false;
double temp = 0.0;
lms_stream_status_t status;
status.active = false;
status.fifoFilledCount = 0;
status.fifoSize = 1;
status.underrun = 0;
status.overrun = 0;
status.droppedPackets = 0;
status.linkRate = 0.0;
status.timestamp = 0;
success = (m_streamId.handle && (LMS_GetStreamStatus(&m_streamId, &status) == 0));
response.getLimeSdrInputReport()->setSuccess(success ? 1 : 0);
response.getLimeSdrInputReport()->setStreamActive(status.active ? 1 : 0);
response.getLimeSdrInputReport()->setFifoSize(status.fifoSize);
response.getLimeSdrInputReport()->setFifoFill(status.fifoFilledCount);
response.getLimeSdrInputReport()->setUnderrunCount(status.underrun);
response.getLimeSdrInputReport()->setOverrunCount(status.overrun);
response.getLimeSdrInputReport()->setDroppedPacketsCount(status.droppedPackets);
response.getLimeSdrInputReport()->setLinkRate(status.linkRate);
response.getLimeSdrInputReport()->setHwTimestamp(status.timestamp);
if (m_deviceShared.m_deviceParams->getDevice()) {
LMS_GetChipTemperature(m_deviceShared.m_deviceParams->getDevice(), 0, &temp);
}
response.getLimeSdrInputReport()->setTemperature(temp);
}

View File

@ -228,6 +228,10 @@ public:
SWGSDRangel::SWGDeviceSettings& response, // query + response
QString& errorMessage);
virtual int webapiReportGet(
SWGSDRangel::SWGDeviceReport& response,
QString& errorMessage);
virtual int webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage);
@ -265,6 +269,7 @@ private:
void resumeTxBuddies();
bool applySettings(const LimeSDRInputSettings& settings, bool force = false, bool forceNCOFrequency = false);
void webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const LimeSDRInputSettings& settings);
void webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response);
};
#endif /* PLUGINS_SAMPLESOURCE_LIMESDRINPUT_LIMESDRINPUT_H_ */

View File

@ -1721,6 +1721,12 @@ margin-bottom: 20px;
"fileSourceReport" : {
"$ref" : "#/definitions/FileSourceReport"
},
"limeSdrInputReport" : {
"$ref" : "#/definitions/LimeSdrInputReport"
},
"limeSdrOutputReport" : {
"$ref" : "#/definitions/LimeSdrOutputReport"
},
"perseusReport" : {
"$ref" : "#/definitions/PerseusReport"
},
@ -2174,6 +2180,47 @@ margin-bottom: 20px;
}
},
"description" : "Summarized information about this SDRangel instance"
};
defs.LimeSdrInputReport = {
"properties" : {
"success" : {
"type" : "integer",
"description" : "1 if info was successfullt retrieved else 0"
},
"streamActive" : {
"type" : "integer",
"description" : "1 if active else 0"
},
"fifoSize" : {
"type" : "integer"
},
"fifoFill" : {
"type" : "integer"
},
"underrunCount" : {
"type" : "integer"
},
"overrunCount" : {
"type" : "integer"
},
"droppedPacketsCount" : {
"type" : "integer"
},
"linkRate" : {
"type" : "number",
"format" : "float"
},
"hwTimestamp" : {
"type" : "integer",
"format" : "uint64",
"description" : "Hardware timestamp"
},
"temperature" : {
"type" : "number",
"format" : "float"
}
},
"description" : "LimeSDR"
};
defs.LimeSdrInputSettings = {
"properties" : {
@ -2247,6 +2294,47 @@ margin-bottom: 20px;
}
},
"description" : "LimeSDR"
};
defs.LimeSdrOutputReport = {
"properties" : {
"success" : {
"type" : "integer",
"description" : "1 if info was successfullt retrieved else 0"
},
"streamActive" : {
"type" : "integer",
"description" : "1 if active else 0"
},
"fifoSize" : {
"type" : "integer"
},
"fifoFill" : {
"type" : "integer"
},
"underrunCount" : {
"type" : "integer"
},
"overrunCount" : {
"type" : "integer"
},
"droppedPacketsCount" : {
"type" : "integer"
},
"linkRate" : {
"type" : "number",
"format" : "float"
},
"hwTimestamp" : {
"type" : "integer",
"format" : "uint64",
"description" : "Hardware timestamp"
},
"temperature" : {
"type" : "number",
"format" : "float"
}
},
"description" : "LimeSDR"
};
defs.LimeSdrOutputSettings = {
"properties" : {
@ -22204,7 +22292,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2018-05-26T20:31:05.824+02:00
Generated 2018-05-26T22:09:48.356+02:00
</div>
</div>
</div>

View File

@ -83,3 +83,64 @@ LimeSdrOutputSettings:
transverterDeltaFrequency:
type: integer
format: int64
LimeSdrInputReport:
description: LimeSDR
properties:
success:
description: 1 if info was successfullt retrieved else 0
type: integer
streamActive:
description: 1 if active else 0
type: integer
fifoSize:
type: integer
fifoFill:
type: integer
underrunCount:
type: integer
overrunCount:
type: integer
droppedPacketsCount:
type: integer
linkRate:
type: number
format: float
hwTimestamp:
description: Hardware timestamp
type: integer
format: uint64
temperature:
type: number
format: float
LimeSdrOutputReport:
description: LimeSDR
properties:
success:
description: 1 if info was successfullt retrieved else 0
type: integer
streamActive:
description: 1 if active else 0
type: integer
fifoSize:
type: integer
fifoFill:
type: integer
underrunCount:
type: integer
overrunCount:
type: integer
droppedPacketsCount:
type: integer
linkRate:
type: number
format: float
hwTimestamp:
description: Hardware timestamp
type: integer
format: uint64
temperature:
type: number
format: float

View File

@ -1795,6 +1795,10 @@ definitions:
$ref: "/doc/swagger/include/AirspyHF.yaml#/AirspyHFReport"
fileSourceReport:
$ref: "/doc/swagger/include/FileSource.yaml#/FileSourceReport"
limeSdrInputReport:
$ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrInputReport"
limeSdrOutputReport:
$ref: "/doc/swagger/include/LimeSdr.yaml#/LimeSdrOutputReport"
perseusReport:
$ref: "/doc/swagger/include/Perseus.yaml#/PerseusReport"
plutoSdrInputReport:

View File

@ -83,3 +83,64 @@ LimeSdrOutputSettings:
transverterDeltaFrequency:
type: integer
format: int64
LimeSdrInputReport:
description: LimeSDR
properties:
success:
description: 1 if info was successfullt retrieved else 0
type: integer
streamActive:
description: 1 if active else 0
type: integer
fifoSize:
type: integer
fifoFill:
type: integer
underrunCount:
type: integer
overrunCount:
type: integer
droppedPacketsCount:
type: integer
linkRate:
type: number
format: float
hwTimestamp:
description: Hardware timestamp
type: integer
format: uint64
temperature:
type: number
format: float
LimeSdrOutputReport:
description: LimeSDR
properties:
success:
description: 1 if info was successfullt retrieved else 0
type: integer
streamActive:
description: 1 if active else 0
type: integer
fifoSize:
type: integer
fifoFill:
type: integer
underrunCount:
type: integer
overrunCount:
type: integer
droppedPacketsCount:
type: integer
linkRate:
type: number
format: float
hwTimestamp:
description: Hardware timestamp
type: integer
format: uint64
temperature:
type: number
format: float

View File

@ -1795,6 +1795,10 @@ definitions:
$ref: "http://localhost:8081/api/swagger/include/AirspyHF.yaml#/AirspyHFReport"
fileSourceReport:
$ref: "http://localhost:8081/api/swagger/include/FileSource.yaml#/FileSourceReport"
limeSdrInputReport:
$ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrInputReport"
limeSdrOutputReport:
$ref: "http://localhost:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrOutputReport"
perseusReport:
$ref: "http://localhost:8081/api/swagger/include/Perseus.yaml#/PerseusReport"
plutoSdrInputReport:

View File

@ -1721,6 +1721,12 @@ margin-bottom: 20px;
"fileSourceReport" : {
"$ref" : "#/definitions/FileSourceReport"
},
"limeSdrInputReport" : {
"$ref" : "#/definitions/LimeSdrInputReport"
},
"limeSdrOutputReport" : {
"$ref" : "#/definitions/LimeSdrOutputReport"
},
"perseusReport" : {
"$ref" : "#/definitions/PerseusReport"
},
@ -2174,6 +2180,47 @@ margin-bottom: 20px;
}
},
"description" : "Summarized information about this SDRangel instance"
};
defs.LimeSdrInputReport = {
"properties" : {
"success" : {
"type" : "integer",
"description" : "1 if info was successfullt retrieved else 0"
},
"streamActive" : {
"type" : "integer",
"description" : "1 if active else 0"
},
"fifoSize" : {
"type" : "integer"
},
"fifoFill" : {
"type" : "integer"
},
"underrunCount" : {
"type" : "integer"
},
"overrunCount" : {
"type" : "integer"
},
"droppedPacketsCount" : {
"type" : "integer"
},
"linkRate" : {
"type" : "number",
"format" : "float"
},
"hwTimestamp" : {
"type" : "integer",
"format" : "uint64",
"description" : "Hardware timestamp"
},
"temperature" : {
"type" : "number",
"format" : "float"
}
},
"description" : "LimeSDR"
};
defs.LimeSdrInputSettings = {
"properties" : {
@ -2247,6 +2294,47 @@ margin-bottom: 20px;
}
},
"description" : "LimeSDR"
};
defs.LimeSdrOutputReport = {
"properties" : {
"success" : {
"type" : "integer",
"description" : "1 if info was successfullt retrieved else 0"
},
"streamActive" : {
"type" : "integer",
"description" : "1 if active else 0"
},
"fifoSize" : {
"type" : "integer"
},
"fifoFill" : {
"type" : "integer"
},
"underrunCount" : {
"type" : "integer"
},
"overrunCount" : {
"type" : "integer"
},
"droppedPacketsCount" : {
"type" : "integer"
},
"linkRate" : {
"type" : "number",
"format" : "float"
},
"hwTimestamp" : {
"type" : "integer",
"format" : "uint64",
"description" : "Hardware timestamp"
},
"temperature" : {
"type" : "number",
"format" : "float"
}
},
"description" : "LimeSDR"
};
defs.LimeSdrOutputSettings = {
"properties" : {
@ -22204,7 +22292,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2018-05-26T20:31:05.824+02:00
Generated 2018-05-26T22:09:48.356+02:00
</div>
</div>
</div>

View File

@ -38,6 +38,10 @@ SWGDeviceReport::SWGDeviceReport() {
m_airspy_hf_report_isSet = false;
file_source_report = nullptr;
m_file_source_report_isSet = false;
lime_sdr_input_report = nullptr;
m_lime_sdr_input_report_isSet = false;
lime_sdr_output_report = nullptr;
m_lime_sdr_output_report_isSet = false;
perseus_report = nullptr;
m_perseus_report_isSet = false;
pluto_sdr_input_report = nullptr;
@ -64,6 +68,10 @@ SWGDeviceReport::init() {
m_airspy_hf_report_isSet = false;
file_source_report = new SWGFileSourceReport();
m_file_source_report_isSet = false;
lime_sdr_input_report = new SWGLimeSdrInputReport();
m_lime_sdr_input_report_isSet = false;
lime_sdr_output_report = new SWGLimeSdrOutputReport();
m_lime_sdr_output_report_isSet = false;
perseus_report = new SWGPerseusReport();
m_perseus_report_isSet = false;
pluto_sdr_input_report = new SWGPlutoSdrInputReport();
@ -89,6 +97,12 @@ SWGDeviceReport::cleanup() {
if(file_source_report != nullptr) {
delete file_source_report;
}
if(lime_sdr_input_report != nullptr) {
delete lime_sdr_input_report;
}
if(lime_sdr_output_report != nullptr) {
delete lime_sdr_output_report;
}
if(perseus_report != nullptr) {
delete perseus_report;
}
@ -124,6 +138,10 @@ SWGDeviceReport::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&file_source_report, pJson["fileSourceReport"], "SWGFileSourceReport", "SWGFileSourceReport");
::SWGSDRangel::setValue(&lime_sdr_input_report, pJson["limeSdrInputReport"], "SWGLimeSdrInputReport", "SWGLimeSdrInputReport");
::SWGSDRangel::setValue(&lime_sdr_output_report, pJson["limeSdrOutputReport"], "SWGLimeSdrOutputReport", "SWGLimeSdrOutputReport");
::SWGSDRangel::setValue(&perseus_report, pJson["perseusReport"], "SWGPerseusReport", "SWGPerseusReport");
::SWGSDRangel::setValue(&pluto_sdr_input_report, pJson["plutoSdrInputReport"], "SWGPlutoSdrInputReport", "SWGPlutoSdrInputReport");
@ -163,6 +181,12 @@ SWGDeviceReport::asJsonObject() {
if((file_source_report != nullptr) && (file_source_report->isSet())){
toJsonValue(QString("fileSourceReport"), file_source_report, obj, QString("SWGFileSourceReport"));
}
if((lime_sdr_input_report != nullptr) && (lime_sdr_input_report->isSet())){
toJsonValue(QString("limeSdrInputReport"), lime_sdr_input_report, obj, QString("SWGLimeSdrInputReport"));
}
if((lime_sdr_output_report != nullptr) && (lime_sdr_output_report->isSet())){
toJsonValue(QString("limeSdrOutputReport"), lime_sdr_output_report, obj, QString("SWGLimeSdrOutputReport"));
}
if((perseus_report != nullptr) && (perseus_report->isSet())){
toJsonValue(QString("perseusReport"), perseus_report, obj, QString("SWGPerseusReport"));
}
@ -229,6 +253,26 @@ SWGDeviceReport::setFileSourceReport(SWGFileSourceReport* file_source_report) {
this->m_file_source_report_isSet = true;
}
SWGLimeSdrInputReport*
SWGDeviceReport::getLimeSdrInputReport() {
return lime_sdr_input_report;
}
void
SWGDeviceReport::setLimeSdrInputReport(SWGLimeSdrInputReport* lime_sdr_input_report) {
this->lime_sdr_input_report = lime_sdr_input_report;
this->m_lime_sdr_input_report_isSet = true;
}
SWGLimeSdrOutputReport*
SWGDeviceReport::getLimeSdrOutputReport() {
return lime_sdr_output_report;
}
void
SWGDeviceReport::setLimeSdrOutputReport(SWGLimeSdrOutputReport* lime_sdr_output_report) {
this->lime_sdr_output_report = lime_sdr_output_report;
this->m_lime_sdr_output_report_isSet = true;
}
SWGPerseusReport*
SWGDeviceReport::getPerseusReport() {
return perseus_report;
@ -279,6 +323,8 @@ SWGDeviceReport::isSet(){
if(airspy_report != nullptr && airspy_report->isSet()){ isObjectUpdated = true; break;}
if(airspy_hf_report != nullptr && airspy_hf_report->isSet()){ isObjectUpdated = true; break;}
if(file_source_report != nullptr && file_source_report->isSet()){ isObjectUpdated = true; break;}
if(lime_sdr_input_report != nullptr && lime_sdr_input_report->isSet()){ isObjectUpdated = true; break;}
if(lime_sdr_output_report != nullptr && lime_sdr_output_report->isSet()){ isObjectUpdated = true; break;}
if(perseus_report != nullptr && perseus_report->isSet()){ isObjectUpdated = true; break;}
if(pluto_sdr_input_report != nullptr && pluto_sdr_input_report->isSet()){ isObjectUpdated = true; break;}
if(pluto_sdr_output_report != nullptr && pluto_sdr_output_report->isSet()){ isObjectUpdated = true; break;}

View File

@ -25,6 +25,8 @@
#include "SWGAirspyHFReport.h"
#include "SWGAirspyReport.h"
#include "SWGFileSourceReport.h"
#include "SWGLimeSdrInputReport.h"
#include "SWGLimeSdrOutputReport.h"
#include "SWGPerseusReport.h"
#include "SWGPlutoSdrInputReport.h"
#include "SWGPlutoSdrOutputReport.h"
@ -64,6 +66,12 @@ public:
SWGFileSourceReport* getFileSourceReport();
void setFileSourceReport(SWGFileSourceReport* file_source_report);
SWGLimeSdrInputReport* getLimeSdrInputReport();
void setLimeSdrInputReport(SWGLimeSdrInputReport* lime_sdr_input_report);
SWGLimeSdrOutputReport* getLimeSdrOutputReport();
void setLimeSdrOutputReport(SWGLimeSdrOutputReport* lime_sdr_output_report);
SWGPerseusReport* getPerseusReport();
void setPerseusReport(SWGPerseusReport* perseus_report);
@ -95,6 +103,12 @@ private:
SWGFileSourceReport* file_source_report;
bool m_file_source_report_isSet;
SWGLimeSdrInputReport* lime_sdr_input_report;
bool m_lime_sdr_input_report_isSet;
SWGLimeSdrOutputReport* lime_sdr_output_report;
bool m_lime_sdr_output_report_isSet;
SWGPerseusReport* perseus_report;
bool m_perseus_report_isSet;

View File

@ -0,0 +1,295 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Stopping instance i.e. /sdrangel with DELETE method is a server only feature. It allows stopping the instance nicely. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV demodulator, Channel Analyzer, Channel Analyzer NG, LoRa demodulator, TCP source * The content type returned is always application/json except in the following cases: * An incorrect URL was specified: this document is returned as text/html with a status 400 ---
*
* OpenAPI spec version: 4.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
#include "SWGLimeSdrInputReport.h"
#include "SWGHelpers.h"
#include <QJsonDocument>
#include <QJsonArray>
#include <QObject>
#include <QDebug>
namespace SWGSDRangel {
SWGLimeSdrInputReport::SWGLimeSdrInputReport(QString* json) {
init();
this->fromJson(*json);
}
SWGLimeSdrInputReport::SWGLimeSdrInputReport() {
success = 0;
m_success_isSet = false;
stream_active = 0;
m_stream_active_isSet = false;
fifo_size = 0;
m_fifo_size_isSet = false;
fifo_fill = 0;
m_fifo_fill_isSet = false;
underrun_count = 0;
m_underrun_count_isSet = false;
overrun_count = 0;
m_overrun_count_isSet = false;
dropped_packets_count = 0;
m_dropped_packets_count_isSet = false;
link_rate = 0.0f;
m_link_rate_isSet = false;
hw_timestamp = 0;
m_hw_timestamp_isSet = false;
temperature = 0.0f;
m_temperature_isSet = false;
}
SWGLimeSdrInputReport::~SWGLimeSdrInputReport() {
this->cleanup();
}
void
SWGLimeSdrInputReport::init() {
success = 0;
m_success_isSet = false;
stream_active = 0;
m_stream_active_isSet = false;
fifo_size = 0;
m_fifo_size_isSet = false;
fifo_fill = 0;
m_fifo_fill_isSet = false;
underrun_count = 0;
m_underrun_count_isSet = false;
overrun_count = 0;
m_overrun_count_isSet = false;
dropped_packets_count = 0;
m_dropped_packets_count_isSet = false;
link_rate = 0.0f;
m_link_rate_isSet = false;
hw_timestamp = 0;
m_hw_timestamp_isSet = false;
temperature = 0.0f;
m_temperature_isSet = false;
}
void
SWGLimeSdrInputReport::cleanup() {
}
SWGLimeSdrInputReport*
SWGLimeSdrInputReport::fromJson(QString &json) {
QByteArray array (json.toStdString().c_str());
QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject jsonObject = doc.object();
this->fromJsonObject(jsonObject);
return this;
}
void
SWGLimeSdrInputReport::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&success, pJson["success"], "qint32", "");
::SWGSDRangel::setValue(&stream_active, pJson["streamActive"], "qint32", "");
::SWGSDRangel::setValue(&fifo_size, pJson["fifoSize"], "qint32", "");
::SWGSDRangel::setValue(&fifo_fill, pJson["fifoFill"], "qint32", "");
::SWGSDRangel::setValue(&underrun_count, pJson["underrunCount"], "qint32", "");
::SWGSDRangel::setValue(&overrun_count, pJson["overrunCount"], "qint32", "");
::SWGSDRangel::setValue(&dropped_packets_count, pJson["droppedPacketsCount"], "qint32", "");
::SWGSDRangel::setValue(&link_rate, pJson["linkRate"], "float", "");
::SWGSDRangel::setValue(&hw_timestamp, pJson["hwTimestamp"], "qint32", "");
::SWGSDRangel::setValue(&temperature, pJson["temperature"], "float", "");
}
QString
SWGLimeSdrInputReport::asJson ()
{
QJsonObject* obj = this->asJsonObject();
QJsonDocument doc(*obj);
QByteArray bytes = doc.toJson();
delete obj;
return QString(bytes);
}
QJsonObject*
SWGLimeSdrInputReport::asJsonObject() {
QJsonObject* obj = new QJsonObject();
if(m_success_isSet){
obj->insert("success", QJsonValue(success));
}
if(m_stream_active_isSet){
obj->insert("streamActive", QJsonValue(stream_active));
}
if(m_fifo_size_isSet){
obj->insert("fifoSize", QJsonValue(fifo_size));
}
if(m_fifo_fill_isSet){
obj->insert("fifoFill", QJsonValue(fifo_fill));
}
if(m_underrun_count_isSet){
obj->insert("underrunCount", QJsonValue(underrun_count));
}
if(m_overrun_count_isSet){
obj->insert("overrunCount", QJsonValue(overrun_count));
}
if(m_dropped_packets_count_isSet){
obj->insert("droppedPacketsCount", QJsonValue(dropped_packets_count));
}
if(m_link_rate_isSet){
obj->insert("linkRate", QJsonValue(link_rate));
}
if(m_hw_timestamp_isSet){
obj->insert("hwTimestamp", QJsonValue(hw_timestamp));
}
if(m_temperature_isSet){
obj->insert("temperature", QJsonValue(temperature));
}
return obj;
}
qint32
SWGLimeSdrInputReport::getSuccess() {
return success;
}
void
SWGLimeSdrInputReport::setSuccess(qint32 success) {
this->success = success;
this->m_success_isSet = true;
}
qint32
SWGLimeSdrInputReport::getStreamActive() {
return stream_active;
}
void
SWGLimeSdrInputReport::setStreamActive(qint32 stream_active) {
this->stream_active = stream_active;
this->m_stream_active_isSet = true;
}
qint32
SWGLimeSdrInputReport::getFifoSize() {
return fifo_size;
}
void
SWGLimeSdrInputReport::setFifoSize(qint32 fifo_size) {
this->fifo_size = fifo_size;
this->m_fifo_size_isSet = true;
}
qint32
SWGLimeSdrInputReport::getFifoFill() {
return fifo_fill;
}
void
SWGLimeSdrInputReport::setFifoFill(qint32 fifo_fill) {
this->fifo_fill = fifo_fill;
this->m_fifo_fill_isSet = true;
}
qint32
SWGLimeSdrInputReport::getUnderrunCount() {
return underrun_count;
}
void
SWGLimeSdrInputReport::setUnderrunCount(qint32 underrun_count) {
this->underrun_count = underrun_count;
this->m_underrun_count_isSet = true;
}
qint32
SWGLimeSdrInputReport::getOverrunCount() {
return overrun_count;
}
void
SWGLimeSdrInputReport::setOverrunCount(qint32 overrun_count) {
this->overrun_count = overrun_count;
this->m_overrun_count_isSet = true;
}
qint32
SWGLimeSdrInputReport::getDroppedPacketsCount() {
return dropped_packets_count;
}
void
SWGLimeSdrInputReport::setDroppedPacketsCount(qint32 dropped_packets_count) {
this->dropped_packets_count = dropped_packets_count;
this->m_dropped_packets_count_isSet = true;
}
float
SWGLimeSdrInputReport::getLinkRate() {
return link_rate;
}
void
SWGLimeSdrInputReport::setLinkRate(float link_rate) {
this->link_rate = link_rate;
this->m_link_rate_isSet = true;
}
qint32
SWGLimeSdrInputReport::getHwTimestamp() {
return hw_timestamp;
}
void
SWGLimeSdrInputReport::setHwTimestamp(qint32 hw_timestamp) {
this->hw_timestamp = hw_timestamp;
this->m_hw_timestamp_isSet = true;
}
float
SWGLimeSdrInputReport::getTemperature() {
return temperature;
}
void
SWGLimeSdrInputReport::setTemperature(float temperature) {
this->temperature = temperature;
this->m_temperature_isSet = true;
}
bool
SWGLimeSdrInputReport::isSet(){
bool isObjectUpdated = false;
do{
if(m_success_isSet){ isObjectUpdated = true; break;}
if(m_stream_active_isSet){ isObjectUpdated = true; break;}
if(m_fifo_size_isSet){ isObjectUpdated = true; break;}
if(m_fifo_fill_isSet){ isObjectUpdated = true; break;}
if(m_underrun_count_isSet){ isObjectUpdated = true; break;}
if(m_overrun_count_isSet){ isObjectUpdated = true; break;}
if(m_dropped_packets_count_isSet){ isObjectUpdated = true; break;}
if(m_link_rate_isSet){ isObjectUpdated = true; break;}
if(m_hw_timestamp_isSet){ isObjectUpdated = true; break;}
if(m_temperature_isSet){ isObjectUpdated = true; break;}
}while(false);
return isObjectUpdated;
}
}

View File

@ -0,0 +1,112 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Stopping instance i.e. /sdrangel with DELETE method is a server only feature. It allows stopping the instance nicely. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV demodulator, Channel Analyzer, Channel Analyzer NG, LoRa demodulator, TCP source * The content type returned is always application/json except in the following cases: * An incorrect URL was specified: this document is returned as text/html with a status 400 ---
*
* OpenAPI spec version: 4.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/*
* SWGLimeSdrInputReport.h
*
* LimeSDR
*/
#ifndef SWGLimeSdrInputReport_H_
#define SWGLimeSdrInputReport_H_
#include <QJsonObject>
#include "SWGObject.h"
#include "export.h"
namespace SWGSDRangel {
class SWG_API SWGLimeSdrInputReport: public SWGObject {
public:
SWGLimeSdrInputReport();
SWGLimeSdrInputReport(QString* json);
virtual ~SWGLimeSdrInputReport();
void init();
void cleanup();
virtual QString asJson () override;
virtual QJsonObject* asJsonObject() override;
virtual void fromJsonObject(QJsonObject &json) override;
virtual SWGLimeSdrInputReport* fromJson(QString &jsonString) override;
qint32 getSuccess();
void setSuccess(qint32 success);
qint32 getStreamActive();
void setStreamActive(qint32 stream_active);
qint32 getFifoSize();
void setFifoSize(qint32 fifo_size);
qint32 getFifoFill();
void setFifoFill(qint32 fifo_fill);
qint32 getUnderrunCount();
void setUnderrunCount(qint32 underrun_count);
qint32 getOverrunCount();
void setOverrunCount(qint32 overrun_count);
qint32 getDroppedPacketsCount();
void setDroppedPacketsCount(qint32 dropped_packets_count);
float getLinkRate();
void setLinkRate(float link_rate);
qint32 getHwTimestamp();
void setHwTimestamp(qint32 hw_timestamp);
float getTemperature();
void setTemperature(float temperature);
virtual bool isSet() override;
private:
qint32 success;
bool m_success_isSet;
qint32 stream_active;
bool m_stream_active_isSet;
qint32 fifo_size;
bool m_fifo_size_isSet;
qint32 fifo_fill;
bool m_fifo_fill_isSet;
qint32 underrun_count;
bool m_underrun_count_isSet;
qint32 overrun_count;
bool m_overrun_count_isSet;
qint32 dropped_packets_count;
bool m_dropped_packets_count_isSet;
float link_rate;
bool m_link_rate_isSet;
qint32 hw_timestamp;
bool m_hw_timestamp_isSet;
float temperature;
bool m_temperature_isSet;
};
}
#endif /* SWGLimeSdrInputReport_H_ */

View File

@ -0,0 +1,295 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Stopping instance i.e. /sdrangel with DELETE method is a server only feature. It allows stopping the instance nicely. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV demodulator, Channel Analyzer, Channel Analyzer NG, LoRa demodulator, TCP source * The content type returned is always application/json except in the following cases: * An incorrect URL was specified: this document is returned as text/html with a status 400 ---
*
* OpenAPI spec version: 4.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
#include "SWGLimeSdrOutputReport.h"
#include "SWGHelpers.h"
#include <QJsonDocument>
#include <QJsonArray>
#include <QObject>
#include <QDebug>
namespace SWGSDRangel {
SWGLimeSdrOutputReport::SWGLimeSdrOutputReport(QString* json) {
init();
this->fromJson(*json);
}
SWGLimeSdrOutputReport::SWGLimeSdrOutputReport() {
success = 0;
m_success_isSet = false;
stream_active = 0;
m_stream_active_isSet = false;
fifo_size = 0;
m_fifo_size_isSet = false;
fifo_fill = 0;
m_fifo_fill_isSet = false;
underrun_count = 0;
m_underrun_count_isSet = false;
overrun_count = 0;
m_overrun_count_isSet = false;
dropped_packets_count = 0;
m_dropped_packets_count_isSet = false;
link_rate = 0.0f;
m_link_rate_isSet = false;
hw_timestamp = 0;
m_hw_timestamp_isSet = false;
temperature = 0.0f;
m_temperature_isSet = false;
}
SWGLimeSdrOutputReport::~SWGLimeSdrOutputReport() {
this->cleanup();
}
void
SWGLimeSdrOutputReport::init() {
success = 0;
m_success_isSet = false;
stream_active = 0;
m_stream_active_isSet = false;
fifo_size = 0;
m_fifo_size_isSet = false;
fifo_fill = 0;
m_fifo_fill_isSet = false;
underrun_count = 0;
m_underrun_count_isSet = false;
overrun_count = 0;
m_overrun_count_isSet = false;
dropped_packets_count = 0;
m_dropped_packets_count_isSet = false;
link_rate = 0.0f;
m_link_rate_isSet = false;
hw_timestamp = 0;
m_hw_timestamp_isSet = false;
temperature = 0.0f;
m_temperature_isSet = false;
}
void
SWGLimeSdrOutputReport::cleanup() {
}
SWGLimeSdrOutputReport*
SWGLimeSdrOutputReport::fromJson(QString &json) {
QByteArray array (json.toStdString().c_str());
QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject jsonObject = doc.object();
this->fromJsonObject(jsonObject);
return this;
}
void
SWGLimeSdrOutputReport::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&success, pJson["success"], "qint32", "");
::SWGSDRangel::setValue(&stream_active, pJson["streamActive"], "qint32", "");
::SWGSDRangel::setValue(&fifo_size, pJson["fifoSize"], "qint32", "");
::SWGSDRangel::setValue(&fifo_fill, pJson["fifoFill"], "qint32", "");
::SWGSDRangel::setValue(&underrun_count, pJson["underrunCount"], "qint32", "");
::SWGSDRangel::setValue(&overrun_count, pJson["overrunCount"], "qint32", "");
::SWGSDRangel::setValue(&dropped_packets_count, pJson["droppedPacketsCount"], "qint32", "");
::SWGSDRangel::setValue(&link_rate, pJson["linkRate"], "float", "");
::SWGSDRangel::setValue(&hw_timestamp, pJson["hwTimestamp"], "qint32", "");
::SWGSDRangel::setValue(&temperature, pJson["temperature"], "float", "");
}
QString
SWGLimeSdrOutputReport::asJson ()
{
QJsonObject* obj = this->asJsonObject();
QJsonDocument doc(*obj);
QByteArray bytes = doc.toJson();
delete obj;
return QString(bytes);
}
QJsonObject*
SWGLimeSdrOutputReport::asJsonObject() {
QJsonObject* obj = new QJsonObject();
if(m_success_isSet){
obj->insert("success", QJsonValue(success));
}
if(m_stream_active_isSet){
obj->insert("streamActive", QJsonValue(stream_active));
}
if(m_fifo_size_isSet){
obj->insert("fifoSize", QJsonValue(fifo_size));
}
if(m_fifo_fill_isSet){
obj->insert("fifoFill", QJsonValue(fifo_fill));
}
if(m_underrun_count_isSet){
obj->insert("underrunCount", QJsonValue(underrun_count));
}
if(m_overrun_count_isSet){
obj->insert("overrunCount", QJsonValue(overrun_count));
}
if(m_dropped_packets_count_isSet){
obj->insert("droppedPacketsCount", QJsonValue(dropped_packets_count));
}
if(m_link_rate_isSet){
obj->insert("linkRate", QJsonValue(link_rate));
}
if(m_hw_timestamp_isSet){
obj->insert("hwTimestamp", QJsonValue(hw_timestamp));
}
if(m_temperature_isSet){
obj->insert("temperature", QJsonValue(temperature));
}
return obj;
}
qint32
SWGLimeSdrOutputReport::getSuccess() {
return success;
}
void
SWGLimeSdrOutputReport::setSuccess(qint32 success) {
this->success = success;
this->m_success_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getStreamActive() {
return stream_active;
}
void
SWGLimeSdrOutputReport::setStreamActive(qint32 stream_active) {
this->stream_active = stream_active;
this->m_stream_active_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getFifoSize() {
return fifo_size;
}
void
SWGLimeSdrOutputReport::setFifoSize(qint32 fifo_size) {
this->fifo_size = fifo_size;
this->m_fifo_size_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getFifoFill() {
return fifo_fill;
}
void
SWGLimeSdrOutputReport::setFifoFill(qint32 fifo_fill) {
this->fifo_fill = fifo_fill;
this->m_fifo_fill_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getUnderrunCount() {
return underrun_count;
}
void
SWGLimeSdrOutputReport::setUnderrunCount(qint32 underrun_count) {
this->underrun_count = underrun_count;
this->m_underrun_count_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getOverrunCount() {
return overrun_count;
}
void
SWGLimeSdrOutputReport::setOverrunCount(qint32 overrun_count) {
this->overrun_count = overrun_count;
this->m_overrun_count_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getDroppedPacketsCount() {
return dropped_packets_count;
}
void
SWGLimeSdrOutputReport::setDroppedPacketsCount(qint32 dropped_packets_count) {
this->dropped_packets_count = dropped_packets_count;
this->m_dropped_packets_count_isSet = true;
}
float
SWGLimeSdrOutputReport::getLinkRate() {
return link_rate;
}
void
SWGLimeSdrOutputReport::setLinkRate(float link_rate) {
this->link_rate = link_rate;
this->m_link_rate_isSet = true;
}
qint32
SWGLimeSdrOutputReport::getHwTimestamp() {
return hw_timestamp;
}
void
SWGLimeSdrOutputReport::setHwTimestamp(qint32 hw_timestamp) {
this->hw_timestamp = hw_timestamp;
this->m_hw_timestamp_isSet = true;
}
float
SWGLimeSdrOutputReport::getTemperature() {
return temperature;
}
void
SWGLimeSdrOutputReport::setTemperature(float temperature) {
this->temperature = temperature;
this->m_temperature_isSet = true;
}
bool
SWGLimeSdrOutputReport::isSet(){
bool isObjectUpdated = false;
do{
if(m_success_isSet){ isObjectUpdated = true; break;}
if(m_stream_active_isSet){ isObjectUpdated = true; break;}
if(m_fifo_size_isSet){ isObjectUpdated = true; break;}
if(m_fifo_fill_isSet){ isObjectUpdated = true; break;}
if(m_underrun_count_isSet){ isObjectUpdated = true; break;}
if(m_overrun_count_isSet){ isObjectUpdated = true; break;}
if(m_dropped_packets_count_isSet){ isObjectUpdated = true; break;}
if(m_link_rate_isSet){ isObjectUpdated = true; break;}
if(m_hw_timestamp_isSet){ isObjectUpdated = true; break;}
if(m_temperature_isSet){ isObjectUpdated = true; break;}
}while(false);
return isObjectUpdated;
}
}

View File

@ -0,0 +1,112 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Stopping instance i.e. /sdrangel with DELETE method is a server only feature. It allows stopping the instance nicely. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV demodulator, Channel Analyzer, Channel Analyzer NG, LoRa demodulator, TCP source * The content type returned is always application/json except in the following cases: * An incorrect URL was specified: this document is returned as text/html with a status 400 ---
*
* OpenAPI spec version: 4.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/*
* SWGLimeSdrOutputReport.h
*
* LimeSDR
*/
#ifndef SWGLimeSdrOutputReport_H_
#define SWGLimeSdrOutputReport_H_
#include <QJsonObject>
#include "SWGObject.h"
#include "export.h"
namespace SWGSDRangel {
class SWG_API SWGLimeSdrOutputReport: public SWGObject {
public:
SWGLimeSdrOutputReport();
SWGLimeSdrOutputReport(QString* json);
virtual ~SWGLimeSdrOutputReport();
void init();
void cleanup();
virtual QString asJson () override;
virtual QJsonObject* asJsonObject() override;
virtual void fromJsonObject(QJsonObject &json) override;
virtual SWGLimeSdrOutputReport* fromJson(QString &jsonString) override;
qint32 getSuccess();
void setSuccess(qint32 success);
qint32 getStreamActive();
void setStreamActive(qint32 stream_active);
qint32 getFifoSize();
void setFifoSize(qint32 fifo_size);
qint32 getFifoFill();
void setFifoFill(qint32 fifo_fill);
qint32 getUnderrunCount();
void setUnderrunCount(qint32 underrun_count);
qint32 getOverrunCount();
void setOverrunCount(qint32 overrun_count);
qint32 getDroppedPacketsCount();
void setDroppedPacketsCount(qint32 dropped_packets_count);
float getLinkRate();
void setLinkRate(float link_rate);
qint32 getHwTimestamp();
void setHwTimestamp(qint32 hw_timestamp);
float getTemperature();
void setTemperature(float temperature);
virtual bool isSet() override;
private:
qint32 success;
bool m_success_isSet;
qint32 stream_active;
bool m_stream_active_isSet;
qint32 fifo_size;
bool m_fifo_size_isSet;
qint32 fifo_fill;
bool m_fifo_fill_isSet;
qint32 underrun_count;
bool m_underrun_count_isSet;
qint32 overrun_count;
bool m_overrun_count_isSet;
qint32 dropped_packets_count;
bool m_dropped_packets_count_isSet;
float link_rate;
bool m_link_rate_isSet;
qint32 hw_timestamp;
bool m_hw_timestamp_isSet;
float temperature;
bool m_temperature_isSet;
};
}
#endif /* SWGLimeSdrOutputReport_H_ */

View File

@ -58,7 +58,9 @@
#include "SWGInstanceChannelsResponse.h"
#include "SWGInstanceDevicesResponse.h"
#include "SWGInstanceSummaryResponse.h"
#include "SWGLimeSdrInputReport.h"
#include "SWGLimeSdrInputSettings.h"
#include "SWGLimeSdrOutputReport.h"
#include "SWGLimeSdrOutputSettings.h"
#include "SWGLocationInformation.h"
#include "SWGLoggingInfo.h"
@ -234,9 +236,15 @@ namespace SWGSDRangel {
if(QString("SWGInstanceSummaryResponse").compare(type) == 0) {
return new SWGInstanceSummaryResponse();
}
if(QString("SWGLimeSdrInputReport").compare(type) == 0) {
return new SWGLimeSdrInputReport();
}
if(QString("SWGLimeSdrInputSettings").compare(type) == 0) {
return new SWGLimeSdrInputSettings();
}
if(QString("SWGLimeSdrOutputReport").compare(type) == 0) {
return new SWGLimeSdrOutputReport();
}
if(QString("SWGLimeSdrOutputSettings").compare(type) == 0) {
return new SWGLimeSdrOutputSettings();
}