mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-23 18:52:28 -04:00
SDRdaemon: Web API: implemented daemonInstanceSummary
This commit is contained in:
parent
9eb05a5c14
commit
b38d47a082
19
Readme.md
19
Readme.md
@ -27,23 +27,16 @@ These plugins come from the parent code base and have been maintained so that th
|
|||||||
channelrx:
|
channelrx:
|
||||||
|
|
||||||
- demodlora
|
- demodlora
|
||||||
- tcpsrc (although it has evolved please use the udpsrc plugin instead)
|
|
||||||
|
|
||||||
<h2>Deprecated plugins</h2>
|
|
||||||
|
|
||||||
These plugins are still present at least in the code but have been superceded:
|
|
||||||
|
|
||||||
- chanalyzer: the Channel Analyzer channel plugin is superceded by the "new generation" Channel Analyzer NG (chanalyzerng)
|
|
||||||
|
|
||||||
<h1>Specific features</h1>
|
<h1>Specific features</h1>
|
||||||
|
|
||||||
<h2>Multiple device support</h2>
|
<h2>Multiple device support</h2>
|
||||||
|
|
||||||
From version 2 SDRangel can integrate more than one hardware device running concurrently.
|
Since version 2 SDRangel can integrate more than one hardware device running concurrently.
|
||||||
|
|
||||||
<h2>Transmission support</h2>
|
<h2>Transmission support</h2>
|
||||||
|
|
||||||
From version 3 transmission or signal generation is supported for BladeRF, HackRF (since version 3.1), LimeSDR (since version 3.4) and PlutoSDR (since version 3.7.8) using a sample sink plugin. These plugins are:
|
Since version 3 transmission or signal generation is supported for BladeRF, HackRF (since version 3.1), LimeSDR (since version 3.4) and PlutoSDR (since version 3.7.8) using a sample sink plugin. These plugins are:
|
||||||
|
|
||||||
- [BladeRF output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/bladerfoutput)
|
- [BladeRF output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/bladerfoutput)
|
||||||
- [HackRF output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/hackrfoutput)
|
- [HackRF output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/hackrfoutput)
|
||||||
@ -54,11 +47,15 @@ From version 3 transmission or signal generation is supported for BladeRF, HackR
|
|||||||
|
|
||||||
<h2>REST API</h2>
|
<h2>REST API</h2>
|
||||||
|
|
||||||
From version 4 a REST API is available to interact with the SDRangel application. More details are provided in the server instance documentation in the `sdrsrv` folder.
|
Since version 4 a REST API is available to interact with the SDRangel application. More details are provided in the server instance documentation in the `sdrsrv` folder.
|
||||||
|
|
||||||
<h2>Server instance</h2>
|
<h2>Server instance</h2>
|
||||||
|
|
||||||
From version 4 the `sdrangelsrv` binary launches a server mode SDRangel instance that runs wihout the GUI. More information is provided in the Readme file of the `sdrsrv` folder.
|
Since version 4 the `sdrangelsrv` binary launches a server mode SDRangel instance that runs wihout the GUI. More information is provided in the Readme file of the `sdrsrv` folder.
|
||||||
|
|
||||||
|
<h2>Detached RF head server (SDRdaemon)</h2>
|
||||||
|
|
||||||
|
Since version 4.1 the previously separated project SDRdaemon has been modified and included in SDRangel. Another binary `sdrdaemonsrv` is provided for handling just the RF part of the SDRangel processing chain. The baseband samples are comunicated via UDP to/from a SDRangel instance. More details are provided in the server instance documentation in the `sdrdaemon` folder.
|
||||||
|
|
||||||
<h1>Notes on pulseaudio setup</h1>
|
<h1>Notes on pulseaudio setup</h1>
|
||||||
|
|
||||||
|
@ -1702,6 +1702,9 @@ margin-bottom: 20px;
|
|||||||
"type" : "string",
|
"type" : "string",
|
||||||
"description" : "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
"description" : "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
||||||
},
|
},
|
||||||
|
"logging" : {
|
||||||
|
"$ref" : "#/definitions/LoggingInfo"
|
||||||
|
},
|
||||||
"samplingDevice" : {
|
"samplingDevice" : {
|
||||||
"$ref" : "#/definitions/SamplingDevice"
|
"$ref" : "#/definitions/SamplingDevice"
|
||||||
}
|
}
|
||||||
@ -27070,7 +27073,7 @@ except ApiException as e:
|
|||||||
</div>
|
</div>
|
||||||
<div id="generator">
|
<div id="generator">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
Generated 2018-08-18T15:06:40.106+02:00
|
Generated 2018-08-19T11:32:09.545+02:00
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1506,6 +1506,8 @@ definitions:
|
|||||||
os:
|
os:
|
||||||
description: "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
description: "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
||||||
type: string
|
type: string
|
||||||
|
logging:
|
||||||
|
$ref: "#/definitions/LoggingInfo"
|
||||||
samplingDevice:
|
samplingDevice:
|
||||||
$ref: "#/definitions/SamplingDevice"
|
$ref: "#/definitions/SamplingDevice"
|
||||||
|
|
||||||
|
@ -215,7 +215,6 @@ bool SDRDaemonMain::addSinkDevice()
|
|||||||
char uidCStr[16];
|
char uidCStr[16];
|
||||||
sprintf(uidCStr, "UID:%d", dspDeviceSinkEngineUID);
|
sprintf(uidCStr, "UID:%d", dspDeviceSinkEngineUID);
|
||||||
|
|
||||||
m_deviceSourceEngine = 0;
|
|
||||||
m_deviceSinkEngine = dspDeviceSinkEngine;
|
m_deviceSinkEngine = dspDeviceSinkEngine;
|
||||||
|
|
||||||
m_deviceSinkAPI = new DeviceSinkAPI(0, dspDeviceSinkEngine);
|
m_deviceSinkAPI = new DeviceSinkAPI(0, dspDeviceSinkEngine);
|
||||||
@ -251,6 +250,8 @@ bool SDRDaemonMain::addSourceDevice()
|
|||||||
char uidCStr[16];
|
char uidCStr[16];
|
||||||
sprintf(uidCStr, "UID:%d", dspDeviceSourceEngineUID);
|
sprintf(uidCStr, "UID:%d", dspDeviceSourceEngineUID);
|
||||||
|
|
||||||
|
m_deviceSourceEngine = dspDeviceSourceEngine;
|
||||||
|
|
||||||
m_deviceSourceAPI = new DeviceSourceAPI(0, dspDeviceSourceEngine);
|
m_deviceSourceAPI = new DeviceSourceAPI(0, dspDeviceSourceEngine);
|
||||||
int deviceIndex = getDeviceIndex();
|
int deviceIndex = getDeviceIndex();
|
||||||
|
|
||||||
|
@ -140,6 +140,10 @@ void SDRDaemonParser::parse(const QCoreApplication& app)
|
|||||||
qWarning() << "SDRDaemonParser::parse: data port invalid. Defaulting to " << m_dataPort;
|
qWarning() << "SDRDaemonParser::parse: data port invalid. Defaulting to " << m_dataPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tx
|
||||||
|
m_tx = m_parser.isSet(m_txOption);
|
||||||
|
qDebug() << "SDRDaemonParser::parse: tx: " << m_tx;
|
||||||
|
|
||||||
// device type
|
// device type
|
||||||
|
|
||||||
QString deviceType = m_parser.value(m_deviceTypeOption);
|
QString deviceType = m_parser.value(m_deviceTypeOption);
|
||||||
@ -147,17 +151,17 @@ void SDRDaemonParser::parse(const QCoreApplication& app)
|
|||||||
QRegExp deviceTypeRegex("^[A-Z][A-Za-z0-9]+$");
|
QRegExp deviceTypeRegex("^[A-Z][A-Za-z0-9]+$");
|
||||||
QRegExpValidator deviceTypeValidator(deviceTypeRegex);
|
QRegExpValidator deviceTypeValidator(deviceTypeRegex);
|
||||||
|
|
||||||
if (deviceTypeValidator.validate(deviceType, pos) == QValidator::Acceptable) {
|
if (deviceTypeValidator.validate(deviceType, pos) == QValidator::Acceptable)
|
||||||
|
{
|
||||||
m_deviceType = deviceType;
|
m_deviceType = deviceType;
|
||||||
qDebug() << "SDRDaemonParser::parse: device type: " << m_deviceType;
|
qDebug() << "SDRDaemonParser::parse: device type: " << m_deviceType;
|
||||||
} else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_deviceType = m_tx ? "FileSink" : "TestSource";
|
||||||
qWarning() << "SDRDaemonParser::parse: device type invalid. Defaulting to " << m_deviceType;
|
qWarning() << "SDRDaemonParser::parse: device type invalid. Defaulting to " << m_deviceType;
|
||||||
}
|
}
|
||||||
|
|
||||||
// tx
|
|
||||||
m_tx = m_parser.isSet(m_txOption);
|
|
||||||
qDebug() << "SDRDaemonParser::parse: tx: " << m_tx;
|
|
||||||
|
|
||||||
// serial
|
// serial
|
||||||
m_hasSerial = m_parser.isSet(m_serialOption);
|
m_hasSerial = m_parser.isSet(m_serialOption);
|
||||||
|
|
||||||
|
@ -16,6 +16,8 @@
|
|||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
#include "SWGDaemonSummaryResponse.h"
|
#include "SWGDaemonSummaryResponse.h"
|
||||||
#include "SWGLoggingInfo.h"
|
#include "SWGLoggingInfo.h"
|
||||||
#include "SWGDeviceSettings.h"
|
#include "SWGDeviceSettings.h"
|
||||||
@ -23,6 +25,13 @@
|
|||||||
#include "SWGDeviceReport.h"
|
#include "SWGDeviceReport.h"
|
||||||
#include "SWGErrorResponse.h"
|
#include "SWGErrorResponse.h"
|
||||||
|
|
||||||
|
#include "dsp/dsptypes.h"
|
||||||
|
#include "dsp/dspdevicesourceengine.h"
|
||||||
|
#include "dsp/dspdevicesinkengine.h"
|
||||||
|
#include "device/devicesourceapi.h"
|
||||||
|
#include "device/devicesinkapi.h"
|
||||||
|
#include "dsp/devicesamplesink.h"
|
||||||
|
#include "dsp/devicesamplesource.h"
|
||||||
#include "webapiadapterdaemon.h"
|
#include "webapiadapterdaemon.h"
|
||||||
#include "sdrdaemonmain.h"
|
#include "sdrdaemonmain.h"
|
||||||
#include "loggerwithfile.h"
|
#include "loggerwithfile.h"
|
||||||
@ -43,12 +52,71 @@ WebAPIAdapterDaemon::~WebAPIAdapterDaemon()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int WebAPIAdapterDaemon::daemonInstanceSummary(
|
int WebAPIAdapterDaemon::daemonInstanceSummary(
|
||||||
SWGSDRangel::SWGDaemonSummaryResponse& response __attribute__((unused)),
|
SWGSDRangel::SWGDaemonSummaryResponse& response,
|
||||||
SWGSDRangel::SWGErrorResponse& error)
|
SWGSDRangel::SWGErrorResponse& error __attribute__((unused)))
|
||||||
{
|
{
|
||||||
error.init();
|
response.init();
|
||||||
*error.getMessage() = "Not implemented";
|
*response.getAppname() = QCoreApplication::applicationName();
|
||||||
return 501;
|
*response.getVersion() = QCoreApplication::applicationVersion();
|
||||||
|
*response.getQtVersion() = QString(QT_VERSION_STR);
|
||||||
|
response.setDspRxBits(SDR_RX_SAMP_SZ);
|
||||||
|
response.setDspTxBits(SDR_TX_SAMP_SZ);
|
||||||
|
response.setPid(QCoreApplication::applicationPid());
|
||||||
|
#if QT_VERSION >= 0x050400
|
||||||
|
*response.getArchitecture() = QString(QSysInfo::currentCpuArchitecture());
|
||||||
|
*response.getOs() = QString(QSysInfo::prettyProductName());
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SWGSDRangel::SWGLoggingInfo *logging = response.getLogging();
|
||||||
|
logging->init();
|
||||||
|
logging->setDumpToFile(m_sdrDaemonMain.m_logger->getUseFileLogger() ? 1 : 0);
|
||||||
|
|
||||||
|
if (logging->getDumpToFile()) {
|
||||||
|
m_sdrDaemonMain.m_logger->getLogFileName(*logging->getFileName());
|
||||||
|
m_sdrDaemonMain.m_logger->getFileMinMessageLevelStr(*logging->getFileLevel());
|
||||||
|
}
|
||||||
|
|
||||||
|
m_sdrDaemonMain.m_logger->getConsoleMinMessageLevelStr(*logging->getConsoleLevel());
|
||||||
|
|
||||||
|
SWGSDRangel::SWGSamplingDevice *samplingDevice = response.getSamplingDevice();
|
||||||
|
samplingDevice->setTx(m_sdrDaemonMain.m_tx ? 1 : 0);
|
||||||
|
samplingDevice->setHwType(new QString(m_sdrDaemonMain.m_deviceType));
|
||||||
|
samplingDevice->setIndex(0);
|
||||||
|
|
||||||
|
if (m_sdrDaemonMain.m_tx)
|
||||||
|
{
|
||||||
|
QString state;
|
||||||
|
m_sdrDaemonMain.m_deviceSinkAPI->getDeviceEngineStateStr(state);
|
||||||
|
samplingDevice->setState(new QString(state));
|
||||||
|
samplingDevice->setSerial(new QString(m_sdrDaemonMain.m_deviceSinkAPI->getSampleSinkSerial()));
|
||||||
|
samplingDevice->setSequence(m_sdrDaemonMain.m_deviceSinkAPI->getSampleSinkSequence());
|
||||||
|
samplingDevice->setNbStreams(m_sdrDaemonMain.m_deviceSinkAPI->getNbItems());
|
||||||
|
samplingDevice->setStreamIndex(m_sdrDaemonMain.m_deviceSinkAPI->getItemIndex());
|
||||||
|
DeviceSampleSink *sampleSink = m_sdrDaemonMain.m_deviceSinkEngine->getSink();
|
||||||
|
|
||||||
|
if (sampleSink) {
|
||||||
|
samplingDevice->setCenterFrequency(sampleSink->getCenterFrequency());
|
||||||
|
samplingDevice->setBandwidth(sampleSink->getSampleRate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QString state;
|
||||||
|
m_sdrDaemonMain.m_deviceSourceAPI->getDeviceEngineStateStr(state);
|
||||||
|
samplingDevice->setState(new QString(state));
|
||||||
|
samplingDevice->setSerial(new QString(m_sdrDaemonMain.m_deviceSourceAPI->getSampleSourceSerial()));
|
||||||
|
samplingDevice->setSequence(m_sdrDaemonMain.m_deviceSourceAPI->getSampleSourceSequence());
|
||||||
|
samplingDevice->setNbStreams(m_sdrDaemonMain.m_deviceSourceAPI->getNbItems());
|
||||||
|
samplingDevice->setStreamIndex(m_sdrDaemonMain.m_deviceSourceAPI->getItemIndex());
|
||||||
|
DeviceSampleSource *sampleSource = m_sdrDaemonMain.m_deviceSourceEngine->getSource();
|
||||||
|
|
||||||
|
if (sampleSource) {
|
||||||
|
samplingDevice->setCenterFrequency(sampleSource->getCenterFrequency());
|
||||||
|
samplingDevice->setBandwidth(sampleSource->getSampleRate());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WebAPIAdapterDaemon::daemonInstanceLoggingGet(
|
int WebAPIAdapterDaemon::daemonInstanceLoggingGet(
|
||||||
|
@ -1506,6 +1506,8 @@ definitions:
|
|||||||
os:
|
os:
|
||||||
description: "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
description: "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
||||||
type: string
|
type: string
|
||||||
|
logging:
|
||||||
|
$ref: "#/definitions/LoggingInfo"
|
||||||
samplingDevice:
|
samplingDevice:
|
||||||
$ref: "#/definitions/SamplingDevice"
|
$ref: "#/definitions/SamplingDevice"
|
||||||
|
|
||||||
|
@ -1702,6 +1702,9 @@ margin-bottom: 20px;
|
|||||||
"type" : "string",
|
"type" : "string",
|
||||||
"description" : "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
"description" : "Descriptive text of the operating system running the instance (available with Qt >= 5.4)"
|
||||||
},
|
},
|
||||||
|
"logging" : {
|
||||||
|
"$ref" : "#/definitions/LoggingInfo"
|
||||||
|
},
|
||||||
"samplingDevice" : {
|
"samplingDevice" : {
|
||||||
"$ref" : "#/definitions/SamplingDevice"
|
"$ref" : "#/definitions/SamplingDevice"
|
||||||
}
|
}
|
||||||
@ -27070,7 +27073,7 @@ except ApiException as e:
|
|||||||
</div>
|
</div>
|
||||||
<div id="generator">
|
<div id="generator">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
Generated 2018-08-18T15:06:40.106+02:00
|
Generated 2018-08-19T11:32:09.545+02:00
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -44,6 +44,8 @@ SWGDaemonSummaryResponse::SWGDaemonSummaryResponse() {
|
|||||||
m_architecture_isSet = false;
|
m_architecture_isSet = false;
|
||||||
os = nullptr;
|
os = nullptr;
|
||||||
m_os_isSet = false;
|
m_os_isSet = false;
|
||||||
|
logging = nullptr;
|
||||||
|
m_logging_isSet = false;
|
||||||
sampling_device = nullptr;
|
sampling_device = nullptr;
|
||||||
m_sampling_device_isSet = false;
|
m_sampling_device_isSet = false;
|
||||||
}
|
}
|
||||||
@ -70,6 +72,8 @@ SWGDaemonSummaryResponse::init() {
|
|||||||
m_architecture_isSet = false;
|
m_architecture_isSet = false;
|
||||||
os = new QString("");
|
os = new QString("");
|
||||||
m_os_isSet = false;
|
m_os_isSet = false;
|
||||||
|
logging = new SWGLoggingInfo();
|
||||||
|
m_logging_isSet = false;
|
||||||
sampling_device = new SWGSamplingDevice();
|
sampling_device = new SWGSamplingDevice();
|
||||||
m_sampling_device_isSet = false;
|
m_sampling_device_isSet = false;
|
||||||
}
|
}
|
||||||
@ -94,6 +98,9 @@ SWGDaemonSummaryResponse::cleanup() {
|
|||||||
if(os != nullptr) {
|
if(os != nullptr) {
|
||||||
delete os;
|
delete os;
|
||||||
}
|
}
|
||||||
|
if(logging != nullptr) {
|
||||||
|
delete logging;
|
||||||
|
}
|
||||||
if(sampling_device != nullptr) {
|
if(sampling_device != nullptr) {
|
||||||
delete sampling_device;
|
delete sampling_device;
|
||||||
}
|
}
|
||||||
@ -126,6 +133,8 @@ SWGDaemonSummaryResponse::fromJsonObject(QJsonObject &pJson) {
|
|||||||
|
|
||||||
::SWGSDRangel::setValue(&os, pJson["os"], "QString", "QString");
|
::SWGSDRangel::setValue(&os, pJson["os"], "QString", "QString");
|
||||||
|
|
||||||
|
::SWGSDRangel::setValue(&logging, pJson["logging"], "SWGLoggingInfo", "SWGLoggingInfo");
|
||||||
|
|
||||||
::SWGSDRangel::setValue(&sampling_device, pJson["samplingDevice"], "SWGSamplingDevice", "SWGSamplingDevice");
|
::SWGSDRangel::setValue(&sampling_device, pJson["samplingDevice"], "SWGSamplingDevice", "SWGSamplingDevice");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -168,6 +177,9 @@ SWGDaemonSummaryResponse::asJsonObject() {
|
|||||||
if(os != nullptr && *os != QString("")){
|
if(os != nullptr && *os != QString("")){
|
||||||
toJsonValue(QString("os"), os, obj, QString("QString"));
|
toJsonValue(QString("os"), os, obj, QString("QString"));
|
||||||
}
|
}
|
||||||
|
if((logging != nullptr) && (logging->isSet())){
|
||||||
|
toJsonValue(QString("logging"), logging, obj, QString("SWGLoggingInfo"));
|
||||||
|
}
|
||||||
if((sampling_device != nullptr) && (sampling_device->isSet())){
|
if((sampling_device != nullptr) && (sampling_device->isSet())){
|
||||||
toJsonValue(QString("samplingDevice"), sampling_device, obj, QString("SWGSamplingDevice"));
|
toJsonValue(QString("samplingDevice"), sampling_device, obj, QString("SWGSamplingDevice"));
|
||||||
}
|
}
|
||||||
@ -255,6 +267,16 @@ SWGDaemonSummaryResponse::setOs(QString* os) {
|
|||||||
this->m_os_isSet = true;
|
this->m_os_isSet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SWGLoggingInfo*
|
||||||
|
SWGDaemonSummaryResponse::getLogging() {
|
||||||
|
return logging;
|
||||||
|
}
|
||||||
|
void
|
||||||
|
SWGDaemonSummaryResponse::setLogging(SWGLoggingInfo* logging) {
|
||||||
|
this->logging = logging;
|
||||||
|
this->m_logging_isSet = true;
|
||||||
|
}
|
||||||
|
|
||||||
SWGSamplingDevice*
|
SWGSamplingDevice*
|
||||||
SWGDaemonSummaryResponse::getSamplingDevice() {
|
SWGDaemonSummaryResponse::getSamplingDevice() {
|
||||||
return sampling_device;
|
return sampling_device;
|
||||||
@ -278,6 +300,7 @@ SWGDaemonSummaryResponse::isSet(){
|
|||||||
if(appname != nullptr && *appname != QString("")){ isObjectUpdated = true; break;}
|
if(appname != nullptr && *appname != QString("")){ isObjectUpdated = true; break;}
|
||||||
if(architecture != nullptr && *architecture != QString("")){ isObjectUpdated = true; break;}
|
if(architecture != nullptr && *architecture != QString("")){ isObjectUpdated = true; break;}
|
||||||
if(os != nullptr && *os != QString("")){ isObjectUpdated = true; break;}
|
if(os != nullptr && *os != QString("")){ isObjectUpdated = true; break;}
|
||||||
|
if(logging != nullptr && logging->isSet()){ isObjectUpdated = true; break;}
|
||||||
if(sampling_device != nullptr && sampling_device->isSet()){ isObjectUpdated = true; break;}
|
if(sampling_device != nullptr && sampling_device->isSet()){ isObjectUpdated = true; break;}
|
||||||
}while(false);
|
}while(false);
|
||||||
return isObjectUpdated;
|
return isObjectUpdated;
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
|
|
||||||
|
|
||||||
|
#include "SWGLoggingInfo.h"
|
||||||
#include "SWGSamplingDevice.h"
|
#include "SWGSamplingDevice.h"
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
@ -67,6 +68,9 @@ public:
|
|||||||
QString* getOs();
|
QString* getOs();
|
||||||
void setOs(QString* os);
|
void setOs(QString* os);
|
||||||
|
|
||||||
|
SWGLoggingInfo* getLogging();
|
||||||
|
void setLogging(SWGLoggingInfo* logging);
|
||||||
|
|
||||||
SWGSamplingDevice* getSamplingDevice();
|
SWGSamplingDevice* getSamplingDevice();
|
||||||
void setSamplingDevice(SWGSamplingDevice* sampling_device);
|
void setSamplingDevice(SWGSamplingDevice* sampling_device);
|
||||||
|
|
||||||
@ -98,6 +102,9 @@ private:
|
|||||||
QString* os;
|
QString* os;
|
||||||
bool m_os_isSet;
|
bool m_os_isSet;
|
||||||
|
|
||||||
|
SWGLoggingInfo* logging;
|
||||||
|
bool m_logging_isSet;
|
||||||
|
|
||||||
SWGSamplingDevice* sampling_device;
|
SWGSamplingDevice* sampling_device;
|
||||||
bool m_sampling_device_isSet;
|
bool m_sampling_device_isSet;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user