mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
Web API: /sdrangel/devicesets (GET) implementation
This commit is contained in:
parent
9fab034f14
commit
c91918840e
@ -2599,7 +2599,7 @@ except ApiException as e:
|
||||
<div class="pull-right"></div>
|
||||
<div class="clearfix"></div>
|
||||
<p></p>
|
||||
<p class="marked">Remove last device set</p>
|
||||
<p class="marked">Remove last device set except the first device</p>
|
||||
<p></p>
|
||||
<br />
|
||||
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/sdrangel/devicesets</span></code></pre>
|
||||
@ -2836,7 +2836,7 @@ except ApiException as e:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3> Status: 404 - No more device sets opened in this instance </h3>
|
||||
<h3> Status: 404 - No more device sets to be deleted </h3>
|
||||
|
||||
<ul class="nav nav-tabs nav-tabs-examples" >
|
||||
</ul>
|
||||
@ -3207,7 +3207,7 @@ except ApiException as e:
|
||||
<div class="pull-right"></div>
|
||||
<div class="clearfix"></div>
|
||||
<p></p>
|
||||
<p class="marked">Add (append) a new device set</p>
|
||||
<p class="marked">Add (append) a new device set with default values</p>
|
||||
<p></p>
|
||||
<br />
|
||||
<pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/sdrangel/devicesets</span></code></pre>
|
||||
@ -7638,7 +7638,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2017-11-25T19:38:10.216+01:00
|
||||
Generated 2017-11-25T20:11:05.104+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -26,3 +26,4 @@ QString WebAPIAdapterInterface::instanceAudioURL = "/sdrangel/audio";
|
||||
QString WebAPIAdapterInterface::instanceLocationURL = "/sdrangel/location";
|
||||
QString WebAPIAdapterInterface::instanceDVSerialURL = "/sdrangel/dvserial";
|
||||
QString WebAPIAdapterInterface::instancePresetURL = "/sdrangel/preset";
|
||||
QString WebAPIAdapterInterface::instanceDeviceSetsURL = "/sdrangel/devicesets";
|
||||
|
@ -34,6 +34,7 @@ namespace Swagger
|
||||
class SWGPresets;
|
||||
class SWGPresetTransfer;
|
||||
class SWGPresetIdentifier;
|
||||
class SWGDeviceSetList;
|
||||
class SWGErrorResponse;
|
||||
}
|
||||
|
||||
@ -183,6 +184,15 @@ public:
|
||||
Swagger::SWGErrorResponse& error __attribute__((unused)))
|
||||
{ return 501; }
|
||||
|
||||
/**
|
||||
* Handler of /sdrangel/preset (DELETE) swagger/sdrangel/code/html2/index.html#api-Default-instanceChannels
|
||||
* returns the Http status code (default 501: not implemented)
|
||||
*/
|
||||
virtual int instanceDeviceSetsGet(
|
||||
Swagger::SWGDeviceSetList& response __attribute__((unused)),
|
||||
Swagger::SWGErrorResponse& error __attribute__((unused)))
|
||||
{ return 501; }
|
||||
|
||||
static QString instanceSummaryURL;
|
||||
static QString instanceDevicesURL;
|
||||
static QString instanceChannelsURL;
|
||||
@ -191,6 +201,7 @@ public:
|
||||
static QString instanceLocationURL;
|
||||
static QString instanceDVSerialURL;
|
||||
static QString instancePresetURL;
|
||||
static QString instanceDeviceSetsURL;
|
||||
};
|
||||
|
||||
|
||||
|
@ -75,6 +75,8 @@ void WebAPIRequestMapper::service(qtwebapp::HttpRequest& request, qtwebapp::Http
|
||||
instanceDVSerialService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instancePresetURL) {
|
||||
instancePresetService(request, response);
|
||||
} else if (path == WebAPIAdapterInterface::instanceDeviceSetsURL) {
|
||||
instanceDeviceSetsService(request, response);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -469,6 +471,29 @@ void WebAPIRequestMapper::instancePresetService(qtwebapp::HttpRequest& request,
|
||||
}
|
||||
}
|
||||
|
||||
void WebAPIRequestMapper::instanceDeviceSetsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
Swagger::SWGErrorResponse errorResponse;
|
||||
|
||||
if (request.getMethod() == "GET")
|
||||
{
|
||||
Swagger::SWGDeviceSetList normalResponse;
|
||||
int status = m_adapter->instanceDeviceSetsGet(normalResponse, errorResponse);
|
||||
response.setStatus(status);
|
||||
|
||||
if (status == 200) {
|
||||
response.write(normalResponse.asJson().toUtf8());
|
||||
} else {
|
||||
response.write(errorResponse.asJson().toUtf8());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
response.setStatus(405,"Invalid HTTP method");
|
||||
response.write("Invalid HTTP method");
|
||||
}
|
||||
}
|
||||
|
||||
bool WebAPIRequestMapper::parseJsonBody(QString& jsonStr, qtwebapp::HttpResponse& response)
|
||||
{
|
||||
Swagger::SWGErrorResponse errorResponse;
|
||||
|
@ -53,6 +53,7 @@ private:
|
||||
void instanceLocationService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceDVSerialService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instancePresetService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
void instanceDeviceSetsService(qtwebapp::HttpRequest& request, qtwebapp::HttpResponse& response);
|
||||
|
||||
bool validatePresetTransfer(Swagger::SWGPresetTransfer& presetTransfer);
|
||||
bool validatePresetIdentifer(Swagger::SWGPresetIdentifier& presetIdentifier);
|
||||
|
@ -70,87 +70,16 @@ int WebAPIAdapterGUI::instanceSummary(
|
||||
Swagger::SWGLoggingInfo *logging = response.getLogging();
|
||||
logging->init();
|
||||
logging->setDumpToFile(m_mainWindow.m_logger->getUseFileLogger() ? 1 : 0);
|
||||
|
||||
if (logging->getDumpToFile()) {
|
||||
m_mainWindow.m_logger->getLogFileName(*logging->getFileName());
|
||||
m_mainWindow.m_logger->getFileMinMessageLevelStr(*logging->getFileLevel());
|
||||
}
|
||||
|
||||
m_mainWindow.m_logger->getConsoleMinMessageLevelStr(*logging->getConsoleLevel());
|
||||
|
||||
Swagger::SWGDeviceSetList *deviceSetList = response.getDevicesetlist();
|
||||
deviceSetList->init();
|
||||
deviceSetList->setDevicesetcount((int) m_mainWindow.m_deviceUIs.size());
|
||||
|
||||
std::vector<DeviceUISet*>::const_iterator it = m_mainWindow.m_deviceUIs.begin();
|
||||
|
||||
for (int i = 0; it != m_mainWindow.m_deviceUIs.end(); ++it, i++)
|
||||
{
|
||||
QList<Swagger::SWGDeviceSet*> *deviceSet = deviceSetList->getDeviceSets();
|
||||
deviceSet->append(new Swagger::SWGDeviceSet());
|
||||
Swagger::SWGSamplingDevice *samplingDevice = deviceSet->back()->getSamplingDevice();
|
||||
samplingDevice->init();
|
||||
samplingDevice->setIndex(i);
|
||||
samplingDevice->setTx((*it)->m_deviceSinkEngine != 0);
|
||||
|
||||
if ((*it)->m_deviceSinkEngine) // Tx data
|
||||
{
|
||||
*samplingDevice->getHwType() = (*it)->m_deviceSinkAPI->getHardwareId();
|
||||
*samplingDevice->getSerial() = (*it)->m_deviceSinkAPI->getSampleSinkSerial();
|
||||
samplingDevice->setSequence((*it)->m_deviceSinkAPI->getSampleSinkSequence());
|
||||
samplingDevice->setNbStreams((*it)->m_deviceSinkAPI->getNbItems());
|
||||
samplingDevice->setStreamIndex((*it)->m_deviceSinkAPI->getItemIndex());
|
||||
(*it)->m_deviceSinkAPI->getDeviceEngineStateStr(*samplingDevice->getState());
|
||||
DeviceSampleSink *sampleSink = (*it)->m_deviceSinkEngine->getSink();
|
||||
|
||||
if (sampleSink) {
|
||||
samplingDevice->setCenterFrequency(sampleSink->getCenterFrequency());
|
||||
samplingDevice->setBandwidth(sampleSink->getSampleRate());
|
||||
}
|
||||
|
||||
deviceSet->back()->setChannelcount((*it)->m_deviceSinkAPI->getNbChannels());
|
||||
QList<Swagger::SWGChannel*> *channels = deviceSet->back()->getChannels();
|
||||
|
||||
for (int i = 0; i < deviceSet->back()->getChannelcount(); i++)
|
||||
{
|
||||
channels->append(new Swagger::SWGChannel);
|
||||
ChannelSourceAPI *channel = (*it)->m_deviceSinkAPI->getChanelAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getDeltaFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
channel->getIdentifier(*channels->back()->getId());
|
||||
channel->getTitle(*channels->back()->getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
if ((*it)->m_deviceSourceEngine) // Rx data
|
||||
{
|
||||
*samplingDevice->getHwType() = (*it)->m_deviceSourceAPI->getHardwareId();
|
||||
*samplingDevice->getSerial() = (*it)->m_deviceSourceAPI->getSampleSourceSerial();
|
||||
samplingDevice->setSequence((*it)->m_deviceSourceAPI->getSampleSourceSequence());
|
||||
samplingDevice->setNbStreams((*it)->m_deviceSourceAPI->getNbItems());
|
||||
samplingDevice->setStreamIndex((*it)->m_deviceSourceAPI->getItemIndex());
|
||||
(*it)->m_deviceSourceAPI->getDeviceEngineStateStr(*samplingDevice->getState());
|
||||
DeviceSampleSource *sampleSource = (*it)->m_deviceSourceEngine->getSource();
|
||||
|
||||
if (sampleSource) {
|
||||
samplingDevice->setCenterFrequency(sampleSource->getCenterFrequency());
|
||||
samplingDevice->setBandwidth(sampleSource->getSampleRate());
|
||||
}
|
||||
|
||||
deviceSet->back()->setChannelcount((*it)->m_deviceSourceAPI->getNbChannels());
|
||||
QList<Swagger::SWGChannel*> *channels = deviceSet->back()->getChannels();
|
||||
|
||||
for (int i = 0; i < deviceSet->back()->getChannelcount(); i++)
|
||||
{
|
||||
channels->append(new Swagger::SWGChannel);
|
||||
ChannelSinkAPI *channel = (*it)->m_deviceSourceAPI->getChanelAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getDeltaFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
channel->getIdentifier(*channels->back()->getId());
|
||||
channel->getTitle(*channels->back()->getTitle());
|
||||
}
|
||||
}
|
||||
}
|
||||
getDeviceSetList(deviceSetList);
|
||||
|
||||
return 200;
|
||||
}
|
||||
@ -614,6 +543,92 @@ int WebAPIAdapterGUI::instancePresetDelete(
|
||||
return 200;
|
||||
}
|
||||
|
||||
int WebAPIAdapterGUI::instanceDeviceSetsGet(
|
||||
Swagger::SWGDeviceSetList& response,
|
||||
Swagger::SWGErrorResponse& error __attribute__((unused)))
|
||||
{
|
||||
getDeviceSetList(&response);
|
||||
return 200;
|
||||
}
|
||||
|
||||
void WebAPIAdapterGUI::getDeviceSetList(Swagger::SWGDeviceSetList* deviceSetList)
|
||||
{
|
||||
deviceSetList->init();
|
||||
deviceSetList->setDevicesetcount((int) m_mainWindow.m_deviceUIs.size());
|
||||
|
||||
std::vector<DeviceUISet*>::const_iterator it = m_mainWindow.m_deviceUIs.begin();
|
||||
|
||||
for (int i = 0; it != m_mainWindow.m_deviceUIs.end(); ++it, i++)
|
||||
{
|
||||
QList<Swagger::SWGDeviceSet*> *deviceSet = deviceSetList->getDeviceSets();
|
||||
deviceSet->append(new Swagger::SWGDeviceSet());
|
||||
Swagger::SWGSamplingDevice *samplingDevice = deviceSet->back()->getSamplingDevice();
|
||||
samplingDevice->init();
|
||||
samplingDevice->setIndex(i);
|
||||
samplingDevice->setTx((*it)->m_deviceSinkEngine != 0);
|
||||
|
||||
if ((*it)->m_deviceSinkEngine) // Tx data
|
||||
{
|
||||
*samplingDevice->getHwType() = (*it)->m_deviceSinkAPI->getHardwareId();
|
||||
*samplingDevice->getSerial() = (*it)->m_deviceSinkAPI->getSampleSinkSerial();
|
||||
samplingDevice->setSequence((*it)->m_deviceSinkAPI->getSampleSinkSequence());
|
||||
samplingDevice->setNbStreams((*it)->m_deviceSinkAPI->getNbItems());
|
||||
samplingDevice->setStreamIndex((*it)->m_deviceSinkAPI->getItemIndex());
|
||||
(*it)->m_deviceSinkAPI->getDeviceEngineStateStr(*samplingDevice->getState());
|
||||
DeviceSampleSink *sampleSink = (*it)->m_deviceSinkEngine->getSink();
|
||||
|
||||
if (sampleSink) {
|
||||
samplingDevice->setCenterFrequency(sampleSink->getCenterFrequency());
|
||||
samplingDevice->setBandwidth(sampleSink->getSampleRate());
|
||||
}
|
||||
|
||||
deviceSet->back()->setChannelcount((*it)->m_deviceSinkAPI->getNbChannels());
|
||||
QList<Swagger::SWGChannel*> *channels = deviceSet->back()->getChannels();
|
||||
|
||||
for (int i = 0; i < deviceSet->back()->getChannelcount(); i++)
|
||||
{
|
||||
channels->append(new Swagger::SWGChannel);
|
||||
ChannelSourceAPI *channel = (*it)->m_deviceSinkAPI->getChanelAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getDeltaFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
channel->getIdentifier(*channels->back()->getId());
|
||||
channel->getTitle(*channels->back()->getTitle());
|
||||
}
|
||||
}
|
||||
|
||||
if ((*it)->m_deviceSourceEngine) // Rx data
|
||||
{
|
||||
*samplingDevice->getHwType() = (*it)->m_deviceSourceAPI->getHardwareId();
|
||||
*samplingDevice->getSerial() = (*it)->m_deviceSourceAPI->getSampleSourceSerial();
|
||||
samplingDevice->setSequence((*it)->m_deviceSourceAPI->getSampleSourceSequence());
|
||||
samplingDevice->setNbStreams((*it)->m_deviceSourceAPI->getNbItems());
|
||||
samplingDevice->setStreamIndex((*it)->m_deviceSourceAPI->getItemIndex());
|
||||
(*it)->m_deviceSourceAPI->getDeviceEngineStateStr(*samplingDevice->getState());
|
||||
DeviceSampleSource *sampleSource = (*it)->m_deviceSourceEngine->getSource();
|
||||
|
||||
if (sampleSource) {
|
||||
samplingDevice->setCenterFrequency(sampleSource->getCenterFrequency());
|
||||
samplingDevice->setBandwidth(sampleSource->getSampleRate());
|
||||
}
|
||||
|
||||
deviceSet->back()->setChannelcount((*it)->m_deviceSourceAPI->getNbChannels());
|
||||
QList<Swagger::SWGChannel*> *channels = deviceSet->back()->getChannels();
|
||||
|
||||
for (int i = 0; i < deviceSet->back()->getChannelcount(); i++)
|
||||
{
|
||||
channels->append(new Swagger::SWGChannel);
|
||||
ChannelSinkAPI *channel = (*it)->m_deviceSourceAPI->getChanelAPIAt(i);
|
||||
channels->back()->setDeltaFrequency(channel->getDeltaFrequency());
|
||||
channels->back()->setIndex(channel->getIndexInDeviceSet());
|
||||
channels->back()->setUid(channel->getUID());
|
||||
channel->getIdentifier(*channels->back()->getId());
|
||||
channel->getTitle(*channels->back()->getTitle());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QtMsgType WebAPIAdapterGUI::getMsgTypeFromString(const QString& msgTypeString)
|
||||
{
|
||||
if (msgTypeString == "debug") {
|
||||
|
@ -97,9 +97,14 @@ public:
|
||||
Swagger::SWGPresetIdentifier& response,
|
||||
Swagger::SWGErrorResponse& error);
|
||||
|
||||
virtual int instanceDeviceSetsGet(
|
||||
Swagger::SWGDeviceSetList& response,
|
||||
Swagger::SWGErrorResponse& error);
|
||||
|
||||
private:
|
||||
MainWindow& m_mainWindow;
|
||||
|
||||
void getDeviceSetList(Swagger::SWGDeviceSetList* deviceSetList);
|
||||
static QtMsgType getMsgTypeFromString(const QString& msgTypeString);
|
||||
static void getMsgTypeString(const QtMsgType& msgType, QString& level);
|
||||
};
|
||||
|
@ -392,7 +392,7 @@ paths:
|
||||
"501":
|
||||
description: Function not implemented
|
||||
post:
|
||||
description: Add (append) a new device set
|
||||
description: Add (append) a new device set with default values
|
||||
operationId: instanceDeviceSetsPost
|
||||
parameters:
|
||||
- name: tx
|
||||
@ -412,7 +412,7 @@ paths:
|
||||
"501":
|
||||
description: Function not implemented
|
||||
delete:
|
||||
description: "Remove last device set"
|
||||
description: Remove last device set except the first device
|
||||
operationId: instanceDeviceSetsDelete
|
||||
responses:
|
||||
"200":
|
||||
@ -420,7 +420,7 @@ paths:
|
||||
schema:
|
||||
$ref: "#/definitions/DeviceSetList"
|
||||
"404":
|
||||
description: "No more device sets opened in this instance"
|
||||
description: "No more device sets to be deleted"
|
||||
"500":
|
||||
description: Error
|
||||
schema:
|
||||
|
@ -2599,7 +2599,7 @@ except ApiException as e:
|
||||
<div class="pull-right"></div>
|
||||
<div class="clearfix"></div>
|
||||
<p></p>
|
||||
<p class="marked">Remove last device set</p>
|
||||
<p class="marked">Remove last device set except the first device</p>
|
||||
<p></p>
|
||||
<br />
|
||||
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/sdrangel/devicesets</span></code></pre>
|
||||
@ -2836,7 +2836,7 @@ except ApiException as e:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3> Status: 404 - No more device sets opened in this instance </h3>
|
||||
<h3> Status: 404 - No more device sets to be deleted </h3>
|
||||
|
||||
<ul class="nav nav-tabs nav-tabs-examples" >
|
||||
</ul>
|
||||
@ -3207,7 +3207,7 @@ except ApiException as e:
|
||||
<div class="pull-right"></div>
|
||||
<div class="clearfix"></div>
|
||||
<p></p>
|
||||
<p class="marked">Add (append) a new device set</p>
|
||||
<p class="marked">Add (append) a new device set with default values</p>
|
||||
<p></p>
|
||||
<br />
|
||||
<pre class="prettyprint language-html prettyprinted" data-type="post"><code><span class="pln">/sdrangel/devicesets</span></code></pre>
|
||||
@ -7638,7 +7638,7 @@ except ApiException as e:
|
||||
</div>
|
||||
<div id="generator">
|
||||
<div class="content">
|
||||
Generated 2017-11-25T19:38:10.216+01:00
|
||||
Generated 2017-11-25T20:11:05.104+01:00
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user