mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 13:47:01 -04:00
Web API: /sdrangel/devicesets (GET) implementation
This commit is contained in:
@@ -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") {
|
||||
|
||||
Reference in New Issue
Block a user