mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 21:54:55 -04:00
MIMO: copied test source as multiple input. Adaptation of main classes
This commit is contained in:
@@ -19,9 +19,11 @@
|
||||
#include "plugin/plugininterface.h"
|
||||
#include "dsp/dspdevicesourceengine.h"
|
||||
#include "dsp/dspdevicesinkengine.h"
|
||||
#include "dsp/dspdevicemimoengine.h"
|
||||
#include "dsp/dspengine.h"
|
||||
#include "dsp/devicesamplesource.h"
|
||||
#include "dsp/devicesamplesink.h"
|
||||
#include "dsp/devicesamplemimo.h"
|
||||
#include "settings/preset.h"
|
||||
#include "channel/channelapi.h"
|
||||
|
||||
@@ -31,7 +33,8 @@ DeviceAPI::DeviceAPI(
|
||||
StreamType streamType,
|
||||
int deviceTabIndex,
|
||||
DSPDeviceSourceEngine *deviceSourceEngine,
|
||||
DSPDeviceSinkEngine *deviceSinkEngine
|
||||
DSPDeviceSinkEngine *deviceSinkEngine,
|
||||
DSPDeviceMIMOEngine *deviceMIMOEngine
|
||||
) :
|
||||
m_streamType(streamType),
|
||||
m_deviceTabIndex(deviceTabIndex),
|
||||
@@ -44,7 +47,8 @@ DeviceAPI::DeviceAPI(
|
||||
m_buddySharedPtr(0),
|
||||
m_isBuddyLeader(false),
|
||||
m_deviceSourceEngine(deviceSourceEngine),
|
||||
m_deviceSinkEngine(deviceSinkEngine)
|
||||
m_deviceSinkEngine(deviceSinkEngine),
|
||||
m_deviceMIMOEngine(deviceMIMOEngine)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -156,6 +160,13 @@ void DeviceAPI::setSampleSink(DeviceSampleSink* sink)
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::setSampleMIMO(DeviceSampleMIMO* mimo)
|
||||
{
|
||||
if (m_deviceMIMOEngine) {
|
||||
m_deviceMIMOEngine->setMIMO(mimo);
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleSource *DeviceAPI::getSampleSource()
|
||||
{
|
||||
if (m_deviceSourceEngine) {
|
||||
@@ -174,14 +185,25 @@ DeviceSampleSink *DeviceAPI::getSampleSink()
|
||||
}
|
||||
}
|
||||
|
||||
DeviceSampleMIMO *DeviceAPI::getSampleMIMO()
|
||||
{
|
||||
if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->getMIMO();
|
||||
} else {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
bool DeviceAPI::initDeviceEngine()
|
||||
{
|
||||
if (m_deviceSourceEngine) {
|
||||
return m_deviceSourceEngine->initAcquisition();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->initGeneration();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->initProcess();
|
||||
} else {
|
||||
return false; // TODO: not implemented
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,8 +213,10 @@ bool DeviceAPI::startDeviceEngine()
|
||||
return m_deviceSourceEngine->startAcquisition();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->startGeneration();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->startProcess();
|
||||
} else {
|
||||
return false; // TODO: not implemented
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,6 +226,8 @@ void DeviceAPI::stopDeviceEngine()
|
||||
m_deviceSourceEngine->stopAcquistion();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
m_deviceSinkEngine->stopGeneration();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
m_deviceMIMOEngine->stopProcess();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,8 +237,10 @@ DeviceAPI::EngineState DeviceAPI::state() const
|
||||
return (DeviceAPI::EngineState) m_deviceSourceEngine->state();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return (DeviceAPI::EngineState) m_deviceSinkEngine->state();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return (DeviceAPI::EngineState) m_deviceMIMOEngine->state();
|
||||
} else {
|
||||
return StError; // TODO: not implemented
|
||||
return StError;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,8 +250,10 @@ QString DeviceAPI::errorMessage()
|
||||
return m_deviceSourceEngine->errorMessage();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->errorMessage();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->errorMessage();
|
||||
} else {
|
||||
return "Not implemented"; // TODO: not implemented
|
||||
return "Not implemented";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -233,8 +263,10 @@ uint DeviceAPI::getDeviceUID() const
|
||||
return m_deviceSourceEngine->getUID();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->getUID();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->getUID();
|
||||
} else {
|
||||
return 0; // TODO: not implemented
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,8 +276,10 @@ MessageQueue *DeviceAPI::getDeviceEngineInputMessageQueue()
|
||||
return m_deviceSourceEngine->getInputMessageQueue();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->getInputMessageQueue();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->getInputMessageQueue();
|
||||
} else {
|
||||
return nullptr; // TODO: not implemented
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,8 +289,10 @@ MessageQueue *DeviceAPI::getSamplingDeviceInputMessageQueue()
|
||||
return m_deviceSourceEngine->getSource()->getInputMessageQueue();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->getSink()->getInputMessageQueue();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->getMIMO()->getInputMessageQueue();
|
||||
} else {
|
||||
return nullptr; // TODO: not implemented
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,17 +302,19 @@ MessageQueue *DeviceAPI::getSamplingDeviceGUIMessageQueue()
|
||||
return m_deviceSourceEngine->getSource()->getMessageQueueToGUI();
|
||||
} else if (m_deviceSinkEngine) {
|
||||
return m_deviceSinkEngine->getSink()->getMessageQueueToGUI();
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
return m_deviceMIMOEngine->getMIMO()->getMessageQueueToGUI();
|
||||
} else {
|
||||
return nullptr; // TODO: not implemented
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceAPI::configureCorrections(bool dcOffsetCorrection, bool iqImbalanceCorrection, int streamIndex)
|
||||
{
|
||||
(void) streamIndex;
|
||||
|
||||
if (m_deviceSourceEngine) {
|
||||
m_deviceSourceEngine->configureCorrections(dcOffsetCorrection, iqImbalanceCorrection);
|
||||
} else if (m_deviceMIMOEngine) {
|
||||
m_deviceMIMOEngine->configureCorrections(dcOffsetCorrection, iqImbalanceCorrection, streamIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user