1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-07-25 19:44:12 -04:00

Web API: implemented /sdrange/devices: Get a list of sampling devices that can be used to take part in a device set

This commit is contained in:
f4exb
2017-11-22 18:57:35 +01:00
parent 09dc5913c7
commit 2ac9a82b02
9 changed files with 156 additions and 39 deletions
@@ -19,4 +19,5 @@
#include "webapiadapterinterface.h"
QString WebAPIAdapterInterface::instanceSummaryURL = "/sdrangel";
QString WebAPIAdapterInterface::instanceDevicesURL = "/sdrangel/devices";
+12
View File
@@ -24,6 +24,7 @@
namespace Swagger
{
class SWGInstanceSummaryResponse;
class SWGInstanceDevicesResponse;
class SWGErrorResponse;
}
@@ -41,7 +42,18 @@ public:
Swagger::SWGErrorResponse& error __attribute__((unused)))
{ return 501; }
/**
* Handler of /sdrangel/devices (GET) swagger/sdrangel/code/html2/index.html#api-Default-instanceDevices
* returns the Http status code (default 501: not implemented)
*/
virtual int instanceDevices(
bool tx __attribute__((unused)),
Swagger::SWGInstanceDevicesResponse& response __attribute__((unused)),
Swagger::SWGErrorResponse& error __attribute__((unused)))
{ return 501; }
static QString instanceSummaryURL;
static QString instanceDevicesURL;
};
+27
View File
@@ -21,6 +21,7 @@
#include "httpdocrootsettings.h"
#include "webapirequestmapper.h"
#include "SWGInstanceSummaryResponse.h"
#include "SWGInstanceDevicesResponse.h"
#include "SWGErrorResponse.h"
WebAPIRequestMapper::WebAPIRequestMapper(QObject* parent) :
@@ -71,6 +72,32 @@ void WebAPIRequestMapper::service(qtwebapp::HttpRequest& request, qtwebapp::Http
response.setStatus(405,"Invalid HTTP method");
}
}
else if (path == WebAPIAdapterInterface::instanceDevicesURL)
{
Swagger::SWGInstanceDevicesResponse normalResponse;
Swagger::SWGErrorResponse errorResponse;
if (request.getMethod() == "GET")
{
QByteArray txStr = request.getParameter("tx");
bool tx = (txStr == "true");
int status = m_adapter->instanceDevices(tx, normalResponse, errorResponse);
if (status == 200) {
response.write(normalResponse.asJson().toUtf8());
} else {
response.write(errorResponse.asJson().toUtf8());
}
response.setStatus(status);
}
else
{
response.write("Invalid HTTP method");
response.setStatus(405,"Invalid HTTP method");
}
}
else
{
// QDirIterator it(":", QDirIterator::Subdirectories);