1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-27 15:26:33 -04:00

SDRDaemon: replaced specific channel data settings by generic channel data settings

This commit is contained in:
f4exb 2018-08-23 16:06:47 +02:00
parent 7e22fe20f9
commit 0ace2e9499
19 changed files with 921 additions and 652 deletions

View File

@ -21,6 +21,7 @@
<file>webapi/doc/swagger/include/Perseus.yaml</file> <file>webapi/doc/swagger/include/Perseus.yaml</file>
<file>webapi/doc/swagger/include/PlutoSdr.yaml</file> <file>webapi/doc/swagger/include/PlutoSdr.yaml</file>
<file>webapi/doc/swagger/include/RtlSdr.yaml</file> <file>webapi/doc/swagger/include/RtlSdr.yaml</file>
<file>webapi/doc/swagger/include/SDRDaemonChannel.yaml</file>
<file>webapi/doc/swagger/include/SDRDaemonSource.yaml</file> <file>webapi/doc/swagger/include/SDRDaemonSource.yaml</file>
<file>webapi/doc/swagger/include/SDRDaemonSink.yaml</file> <file>webapi/doc/swagger/include/SDRDaemonSink.yaml</file>
<file>webapi/doc/swagger/include/SDRPlay.yaml</file> <file>webapi/doc/swagger/include/SDRPlay.yaml</file>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,15 @@
SDRDaemonChannelSettings:
description: "Data handling details for SDRDaemon"
properties:
nbFECBlocks:
description: "Number of FEC blocks per frame"
type: integer
dataAddress:
description: "Receiving USB data address"
type: string
dataPort:
description: "Receiving USB data port"
type: integer
txDelay:
description: "Minimum delay in ms between consecutive USB blocks transmissions"
type: integer

View File

@ -1298,46 +1298,46 @@ paths:
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
/sdrdaemon/data/settings: /sdrdaemon/channel/settings:
x-swagger-router-controller: deviceset x-swagger-router-controller: deviceset
get: get:
description: Get data handling details description: Get channel handling details
operationId: daemonDataSettingsGet operationId: daemonChannelSettingsGet
tags: tags:
- Daemon - Daemon
responses: responses:
"200": "200":
description: On success returns current data handling details description: On success return channel settings
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
put: put:
description: Apply data handling details unconditionally (force) description: Apply channel handling details unconditionally (force)
operationId: daemonDataSettingsPut operationId: daemonChannelSettingsPut
tags: tags:
- Daemon - Daemon
parameters: parameters:
- name: body - name: body
in: body in: body
description: Data handling details to apply description: Channel handling details to apply
required: true required: true
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
responses: responses:
"200": "200":
description: On success returns new settings values description: On success returns new settings values
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
patch: patch:
description: Apply data handling details differentially (no force) description: Apply channel handling details differentially (no force)
operationId: daemonDataSettingsPatch operationId: daemonChannelSettingsPatch
tags: tags:
- Daemon - Daemon
parameters: parameters:
@ -1346,12 +1346,12 @@ paths:
description: Data handling detail to apply description: Data handling detail to apply
required: true required: true
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
responses: responses:
"200": "200":
description: On success returns new settings values description: On success returns new settings values
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
@ -2194,6 +2194,8 @@ definitions:
$ref: "/doc/swagger/include/NFMDemod.yaml#/NFMDemodSettings" $ref: "/doc/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
NFMModSettings: NFMModSettings:
$ref: "/doc/swagger/include/NFMMod.yaml#/NFMModSettings" $ref: "/doc/swagger/include/NFMMod.yaml#/NFMModSettings"
SDRDaemonChannelSettings:
$ref: "/doc/swagger/include/SDRDaemonChannel.yaml#/SDRDaemonChannelSettings"
SSBModSettings: SSBModSettings:
$ref: "/doc/swagger/include/SSBMod.yaml#/SSBModSettings" $ref: "/doc/swagger/include/SSBMod.yaml#/SSBModSettings"
SSBDemodSettings: SSBDemodSettings:
@ -2244,22 +2246,6 @@ definitions:
WFMModReport: WFMModReport:
$ref: "/doc/swagger/include/WFMMod.yaml#/WFMModReport" $ref: "/doc/swagger/include/WFMMod.yaml#/WFMModReport"
SDRDaemonDataSettings:
description: "Data handling details for SDRDaemon"
properties:
nbFECBlocks:
description: "Number of FEC blocks per frame"
type: integer
dataAddress:
description: "Receiving USB data address"
type: string
dataPort:
description: "Receiving USB data port"
type: integer
txDelay:
description: "Minimum delay in ms between consecutive USB blocks transmissions"
type: integer
responses: responses:
Response_500: Response_500:

View File

@ -2146,6 +2146,14 @@ bool WebAPIRequestMapper::validateChannelSettings(
return false; return false;
} }
} }
else if (*channelType == "SDRDaemonChannel")
{
QJsonObject sdrDaemonChannelSettingsJsonObject = jsonObject["SDRDaemonChannelSettings"].toObject();
channelSettingsKeys = sdrDaemonChannelSettingsJsonObject.keys();
channelSettings.setSdrDaemonChannelSettings(new SWGSDRangel::SWGSDRDaemonChannelSettings());
channelSettings.getSdrDaemonChannelSettings()->fromJsonObject(sdrDaemonChannelSettingsJsonObject);
return true;
}
else if (*channelType == "SSBDemod") else if (*channelType == "SSBDemod")
{ {
if (channelSettings.getTx() == 0) if (channelSettings.getTx() == 0)
@ -2384,6 +2392,7 @@ void WebAPIRequestMapper::resetChannelSettings(SWGSDRangel::SWGChannelSettings&
channelSettings.setDsdDemodSettings(0); channelSettings.setDsdDemodSettings(0);
channelSettings.setNfmDemodSettings(0); channelSettings.setNfmDemodSettings(0);
channelSettings.setNfmModSettings(0); channelSettings.setNfmModSettings(0);
channelSettings.setSdrDaemonChannelSettings(0);
channelSettings.setSsbDemodSettings(0); channelSettings.setSsbDemodSettings(0);
channelSettings.setSsbModSettings(0); channelSettings.setSsbModSettings(0);
channelSettings.setUdpSinkSettings(0); channelSettings.setUdpSinkSettings(0);

View File

@ -23,7 +23,7 @@
#include "SWGDeviceSettings.h" #include "SWGDeviceSettings.h"
#include "SWGDeviceState.h" #include "SWGDeviceState.h"
#include "SWGDeviceReport.h" #include "SWGDeviceReport.h"
#include "SWGSDRDaemonDataSettings.h" #include "SWGChannelSettings.h"
#include "SWGErrorResponse.h" #include "SWGErrorResponse.h"
#include "dsp/dsptypes.h" #include "dsp/dsptypes.h"
@ -39,7 +39,7 @@
QString WebAPIAdapterDaemon::daemonInstanceSummaryURL = "/sdrdaemon"; QString WebAPIAdapterDaemon::daemonInstanceSummaryURL = "/sdrdaemon";
QString WebAPIAdapterDaemon::daemonInstanceLoggingURL = "/sdrdaemon/logging"; QString WebAPIAdapterDaemon::daemonInstanceLoggingURL = "/sdrdaemon/logging";
QString WebAPIAdapterDaemon::daemonDataSettingsURL = "/sdrdaemon/data/settings"; QString WebAPIAdapterDaemon::daemonChannelSettingsURL = "/sdrdaemon/channel/settings";
QString WebAPIAdapterDaemon::daemonDeviceSettingsURL = "/sdrdaemon/device/settings"; QString WebAPIAdapterDaemon::daemonDeviceSettingsURL = "/sdrdaemon/device/settings";
QString WebAPIAdapterDaemon::daemonDeviceReportURL = "/sdrdaemon/device/report"; QString WebAPIAdapterDaemon::daemonDeviceReportURL = "/sdrdaemon/device/report";
QString WebAPIAdapterDaemon::daemonRunURL = "/sdrdaemon/run"; QString WebAPIAdapterDaemon::daemonRunURL = "/sdrdaemon/run";
@ -176,8 +176,8 @@ int WebAPIAdapterDaemon::daemonInstanceLoggingPut(
return 200; return 200;
} }
int WebAPIAdapterDaemon::daemonDataSettingsGet( int WebAPIAdapterDaemon::daemonChannelSettingsGet(
SWGSDRangel::SWGSDRDaemonDataSettings& response __attribute__((unused)), SWGSDRangel::SWGChannelSettings& response __attribute__((unused)),
SWGSDRangel::SWGErrorResponse& error) SWGSDRangel::SWGErrorResponse& error)
{ {
error.init(); error.init();
@ -185,10 +185,10 @@ int WebAPIAdapterDaemon::daemonDataSettingsGet(
return 501; return 501;
} }
int WebAPIAdapterDaemon::daemonDataSettingsPutPatch( int WebAPIAdapterDaemon::daemonChannelSettingsPutPatch(
bool force __attribute__((unused)), bool force __attribute__((unused)),
const QStringList& dataSettingsKeys __attribute__((unused)), const QStringList& channelSettingsKeys __attribute__((unused)),
SWGSDRangel::SWGSDRDaemonDataSettings& response __attribute__((unused)), SWGSDRangel::SWGChannelSettings& response __attribute__((unused)),
SWGSDRangel::SWGErrorResponse& error) SWGSDRangel::SWGErrorResponse& error)
{ {
error.init(); error.init();

View File

@ -33,7 +33,7 @@ namespace SWGSDRangel
class SWGSuccessResponse; class SWGSuccessResponse;
class SWGErrorResponse; class SWGErrorResponse;
class SWGLoggingInfo; class SWGLoggingInfo;
class SWGSDRDaemonDataSettings; class SWGChannelSettings;
} }
class SDRDaemonMain; class SDRDaemonMain;
@ -57,14 +57,14 @@ public:
SWGSDRangel::SWGLoggingInfo& response, SWGSDRangel::SWGLoggingInfo& response,
SWGSDRangel::SWGErrorResponse& error); SWGSDRangel::SWGErrorResponse& error);
int daemonDataSettingsGet( int daemonChannelSettingsGet(
SWGSDRangel::SWGSDRDaemonDataSettings& response, SWGSDRangel::SWGChannelSettings& response,
SWGSDRangel::SWGErrorResponse& error); SWGSDRangel::SWGErrorResponse& error);
int daemonDataSettingsPutPatch( int daemonChannelSettingsPutPatch(
bool force, bool force,
const QStringList& dataSettingsKeys, const QStringList& channelSettingsKeys,
SWGSDRangel::SWGSDRDaemonDataSettings& response, SWGSDRangel::SWGChannelSettings& response,
SWGSDRangel::SWGErrorResponse& error); SWGSDRangel::SWGErrorResponse& error);
int daemonDeviceSettingsGet( int daemonDeviceSettingsGet(
@ -95,7 +95,7 @@ public:
static QString daemonInstanceSummaryURL; static QString daemonInstanceSummaryURL;
static QString daemonInstanceLoggingURL; static QString daemonInstanceLoggingURL;
static QString daemonDataSettingsURL; static QString daemonChannelSettingsURL;
static QString daemonDeviceSettingsURL; static QString daemonDeviceSettingsURL;
static QString daemonDeviceReportURL; static QString daemonDeviceReportURL;
static QString daemonRunURL; static QString daemonRunURL;

View File

@ -26,7 +26,7 @@
#include "webapirequestmapper.h" #include "webapirequestmapper.h"
#include "SWGDaemonSummaryResponse.h" #include "SWGDaemonSummaryResponse.h"
#include "SWGInstanceDevicesResponse.h" #include "SWGInstanceDevicesResponse.h"
#include "SWGSDRDaemonDataSettings.h" #include "SWGChannelSettings.h"
#include "SWGDeviceSettings.h" #include "SWGDeviceSettings.h"
#include "SWGDeviceState.h" #include "SWGDeviceState.h"
#include "SWGDeviceReport.h" #include "SWGDeviceReport.h"
@ -96,8 +96,8 @@ void WebAPIRequestMapper::service(qtwebapp::HttpRequest& request, qtwebapp::Http
daemonInstanceSummaryService(request, response); daemonInstanceSummaryService(request, response);
} else if (path == WebAPIAdapterDaemon::daemonInstanceLoggingURL) { } else if (path == WebAPIAdapterDaemon::daemonInstanceLoggingURL) {
daemonInstanceLoggingService(request, response); daemonInstanceLoggingService(request, response);
} else if (path == WebAPIAdapterDaemon::daemonDataSettingsURL) { } else if (path == WebAPIAdapterDaemon::daemonChannelSettingsURL) {
daemonDataSettingsService(request, response); daemonChannelSettingsService(request, response);
} else if (path == WebAPIAdapterDaemon::daemonDeviceSettingsURL) { } else if (path == WebAPIAdapterDaemon::daemonDeviceSettingsURL) {
daemonDeviceSettingsService(request, response); daemonDeviceSettingsService(request, response);
} else if (path == WebAPIAdapterDaemon::daemonDeviceReportURL) { } else if (path == WebAPIAdapterDaemon::daemonDeviceReportURL) {
@ -191,27 +191,41 @@ void WebAPIRequestMapper::daemonInstanceLoggingService(qtwebapp::HttpRequest& re
} }
} }
void WebAPIRequestMapper::daemonDataSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response) void WebAPIRequestMapper::daemonChannelSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
{ {
SWGSDRangel::SWGErrorResponse errorResponse; SWGSDRangel::SWGErrorResponse errorResponse;
response.setHeader("Content-Type", "application/json"); response.setHeader("Content-Type", "application/json");
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Origin", "*");
if ((request.getMethod() == "PUT") || (request.getMethod() == "PATCH")) if (request.getMethod() == "GET")
{
SWGSDRangel::SWGChannelSettings normalResponse;
resetChannelSettings(normalResponse);
int status = m_adapter->daemonChannelSettingsGet(normalResponse, errorResponse);
response.setStatus(status);
if (status/100 == 2) {
response.write(normalResponse.asJson().toUtf8());
} else {
response.write(errorResponse.asJson().toUtf8());
}
}
else if ((request.getMethod() == "PUT") || (request.getMethod() == "PATCH"))
{ {
QString jsonStr = request.getBody(); QString jsonStr = request.getBody();
QJsonObject jsonObject; QJsonObject jsonObject;
if (parseJsonBody(jsonStr, jsonObject, response)) if (parseJsonBody(jsonStr, jsonObject, response))
{ {
SWGSDRangel::SWGSDRDaemonDataSettings normalResponse; SWGSDRangel::SWGChannelSettings normalResponse;
QStringList dataSettingsKeys; resetChannelSettings(normalResponse);
QStringList channelSettingsKeys;
if (validateDataSettings(normalResponse, jsonObject, dataSettingsKeys)) if (validateChannelSettings(normalResponse, jsonObject, channelSettingsKeys))
{ {
int status = m_adapter->daemonDataSettingsPutPatch( int status = m_adapter->daemonChannelSettingsPutPatch(
(request.getMethod() == "PUT"), // force settings on PUT (request.getMethod() == "PUT"), // force settings on PUT
dataSettingsKeys, channelSettingsKeys,
normalResponse, normalResponse,
errorResponse); errorResponse);
response.setStatus(status); response.setStatus(status);
@ -238,18 +252,6 @@ void WebAPIRequestMapper::daemonDataSettingsService(qtwebapp::HttpRequest& reque
response.write(errorResponse.asJson().toUtf8()); response.write(errorResponse.asJson().toUtf8());
} }
} }
else if (request.getMethod() == "GET")
{
SWGSDRangel::SWGSDRDaemonDataSettings normalResponse;
int status = m_adapter->daemonDataSettingsGet(normalResponse, errorResponse);
response.setStatus(status);
if (status/100 == 2) {
response.write(normalResponse.asJson().toUtf8());
} else {
response.write(errorResponse.asJson().toUtf8());
}
}
else else
{ {
response.setStatus(405,"Invalid HTTP method"); response.setStatus(405,"Invalid HTTP method");
@ -411,51 +413,248 @@ void WebAPIRequestMapper::daemonRunService(qtwebapp::HttpRequest& request, qtweb
} }
} }
// TODO: put in library in common with SDRangel. Can be static.
bool WebAPIRequestMapper::validateDataSettings(SWGSDRangel::SWGSDRDaemonDataSettings& dataSettings, QJsonObject& jsonObject, QStringList& dataSettingsKeys) bool WebAPIRequestMapper::validateChannelSettings(
SWGSDRangel::SWGChannelSettings& channelSettings,
QJsonObject& jsonObject,
QStringList& channelSettingsKeys)
{ {
if (jsonObject.contains("nbFECBlocks")) if (jsonObject.contains("tx")) {
{ channelSettings.setTx(jsonObject["tx"].toInt());
int nbFECBlocks = jsonObject["nbFECBlocks"].toInt(); } else {
channelSettings.setTx(0); // assume Rx
if (nbFECBlocks >=0 && nbFECBlocks < 127) {
dataSettings.setNbFecBlocks(nbFECBlocks);
} else {
dataSettings.setNbFecBlocks(0);
}
} }
if (jsonObject.contains("dataPort")) if (jsonObject.contains("channelType") && jsonObject["channelType"].isString()) {
{ channelSettings.setChannelType(new QString(jsonObject["channelType"].toString()));
int dataPort = jsonObject["dataPort"].toInt();
if (dataPort > 1023 && dataPort < 65536) {
dataSettings.setDataPort(dataPort);
} else {
dataSettings.setDataPort(9090);
}
}
if (jsonObject.contains("txDelay"))
{
int txDelay = jsonObject["txDelay"].toInt();
if (txDelay > 100) {
dataSettings.setTxDelay(txDelay);
} else {
dataSettings.setTxDelay(100);
}
}
if (jsonObject.contains("dataAddress") && jsonObject["dataAddress"].isString()) {
dataSettings.setDataAddress(new QString(jsonObject["dataAddress"].toString()));
} else { } else {
return false; return false;
} }
dataSettingsKeys = jsonObject.keys(); QString *channelType = channelSettings.getChannelType();
return true; if (*channelType == "AMDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject amDemodSettingsJsonObject = jsonObject["AMDemodSettings"].toObject();
channelSettingsKeys = amDemodSettingsJsonObject.keys();
channelSettings.setAmDemodSettings(new SWGSDRangel::SWGAMDemodSettings());
channelSettings.getAmDemodSettings()->fromJsonObject(amDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "AMMod")
{
if (channelSettings.getTx() != 0)
{
QJsonObject amModSettingsJsonObject = jsonObject["AMModSettings"].toObject();
channelSettingsKeys = amModSettingsJsonObject.keys();
if (channelSettingsKeys.contains("cwKeyer"))
{
QJsonObject cwKeyerSettingsJsonObject;
appendSettingsSubKeys(amModSettingsJsonObject, cwKeyerSettingsJsonObject, "cwKeyer", channelSettingsKeys);
}
channelSettings.setAmModSettings(new SWGSDRangel::SWGAMModSettings());
channelSettings.getAmModSettings()->fromJsonObject(amModSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "ATVMod")
{
if (channelSettings.getTx() != 0)
{
QJsonObject atvModSettingsJsonObject = jsonObject["ATVModSettings"].toObject();
channelSettingsKeys = atvModSettingsJsonObject.keys();
channelSettings.setAtvModSettings(new SWGSDRangel::SWGATVModSettings());
channelSettings.getAtvModSettings()->fromJsonObject(atvModSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "BFMDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject bfmDemodSettingsJsonObject = jsonObject["BFMDemodSettings"].toObject();
channelSettingsKeys = bfmDemodSettingsJsonObject.keys();
channelSettings.setBfmDemodSettings(new SWGSDRangel::SWGBFMDemodSettings());
channelSettings.getBfmDemodSettings()->fromJsonObject(bfmDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "DSDDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject dsdDemodSettingsJsonObject = jsonObject["DSDDemodSettings"].toObject();
channelSettingsKeys = dsdDemodSettingsJsonObject.keys();
channelSettings.setDsdDemodSettings(new SWGSDRangel::SWGDSDDemodSettings());
channelSettings.getDsdDemodSettings()->fromJsonObject(dsdDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "NFMDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject nfmDemodSettingsJsonObject = jsonObject["NFMDemodSettings"].toObject();
channelSettingsKeys = nfmDemodSettingsJsonObject.keys();
channelSettings.setNfmDemodSettings(new SWGSDRangel::SWGNFMDemodSettings());
channelSettings.getNfmDemodSettings()->fromJsonObject(nfmDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "NFMMod")
{
if (channelSettings.getTx() != 0)
{
QJsonObject nfmModSettingsJsonObject = jsonObject["NFMModSettings"].toObject();
channelSettingsKeys = nfmModSettingsJsonObject.keys();
if (channelSettingsKeys.contains("cwKeyer"))
{
QJsonObject cwKeyerSettingsJsonObject;
appendSettingsSubKeys(nfmModSettingsJsonObject, cwKeyerSettingsJsonObject, "cwKeyer", channelSettingsKeys);
}
channelSettings.setNfmModSettings(new SWGSDRangel::SWGNFMModSettings());
channelSettings.getNfmModSettings()->fromJsonObject(nfmModSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "SDRDaemonChannel")
{
QJsonObject sdrDaemonChannelSettingsJsonObject = jsonObject["SDRDaemonChannelSettings"].toObject();
channelSettingsKeys = sdrDaemonChannelSettingsJsonObject.keys();
channelSettings.setSdrDaemonChannelSettings(new SWGSDRangel::SWGSDRDaemonChannelSettings());
channelSettings.getSdrDaemonChannelSettings()->fromJsonObject(sdrDaemonChannelSettingsJsonObject);
return true;
}
else if (*channelType == "SSBDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject ssbDemodSettingsJsonObject = jsonObject["SSBDemodSettings"].toObject();
channelSettingsKeys = ssbDemodSettingsJsonObject.keys();
channelSettings.setSsbDemodSettings(new SWGSDRangel::SWGSSBDemodSettings());
channelSettings.getSsbDemodSettings()->fromJsonObject(ssbDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "SSBMod")
{
if (channelSettings.getTx() != 0)
{
QJsonObject ssbModSettingsJsonObject = jsonObject["SSBModSettings"].toObject();
channelSettingsKeys = ssbModSettingsJsonObject.keys();
if (channelSettingsKeys.contains("cwKeyer"))
{
QJsonObject cwKeyerSettingsJsonObject;
appendSettingsSubKeys(ssbModSettingsJsonObject, cwKeyerSettingsJsonObject, "cwKeyer", channelSettingsKeys);
}
channelSettings.setSsbModSettings(new SWGSDRangel::SWGSSBModSettings());
channelSettings.getSsbModSettings()->fromJsonObject(ssbModSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "UDPSink")
{
if (channelSettings.getTx() != 0)
{
QJsonObject udpSinkSettingsJsonObject = jsonObject["UDPSinkSettings"].toObject();
channelSettingsKeys = udpSinkSettingsJsonObject.keys();
channelSettings.setUdpSinkSettings(new SWGSDRangel::SWGUDPSinkSettings());
channelSettings.getUdpSinkSettings()->fromJsonObject(udpSinkSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "UDPSrc")
{
if (channelSettings.getTx() == 0)
{
QJsonObject udpSrcSettingsJsonObject = jsonObject["UDPSrcSettings"].toObject();
channelSettingsKeys = udpSrcSettingsJsonObject.keys();
channelSettings.setUdpSrcSettings(new SWGSDRangel::SWGUDPSrcSettings());
channelSettings.getUdpSrcSettings()->fromJsonObject(udpSrcSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "WFMDemod")
{
if (channelSettings.getTx() == 0)
{
QJsonObject wfmDemodSettingsJsonObject = jsonObject["WFMDemodSettings"].toObject();
channelSettingsKeys = wfmDemodSettingsJsonObject.keys();
channelSettings.setWfmDemodSettings(new SWGSDRangel::SWGWFMDemodSettings());
channelSettings.getWfmDemodSettings()->fromJsonObject(wfmDemodSettingsJsonObject);
return true;
}
else {
return false;
}
}
else if (*channelType == "WFMMod")
{
if (channelSettings.getTx() != 0)
{
QJsonObject wfmModSettingsJsonObject = jsonObject["WFMModSettings"].toObject();
channelSettingsKeys = wfmModSettingsJsonObject.keys();
if (channelSettingsKeys.contains("cwKeyer"))
{
QJsonObject cwKeyerSettingsJsonObject;
appendSettingsSubKeys(wfmModSettingsJsonObject, cwKeyerSettingsJsonObject, "cwKeyer", channelSettingsKeys);
}
channelSettings.setWfmModSettings(new SWGSDRangel::SWGWFMModSettings());
channelSettings.getWfmModSettings()->fromJsonObject(wfmModSettingsJsonObject);
return true;
}
else {
return false;
}
}
else
{
return false;
}
} }
// TODO: put in library in common with SDRangel. Can be static. // TODO: put in library in common with SDRangel. Can be static.
@ -774,6 +973,27 @@ bool WebAPIRequestMapper::parseJsonBody(QString& jsonStr, QJsonObject& jsonObjec
} }
} }
// TODO: put in library in common with SDRangel. Can be static.
void WebAPIRequestMapper::resetChannelSettings(SWGSDRangel::SWGChannelSettings& channelSettings)
{
channelSettings.cleanup();
channelSettings.setChannelType(0);
channelSettings.setAmDemodSettings(0);
channelSettings.setAmModSettings(0);
channelSettings.setAtvModSettings(0);
channelSettings.setBfmDemodSettings(0);
channelSettings.setDsdDemodSettings(0);
channelSettings.setNfmDemodSettings(0);
channelSettings.setNfmModSettings(0);
channelSettings.setSdrDaemonChannelSettings(0);
channelSettings.setSsbDemodSettings(0);
channelSettings.setSsbModSettings(0);
channelSettings.setUdpSinkSettings(0);
channelSettings.setUdpSrcSettings(0);
channelSettings.setWfmDemodSettings(0);
channelSettings.setWfmModSettings(0);
}
// TODO: put in library in common with SDRangel. Can be static. // TODO: put in library in common with SDRangel. Can be static.
void WebAPIRequestMapper::resetDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings) void WebAPIRequestMapper::resetDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings)
{ {

View File

@ -30,7 +30,7 @@
namespace SWGSDRangel namespace SWGSDRangel
{ {
class SWGSDRDaemonDataSettings; class SWGChannelSettings;
class SWGDeviceSettings; class SWGDeviceSettings;
class SWGDeviceReport; class SWGDeviceReport;
} }
@ -54,12 +54,12 @@ private:
void daemonInstanceSummaryService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonInstanceSummaryService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void daemonInstanceLoggingService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonInstanceLoggingService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void daemonDataSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonChannelSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void daemonDeviceSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonDeviceSettingsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void daemonRunService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonRunService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
void daemonDeviceReportService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response); void daemonDeviceReportService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
bool validateDataSettings(SWGSDRangel::SWGSDRDaemonDataSettings& dataSettings, QJsonObject& jsonObject, QStringList& dataSettingsKeys); bool validateChannelSettings(SWGSDRangel::SWGChannelSettings& channelSettings, QJsonObject& jsonObject, QStringList& channelSettingsKeys);
bool validateDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings, QJsonObject& jsonObject, QStringList& deviceSettingsKeys); bool validateDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings, QJsonObject& jsonObject, QStringList& deviceSettingsKeys);
void appendSettingsSubKeys( void appendSettingsSubKeys(
@ -70,6 +70,7 @@ private:
bool parseJsonBody(QString& jsonStr, QJsonObject& jsonObject, qtwebapp::HttpResponse& response); bool parseJsonBody(QString& jsonStr, QJsonObject& jsonObject, qtwebapp::HttpResponse& response);
void resetChannelSettings(SWGSDRangel::SWGChannelSettings& channelSettings);
void resetDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings); void resetDeviceSettings(SWGSDRangel::SWGDeviceSettings& deviceSettings);
void resetDeviceReport(SWGSDRangel::SWGDeviceReport& deviceReport); void resetDeviceReport(SWGSDRangel::SWGDeviceReport& deviceReport);
}; };

View File

@ -0,0 +1,15 @@
SDRDaemonChannelSettings:
description: "Data handling details for SDRDaemon"
properties:
nbFECBlocks:
description: "Number of FEC blocks per frame"
type: integer
dataAddress:
description: "Receiving USB data address"
type: string
dataPort:
description: "Receiving USB data port"
type: integer
txDelay:
description: "Minimum delay in ms between consecutive USB blocks transmissions"
type: integer

View File

@ -1298,46 +1298,46 @@ paths:
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
/sdrdaemon/data/settings: /sdrdaemon/channel/settings:
x-swagger-router-controller: deviceset x-swagger-router-controller: deviceset
get: get:
description: Get data handling details description: Get channel handling details
operationId: daemonDataSettingsGet operationId: daemonChannelSettingsGet
tags: tags:
- Daemon - Daemon
responses: responses:
"200": "200":
description: On success returns current data handling details description: On success return channel settings
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
put: put:
description: Apply data handling details unconditionally (force) description: Apply channel handling details unconditionally (force)
operationId: daemonDataSettingsPut operationId: daemonChannelSettingsPut
tags: tags:
- Daemon - Daemon
parameters: parameters:
- name: body - name: body
in: body in: body
description: Data handling details to apply description: Channel handling details to apply
required: true required: true
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
responses: responses:
"200": "200":
description: On success returns new settings values description: On success returns new settings values
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
$ref: "#/responses/Response_501" $ref: "#/responses/Response_501"
patch: patch:
description: Apply data handling details differentially (no force) description: Apply channel handling details differentially (no force)
operationId: daemonDataSettingsPatch operationId: daemonChannelSettingsPatch
tags: tags:
- Daemon - Daemon
parameters: parameters:
@ -1346,12 +1346,12 @@ paths:
description: Data handling detail to apply description: Data handling detail to apply
required: true required: true
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
responses: responses:
"200": "200":
description: On success returns new settings values description: On success returns new settings values
schema: schema:
$ref: "#/definitions/SDRDaemonDataSettings" $ref: "#/definitions/ChannelSettings"
"500": "500":
$ref: "#/responses/Response_500" $ref: "#/responses/Response_500"
"501": "501":
@ -2194,6 +2194,8 @@ definitions:
$ref: "http://localhost:8081/api/swagger/include/NFMDemod.yaml#/NFMDemodSettings" $ref: "http://localhost:8081/api/swagger/include/NFMDemod.yaml#/NFMDemodSettings"
NFMModSettings: NFMModSettings:
$ref: "http://localhost:8081/api/swagger/include/NFMMod.yaml#/NFMModSettings" $ref: "http://localhost:8081/api/swagger/include/NFMMod.yaml#/NFMModSettings"
SDRDaemonChannelSettings:
$ref: "http://localhost:8081/api/swagger/include/SDRDaemonChannel.yaml#/SDRDaemonChannelSettings"
SSBModSettings: SSBModSettings:
$ref: "http://localhost:8081/api/swagger/include/SSBMod.yaml#/SSBModSettings" $ref: "http://localhost:8081/api/swagger/include/SSBMod.yaml#/SSBModSettings"
SSBDemodSettings: SSBDemodSettings:
@ -2244,22 +2246,6 @@ definitions:
WFMModReport: WFMModReport:
$ref: "http://localhost:8081/api/swagger/include/WFMMod.yaml#/WFMModReport" $ref: "http://localhost:8081/api/swagger/include/WFMMod.yaml#/WFMModReport"
SDRDaemonDataSettings:
description: "Data handling details for SDRDaemon"
properties:
nbFECBlocks:
description: "Number of FEC blocks per frame"
type: integer
dataAddress:
description: "Receiving USB data address"
type: string
dataPort:
description: "Receiving USB data port"
type: integer
txDelay:
description: "Minimum delay in ms between consecutive USB blocks transmissions"
type: integer
responses: responses:
Response_500: Response_500:

File diff suppressed because it is too large Load Diff

View File

@ -46,6 +46,8 @@ SWGChannelSettings::SWGChannelSettings() {
m_nfm_demod_settings_isSet = false; m_nfm_demod_settings_isSet = false;
nfm_mod_settings = nullptr; nfm_mod_settings = nullptr;
m_nfm_mod_settings_isSet = false; m_nfm_mod_settings_isSet = false;
sdr_daemon_channel_settings = nullptr;
m_sdr_daemon_channel_settings_isSet = false;
ssb_mod_settings = nullptr; ssb_mod_settings = nullptr;
m_ssb_mod_settings_isSet = false; m_ssb_mod_settings_isSet = false;
ssb_demod_settings = nullptr; ssb_demod_settings = nullptr;
@ -84,6 +86,8 @@ SWGChannelSettings::init() {
m_nfm_demod_settings_isSet = false; m_nfm_demod_settings_isSet = false;
nfm_mod_settings = new SWGNFMModSettings(); nfm_mod_settings = new SWGNFMModSettings();
m_nfm_mod_settings_isSet = false; m_nfm_mod_settings_isSet = false;
sdr_daemon_channel_settings = new SWGSDRDaemonChannelSettings();
m_sdr_daemon_channel_settings_isSet = false;
ssb_mod_settings = new SWGSSBModSettings(); ssb_mod_settings = new SWGSSBModSettings();
m_ssb_mod_settings_isSet = false; m_ssb_mod_settings_isSet = false;
ssb_demod_settings = new SWGSSBDemodSettings(); ssb_demod_settings = new SWGSSBDemodSettings();
@ -125,6 +129,9 @@ SWGChannelSettings::cleanup() {
if(nfm_mod_settings != nullptr) { if(nfm_mod_settings != nullptr) {
delete nfm_mod_settings; delete nfm_mod_settings;
} }
if(sdr_daemon_channel_settings != nullptr) {
delete sdr_daemon_channel_settings;
}
if(ssb_mod_settings != nullptr) { if(ssb_mod_settings != nullptr) {
delete ssb_mod_settings; delete ssb_mod_settings;
} }
@ -174,6 +181,8 @@ SWGChannelSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&nfm_mod_settings, pJson["NFMModSettings"], "SWGNFMModSettings", "SWGNFMModSettings"); ::SWGSDRangel::setValue(&nfm_mod_settings, pJson["NFMModSettings"], "SWGNFMModSettings", "SWGNFMModSettings");
::SWGSDRangel::setValue(&sdr_daemon_channel_settings, pJson["SDRDaemonChannelSettings"], "SWGSDRDaemonChannelSettings", "SWGSDRDaemonChannelSettings");
::SWGSDRangel::setValue(&ssb_mod_settings, pJson["SSBModSettings"], "SWGSSBModSettings", "SWGSSBModSettings"); ::SWGSDRangel::setValue(&ssb_mod_settings, pJson["SSBModSettings"], "SWGSSBModSettings", "SWGSSBModSettings");
::SWGSDRangel::setValue(&ssb_demod_settings, pJson["SSBDemodSettings"], "SWGSSBDemodSettings", "SWGSSBDemodSettings"); ::SWGSDRangel::setValue(&ssb_demod_settings, pJson["SSBDemodSettings"], "SWGSSBDemodSettings", "SWGSSBDemodSettings");
@ -229,6 +238,9 @@ SWGChannelSettings::asJsonObject() {
if((nfm_mod_settings != nullptr) && (nfm_mod_settings->isSet())){ if((nfm_mod_settings != nullptr) && (nfm_mod_settings->isSet())){
toJsonValue(QString("NFMModSettings"), nfm_mod_settings, obj, QString("SWGNFMModSettings")); toJsonValue(QString("NFMModSettings"), nfm_mod_settings, obj, QString("SWGNFMModSettings"));
} }
if((sdr_daemon_channel_settings != nullptr) && (sdr_daemon_channel_settings->isSet())){
toJsonValue(QString("SDRDaemonChannelSettings"), sdr_daemon_channel_settings, obj, QString("SWGSDRDaemonChannelSettings"));
}
if((ssb_mod_settings != nullptr) && (ssb_mod_settings->isSet())){ if((ssb_mod_settings != nullptr) && (ssb_mod_settings->isSet())){
toJsonValue(QString("SSBModSettings"), ssb_mod_settings, obj, QString("SWGSSBModSettings")); toJsonValue(QString("SSBModSettings"), ssb_mod_settings, obj, QString("SWGSSBModSettings"));
} }
@ -341,6 +353,16 @@ SWGChannelSettings::setNfmModSettings(SWGNFMModSettings* nfm_mod_settings) {
this->m_nfm_mod_settings_isSet = true; this->m_nfm_mod_settings_isSet = true;
} }
SWGSDRDaemonChannelSettings*
SWGChannelSettings::getSdrDaemonChannelSettings() {
return sdr_daemon_channel_settings;
}
void
SWGChannelSettings::setSdrDaemonChannelSettings(SWGSDRDaemonChannelSettings* sdr_daemon_channel_settings) {
this->sdr_daemon_channel_settings = sdr_daemon_channel_settings;
this->m_sdr_daemon_channel_settings_isSet = true;
}
SWGSSBModSettings* SWGSSBModSettings*
SWGChannelSettings::getSsbModSettings() { SWGChannelSettings::getSsbModSettings() {
return ssb_mod_settings; return ssb_mod_settings;
@ -415,6 +437,7 @@ SWGChannelSettings::isSet(){
if(dsd_demod_settings != nullptr && dsd_demod_settings->isSet()){ isObjectUpdated = true; break;} if(dsd_demod_settings != nullptr && dsd_demod_settings->isSet()){ isObjectUpdated = true; break;}
if(nfm_demod_settings != nullptr && nfm_demod_settings->isSet()){ isObjectUpdated = true; break;} if(nfm_demod_settings != nullptr && nfm_demod_settings->isSet()){ isObjectUpdated = true; break;}
if(nfm_mod_settings != nullptr && nfm_mod_settings->isSet()){ isObjectUpdated = true; break;} if(nfm_mod_settings != nullptr && nfm_mod_settings->isSet()){ isObjectUpdated = true; break;}
if(sdr_daemon_channel_settings != nullptr && sdr_daemon_channel_settings->isSet()){ isObjectUpdated = true; break;}
if(ssb_mod_settings != nullptr && ssb_mod_settings->isSet()){ isObjectUpdated = true; break;} if(ssb_mod_settings != nullptr && ssb_mod_settings->isSet()){ isObjectUpdated = true; break;}
if(ssb_demod_settings != nullptr && ssb_demod_settings->isSet()){ isObjectUpdated = true; break;} if(ssb_demod_settings != nullptr && ssb_demod_settings->isSet()){ isObjectUpdated = true; break;}
if(udp_sink_settings != nullptr && udp_sink_settings->isSet()){ isObjectUpdated = true; break;} if(udp_sink_settings != nullptr && udp_sink_settings->isSet()){ isObjectUpdated = true; break;}

View File

@ -29,6 +29,7 @@
#include "SWGDSDDemodSettings.h" #include "SWGDSDDemodSettings.h"
#include "SWGNFMDemodSettings.h" #include "SWGNFMDemodSettings.h"
#include "SWGNFMModSettings.h" #include "SWGNFMModSettings.h"
#include "SWGSDRDaemonChannelSettings.h"
#include "SWGSSBDemodSettings.h" #include "SWGSSBDemodSettings.h"
#include "SWGSSBModSettings.h" #include "SWGSSBModSettings.h"
#include "SWGUDPSinkSettings.h" #include "SWGUDPSinkSettings.h"
@ -82,6 +83,9 @@ public:
SWGNFMModSettings* getNfmModSettings(); SWGNFMModSettings* getNfmModSettings();
void setNfmModSettings(SWGNFMModSettings* nfm_mod_settings); void setNfmModSettings(SWGNFMModSettings* nfm_mod_settings);
SWGSDRDaemonChannelSettings* getSdrDaemonChannelSettings();
void setSdrDaemonChannelSettings(SWGSDRDaemonChannelSettings* sdr_daemon_channel_settings);
SWGSSBModSettings* getSsbModSettings(); SWGSSBModSettings* getSsbModSettings();
void setSsbModSettings(SWGSSBModSettings* ssb_mod_settings); void setSsbModSettings(SWGSSBModSettings* ssb_mod_settings);
@ -131,6 +135,9 @@ private:
SWGNFMModSettings* nfm_mod_settings; SWGNFMModSettings* nfm_mod_settings;
bool m_nfm_mod_settings_isSet; bool m_nfm_mod_settings_isSet;
SWGSDRDaemonChannelSettings* sdr_daemon_channel_settings;
bool m_sdr_daemon_channel_settings_isSet;
SWGSSBModSettings* ssb_mod_settings; SWGSSBModSettings* ssb_mod_settings;
bool m_ssb_mod_settings_isSet; bool m_ssb_mod_settings_isSet;

View File

@ -29,9 +29,9 @@ SWGDaemonApi::SWGDaemonApi(QString host, QString basePath) {
} }
void void
SWGDaemonApi::daemonDataSettingsGet() { SWGDaemonApi::daemonChannelSettingsGet() {
QString fullPath; QString fullPath;
fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/data/settings"); fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/channel/settings");
@ -49,13 +49,13 @@ SWGDaemonApi::daemonDataSettingsGet() {
connect(worker, connect(worker,
&SWGHttpRequestWorker::on_execution_finished, &SWGHttpRequestWorker::on_execution_finished,
this, this,
&SWGDaemonApi::daemonDataSettingsGetCallback); &SWGDaemonApi::daemonChannelSettingsGetCallback);
worker->execute(&input); worker->execute(&input);
} }
void void
SWGDaemonApi::daemonDataSettingsGetCallback(SWGHttpRequestWorker * worker) { SWGDaemonApi::daemonChannelSettingsGetCallback(SWGHttpRequestWorker * worker) {
QString msg; QString msg;
QString error_str = worker->error_str; QString error_str = worker->error_str;
QNetworkReply::NetworkError error_type = worker->error_type; QNetworkReply::NetworkError error_type = worker->error_type;
@ -69,21 +69,21 @@ SWGDaemonApi::daemonDataSettingsGetCallback(SWGHttpRequestWorker * worker) {
QString json(worker->response); QString json(worker->response);
SWGSDRDaemonDataSettings* output = static_cast<SWGSDRDaemonDataSettings*>(create(json, QString("SWGSDRDaemonDataSettings"))); SWGChannelSettings* output = static_cast<SWGChannelSettings*>(create(json, QString("SWGChannelSettings")));
worker->deleteLater(); worker->deleteLater();
if (worker->error_type == QNetworkReply::NoError) { if (worker->error_type == QNetworkReply::NoError) {
emit daemonDataSettingsGetSignal(output); emit daemonChannelSettingsGetSignal(output);
} else { } else {
emit daemonDataSettingsGetSignalE(output, error_type, error_str); emit daemonChannelSettingsGetSignalE(output, error_type, error_str);
emit daemonDataSettingsGetSignalEFull(worker, error_type, error_str); emit daemonChannelSettingsGetSignalEFull(worker, error_type, error_str);
} }
} }
void void
SWGDaemonApi::daemonDataSettingsPatch(SWGSDRDaemonDataSettings& body) { SWGDaemonApi::daemonChannelSettingsPatch(SWGChannelSettings& body) {
QString fullPath; QString fullPath;
fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/data/settings"); fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/channel/settings");
@ -104,13 +104,13 @@ SWGDaemonApi::daemonDataSettingsPatch(SWGSDRDaemonDataSettings& body) {
connect(worker, connect(worker,
&SWGHttpRequestWorker::on_execution_finished, &SWGHttpRequestWorker::on_execution_finished,
this, this,
&SWGDaemonApi::daemonDataSettingsPatchCallback); &SWGDaemonApi::daemonChannelSettingsPatchCallback);
worker->execute(&input); worker->execute(&input);
} }
void void
SWGDaemonApi::daemonDataSettingsPatchCallback(SWGHttpRequestWorker * worker) { SWGDaemonApi::daemonChannelSettingsPatchCallback(SWGHttpRequestWorker * worker) {
QString msg; QString msg;
QString error_str = worker->error_str; QString error_str = worker->error_str;
QNetworkReply::NetworkError error_type = worker->error_type; QNetworkReply::NetworkError error_type = worker->error_type;
@ -124,21 +124,21 @@ SWGDaemonApi::daemonDataSettingsPatchCallback(SWGHttpRequestWorker * worker) {
QString json(worker->response); QString json(worker->response);
SWGSDRDaemonDataSettings* output = static_cast<SWGSDRDaemonDataSettings*>(create(json, QString("SWGSDRDaemonDataSettings"))); SWGChannelSettings* output = static_cast<SWGChannelSettings*>(create(json, QString("SWGChannelSettings")));
worker->deleteLater(); worker->deleteLater();
if (worker->error_type == QNetworkReply::NoError) { if (worker->error_type == QNetworkReply::NoError) {
emit daemonDataSettingsPatchSignal(output); emit daemonChannelSettingsPatchSignal(output);
} else { } else {
emit daemonDataSettingsPatchSignalE(output, error_type, error_str); emit daemonChannelSettingsPatchSignalE(output, error_type, error_str);
emit daemonDataSettingsPatchSignalEFull(worker, error_type, error_str); emit daemonChannelSettingsPatchSignalEFull(worker, error_type, error_str);
} }
} }
void void
SWGDaemonApi::daemonDataSettingsPut(SWGSDRDaemonDataSettings& body) { SWGDaemonApi::daemonChannelSettingsPut(SWGChannelSettings& body) {
QString fullPath; QString fullPath;
fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/data/settings"); fullPath.append(this->host).append(this->basePath).append("/sdrdaemon/channel/settings");
@ -159,13 +159,13 @@ SWGDaemonApi::daemonDataSettingsPut(SWGSDRDaemonDataSettings& body) {
connect(worker, connect(worker,
&SWGHttpRequestWorker::on_execution_finished, &SWGHttpRequestWorker::on_execution_finished,
this, this,
&SWGDaemonApi::daemonDataSettingsPutCallback); &SWGDaemonApi::daemonChannelSettingsPutCallback);
worker->execute(&input); worker->execute(&input);
} }
void void
SWGDaemonApi::daemonDataSettingsPutCallback(SWGHttpRequestWorker * worker) { SWGDaemonApi::daemonChannelSettingsPutCallback(SWGHttpRequestWorker * worker) {
QString msg; QString msg;
QString error_str = worker->error_str; QString error_str = worker->error_str;
QNetworkReply::NetworkError error_type = worker->error_type; QNetworkReply::NetworkError error_type = worker->error_type;
@ -179,14 +179,14 @@ SWGDaemonApi::daemonDataSettingsPutCallback(SWGHttpRequestWorker * worker) {
QString json(worker->response); QString json(worker->response);
SWGSDRDaemonDataSettings* output = static_cast<SWGSDRDaemonDataSettings*>(create(json, QString("SWGSDRDaemonDataSettings"))); SWGChannelSettings* output = static_cast<SWGChannelSettings*>(create(json, QString("SWGChannelSettings")));
worker->deleteLater(); worker->deleteLater();
if (worker->error_type == QNetworkReply::NoError) { if (worker->error_type == QNetworkReply::NoError) {
emit daemonDataSettingsPutSignal(output); emit daemonChannelSettingsPutSignal(output);
} else { } else {
emit daemonDataSettingsPutSignalE(output, error_type, error_str); emit daemonChannelSettingsPutSignalE(output, error_type, error_str);
emit daemonDataSettingsPutSignalEFull(worker, error_type, error_str); emit daemonChannelSettingsPutSignalEFull(worker, error_type, error_str);
} }
} }

View File

@ -15,13 +15,13 @@
#include "SWGHttpRequest.h" #include "SWGHttpRequest.h"
#include "SWGChannelSettings.h"
#include "SWGDaemonSummaryResponse.h" #include "SWGDaemonSummaryResponse.h"
#include "SWGDeviceReport.h" #include "SWGDeviceReport.h"
#include "SWGDeviceSettings.h" #include "SWGDeviceSettings.h"
#include "SWGDeviceState.h" #include "SWGDeviceState.h"
#include "SWGErrorResponse.h" #include "SWGErrorResponse.h"
#include "SWGLoggingInfo.h" #include "SWGLoggingInfo.h"
#include "SWGSDRDaemonDataSettings.h"
#include <QObject> #include <QObject>
@ -39,9 +39,9 @@ public:
QString basePath; QString basePath;
QMap<QString, QString> defaultHeaders; QMap<QString, QString> defaultHeaders;
void daemonDataSettingsGet(); void daemonChannelSettingsGet();
void daemonDataSettingsPatch(SWGSDRDaemonDataSettings& body); void daemonChannelSettingsPatch(SWGChannelSettings& body);
void daemonDataSettingsPut(SWGSDRDaemonDataSettings& body); void daemonChannelSettingsPut(SWGChannelSettings& body);
void daemonDeviceReportGet(); void daemonDeviceReportGet();
void daemonDeviceSettingsGet(); void daemonDeviceSettingsGet();
void daemonDeviceSettingsPatch(SWGDeviceSettings& body); void daemonDeviceSettingsPatch(SWGDeviceSettings& body);
@ -54,9 +54,9 @@ public:
void daemonRunPost(); void daemonRunPost();
private: private:
void daemonDataSettingsGetCallback (SWGHttpRequestWorker * worker); void daemonChannelSettingsGetCallback (SWGHttpRequestWorker * worker);
void daemonDataSettingsPatchCallback (SWGHttpRequestWorker * worker); void daemonChannelSettingsPatchCallback (SWGHttpRequestWorker * worker);
void daemonDataSettingsPutCallback (SWGHttpRequestWorker * worker); void daemonChannelSettingsPutCallback (SWGHttpRequestWorker * worker);
void daemonDeviceReportGetCallback (SWGHttpRequestWorker * worker); void daemonDeviceReportGetCallback (SWGHttpRequestWorker * worker);
void daemonDeviceSettingsGetCallback (SWGHttpRequestWorker * worker); void daemonDeviceSettingsGetCallback (SWGHttpRequestWorker * worker);
void daemonDeviceSettingsPatchCallback (SWGHttpRequestWorker * worker); void daemonDeviceSettingsPatchCallback (SWGHttpRequestWorker * worker);
@ -69,9 +69,9 @@ private:
void daemonRunPostCallback (SWGHttpRequestWorker * worker); void daemonRunPostCallback (SWGHttpRequestWorker * worker);
signals: signals:
void daemonDataSettingsGetSignal(SWGSDRDaemonDataSettings* summary); void daemonChannelSettingsGetSignal(SWGChannelSettings* summary);
void daemonDataSettingsPatchSignal(SWGSDRDaemonDataSettings* summary); void daemonChannelSettingsPatchSignal(SWGChannelSettings* summary);
void daemonDataSettingsPutSignal(SWGSDRDaemonDataSettings* summary); void daemonChannelSettingsPutSignal(SWGChannelSettings* summary);
void daemonDeviceReportGetSignal(SWGDeviceReport* summary); void daemonDeviceReportGetSignal(SWGDeviceReport* summary);
void daemonDeviceSettingsGetSignal(SWGDeviceSettings* summary); void daemonDeviceSettingsGetSignal(SWGDeviceSettings* summary);
void daemonDeviceSettingsPatchSignal(SWGDeviceSettings* summary); void daemonDeviceSettingsPatchSignal(SWGDeviceSettings* summary);
@ -83,9 +83,9 @@ signals:
void daemonRunGetSignal(SWGDeviceState* summary); void daemonRunGetSignal(SWGDeviceState* summary);
void daemonRunPostSignal(SWGDeviceState* summary); void daemonRunPostSignal(SWGDeviceState* summary);
void daemonDataSettingsGetSignalE(SWGSDRDaemonDataSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsGetSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDataSettingsPatchSignalE(SWGSDRDaemonDataSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsPatchSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDataSettingsPutSignalE(SWGSDRDaemonDataSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsPutSignalE(SWGChannelSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceReportGetSignalE(SWGDeviceReport* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceReportGetSignalE(SWGDeviceReport* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceSettingsGetSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceSettingsGetSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceSettingsPatchSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceSettingsPatchSignalE(SWGDeviceSettings* summary, QNetworkReply::NetworkError error_type, QString& error_str);
@ -97,9 +97,9 @@ signals:
void daemonRunGetSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonRunGetSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonRunPostSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str); void daemonRunPostSignalE(SWGDeviceState* summary, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDataSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDataSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDataSettingsPutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonChannelSettingsPutSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceReportGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceReportGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceSettingsGetSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);
void daemonDeviceSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str); void daemonDeviceSettingsPatchSignalEFull(SWGHttpRequestWorker* worker, QNetworkReply::NetworkError error_type, QString& error_str);

View File

@ -89,7 +89,7 @@
#include "SWGRDSReport_altFrequencies.h" #include "SWGRDSReport_altFrequencies.h"
#include "SWGRtlSdrReport.h" #include "SWGRtlSdrReport.h"
#include "SWGRtlSdrSettings.h" #include "SWGRtlSdrSettings.h"
#include "SWGSDRDaemonDataSettings.h" #include "SWGSDRDaemonChannelSettings.h"
#include "SWGSDRPlayReport.h" #include "SWGSDRPlayReport.h"
#include "SWGSDRPlaySettings.h" #include "SWGSDRPlaySettings.h"
#include "SWGSDRdaemonSinkReport.h" #include "SWGSDRdaemonSinkReport.h"
@ -341,8 +341,8 @@ namespace SWGSDRangel {
if(QString("SWGRtlSdrSettings").compare(type) == 0) { if(QString("SWGRtlSdrSettings").compare(type) == 0) {
return new SWGRtlSdrSettings(); return new SWGRtlSdrSettings();
} }
if(QString("SWGSDRDaemonDataSettings").compare(type) == 0) { if(QString("SWGSDRDaemonChannelSettings").compare(type) == 0) {
return new SWGSDRDaemonDataSettings(); return new SWGSDRDaemonChannelSettings();
} }
if(QString("SWGSDRPlayReport").compare(type) == 0) { if(QString("SWGSDRPlayReport").compare(type) == 0) {
return new SWGSDRPlayReport(); return new SWGSDRPlayReport();

View File

@ -11,7 +11,7 @@
*/ */
#include "SWGSDRDaemonDataSettings.h" #include "SWGSDRDaemonChannelSettings.h"
#include "SWGHelpers.h" #include "SWGHelpers.h"
@ -22,12 +22,12 @@
namespace SWGSDRangel { namespace SWGSDRangel {
SWGSDRDaemonDataSettings::SWGSDRDaemonDataSettings(QString* json) { SWGSDRDaemonChannelSettings::SWGSDRDaemonChannelSettings(QString* json) {
init(); init();
this->fromJson(*json); this->fromJson(*json);
} }
SWGSDRDaemonDataSettings::SWGSDRDaemonDataSettings() { SWGSDRDaemonChannelSettings::SWGSDRDaemonChannelSettings() {
nb_fec_blocks = 0; nb_fec_blocks = 0;
m_nb_fec_blocks_isSet = false; m_nb_fec_blocks_isSet = false;
data_address = nullptr; data_address = nullptr;
@ -38,12 +38,12 @@ SWGSDRDaemonDataSettings::SWGSDRDaemonDataSettings() {
m_tx_delay_isSet = false; m_tx_delay_isSet = false;
} }
SWGSDRDaemonDataSettings::~SWGSDRDaemonDataSettings() { SWGSDRDaemonChannelSettings::~SWGSDRDaemonChannelSettings() {
this->cleanup(); this->cleanup();
} }
void void
SWGSDRDaemonDataSettings::init() { SWGSDRDaemonChannelSettings::init() {
nb_fec_blocks = 0; nb_fec_blocks = 0;
m_nb_fec_blocks_isSet = false; m_nb_fec_blocks_isSet = false;
data_address = new QString(""); data_address = new QString("");
@ -55,7 +55,7 @@ SWGSDRDaemonDataSettings::init() {
} }
void void
SWGSDRDaemonDataSettings::cleanup() { SWGSDRDaemonChannelSettings::cleanup() {
if(data_address != nullptr) { if(data_address != nullptr) {
delete data_address; delete data_address;
@ -64,8 +64,8 @@ SWGSDRDaemonDataSettings::cleanup() {
} }
SWGSDRDaemonDataSettings* SWGSDRDaemonChannelSettings*
SWGSDRDaemonDataSettings::fromJson(QString &json) { SWGSDRDaemonChannelSettings::fromJson(QString &json) {
QByteArray array (json.toStdString().c_str()); QByteArray array (json.toStdString().c_str());
QJsonDocument doc = QJsonDocument::fromJson(array); QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject jsonObject = doc.object(); QJsonObject jsonObject = doc.object();
@ -74,7 +74,7 @@ SWGSDRDaemonDataSettings::fromJson(QString &json) {
} }
void void
SWGSDRDaemonDataSettings::fromJsonObject(QJsonObject &pJson) { SWGSDRDaemonChannelSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&nb_fec_blocks, pJson["nbFECBlocks"], "qint32", ""); ::SWGSDRangel::setValue(&nb_fec_blocks, pJson["nbFECBlocks"], "qint32", "");
::SWGSDRangel::setValue(&data_address, pJson["dataAddress"], "QString", "QString"); ::SWGSDRangel::setValue(&data_address, pJson["dataAddress"], "QString", "QString");
@ -86,7 +86,7 @@ SWGSDRDaemonDataSettings::fromJsonObject(QJsonObject &pJson) {
} }
QString QString
SWGSDRDaemonDataSettings::asJson () SWGSDRDaemonChannelSettings::asJson ()
{ {
QJsonObject* obj = this->asJsonObject(); QJsonObject* obj = this->asJsonObject();
@ -97,7 +97,7 @@ SWGSDRDaemonDataSettings::asJson ()
} }
QJsonObject* QJsonObject*
SWGSDRDaemonDataSettings::asJsonObject() { SWGSDRDaemonChannelSettings::asJsonObject() {
QJsonObject* obj = new QJsonObject(); QJsonObject* obj = new QJsonObject();
if(m_nb_fec_blocks_isSet){ if(m_nb_fec_blocks_isSet){
obj->insert("nbFECBlocks", QJsonValue(nb_fec_blocks)); obj->insert("nbFECBlocks", QJsonValue(nb_fec_blocks));
@ -116,48 +116,48 @@ SWGSDRDaemonDataSettings::asJsonObject() {
} }
qint32 qint32
SWGSDRDaemonDataSettings::getNbFecBlocks() { SWGSDRDaemonChannelSettings::getNbFecBlocks() {
return nb_fec_blocks; return nb_fec_blocks;
} }
void void
SWGSDRDaemonDataSettings::setNbFecBlocks(qint32 nb_fec_blocks) { SWGSDRDaemonChannelSettings::setNbFecBlocks(qint32 nb_fec_blocks) {
this->nb_fec_blocks = nb_fec_blocks; this->nb_fec_blocks = nb_fec_blocks;
this->m_nb_fec_blocks_isSet = true; this->m_nb_fec_blocks_isSet = true;
} }
QString* QString*
SWGSDRDaemonDataSettings::getDataAddress() { SWGSDRDaemonChannelSettings::getDataAddress() {
return data_address; return data_address;
} }
void void
SWGSDRDaemonDataSettings::setDataAddress(QString* data_address) { SWGSDRDaemonChannelSettings::setDataAddress(QString* data_address) {
this->data_address = data_address; this->data_address = data_address;
this->m_data_address_isSet = true; this->m_data_address_isSet = true;
} }
qint32 qint32
SWGSDRDaemonDataSettings::getDataPort() { SWGSDRDaemonChannelSettings::getDataPort() {
return data_port; return data_port;
} }
void void
SWGSDRDaemonDataSettings::setDataPort(qint32 data_port) { SWGSDRDaemonChannelSettings::setDataPort(qint32 data_port) {
this->data_port = data_port; this->data_port = data_port;
this->m_data_port_isSet = true; this->m_data_port_isSet = true;
} }
qint32 qint32
SWGSDRDaemonDataSettings::getTxDelay() { SWGSDRDaemonChannelSettings::getTxDelay() {
return tx_delay; return tx_delay;
} }
void void
SWGSDRDaemonDataSettings::setTxDelay(qint32 tx_delay) { SWGSDRDaemonChannelSettings::setTxDelay(qint32 tx_delay) {
this->tx_delay = tx_delay; this->tx_delay = tx_delay;
this->m_tx_delay_isSet = true; this->m_tx_delay_isSet = true;
} }
bool bool
SWGSDRDaemonDataSettings::isSet(){ SWGSDRDaemonChannelSettings::isSet(){
bool isObjectUpdated = false; bool isObjectUpdated = false;
do{ do{
if(m_nb_fec_blocks_isSet){ isObjectUpdated = true; break;} if(m_nb_fec_blocks_isSet){ isObjectUpdated = true; break;}

View File

@ -11,13 +11,13 @@
*/ */
/* /*
* SWGSDRDaemonDataSettings.h * SWGSDRDaemonChannelSettings.h
* *
* Data handling details for SDRDaemon * Data handling details for SDRDaemon
*/ */
#ifndef SWGSDRDaemonDataSettings_H_ #ifndef SWGSDRDaemonChannelSettings_H_
#define SWGSDRDaemonDataSettings_H_ #define SWGSDRDaemonChannelSettings_H_
#include <QJsonObject> #include <QJsonObject>
@ -29,18 +29,18 @@
namespace SWGSDRangel { namespace SWGSDRangel {
class SWG_API SWGSDRDaemonDataSettings: public SWGObject { class SWG_API SWGSDRDaemonChannelSettings: public SWGObject {
public: public:
SWGSDRDaemonDataSettings(); SWGSDRDaemonChannelSettings();
SWGSDRDaemonDataSettings(QString* json); SWGSDRDaemonChannelSettings(QString* json);
virtual ~SWGSDRDaemonDataSettings(); virtual ~SWGSDRDaemonChannelSettings();
void init(); void init();
void cleanup(); void cleanup();
virtual QString asJson () override; virtual QString asJson () override;
virtual QJsonObject* asJsonObject() override; virtual QJsonObject* asJsonObject() override;
virtual void fromJsonObject(QJsonObject &json) override; virtual void fromJsonObject(QJsonObject &json) override;
virtual SWGSDRDaemonDataSettings* fromJson(QString &jsonString) override; virtual SWGSDRDaemonChannelSettings* fromJson(QString &jsonString) override;
qint32 getNbFecBlocks(); qint32 getNbFecBlocks();
void setNbFecBlocks(qint32 nb_fec_blocks); void setNbFecBlocks(qint32 nb_fec_blocks);
@ -74,4 +74,4 @@ private:
} }
#endif /* SWGSDRDaemonDataSettings_H_ */ #endif /* SWGSDRDaemonChannelSettings_H_ */