LimeSDR input: interim state (1)

This commit is contained in:
f4exb 2017-09-06 00:23:47 +02:00
parent a24236a300
commit ed47cc4d2e
2 changed files with 50 additions and 1 deletions

View File

@ -19,6 +19,8 @@
#include "dsp/filerecord.h"
#include "device/devicesourceapi.h"
#include "device/devicesinkapi.h"
#include "plutosdr/deviceplutosdrparams.h"
#include "plutosdr/deviceplutosdrbox.h"
#include "plutosdrinput.h"
@ -90,7 +92,53 @@ bool PlutoSDRInput::handleMessage(const Message& message)
bool PlutoSDRInput::openDevice()
{
if (!m_sampleFifo.setSize(96000 * 4))
{
qCritical("PlutoSDRInput::openDevice: could not allocate SampleFifo");
return false;
}
else
{
qDebug("PlutoSDRInput::openDevice: allocated SampleFifo");
}
// look for Tx buddy and get reference to common parameters
if (m_deviceAPI->getSinkBuddies().size() > 0) // then sink
{
qDebug("PlutoSDRInput::openDevice: look at Tx buddy");
DeviceSinkAPI *sinkBuddy = m_deviceAPI->getSinkBuddies()[0];
m_deviceShared = *((DevicePlutoSDRShared *) sinkBuddy->getBuddySharedPtr()); // copy parameters
if (m_deviceShared.m_deviceParams == 0)
{
qCritical("PlutoSDRInput::openDevice: cannot get device parameters from Tx buddy");
return false; // the device params should have been created by the buddy
}
else
{
qDebug("PlutoSDRInput::openDevice: getting device parameters from Tx buddy");
}
}
// There is no buddy then create the first PlutoSDR common parameters
// open the device this will also populate common fields
else
{
qDebug("PlutoSDRInput::openDevice: open device here");
m_deviceShared.m_deviceParams = new DevicePlutoSDRParams();
char serial[256];
strcpy(serial, qPrintable(m_deviceAPI->getSampleSourceSerial()));
m_deviceShared.m_deviceParams->open(serial);
}
m_deviceAPI->setBuddySharedPtr(&m_deviceShared); // propagate common parameters to API
// acquire the channel
DevicePlutoSDRBox *plutoBox = m_deviceShared.m_deviceParams->getBox();
plutoBox->openRx();
// TODO: get Rx buffer
}
void PlutoSDRInput::closeDevice()

View File

@ -21,7 +21,7 @@
#include <dsp/devicesamplesource.h>
#include "util/message.h"
#include "plutosdr/deviceplutosdrshared.h"
#include "plutosdrinputsettings.h"
class DeviceSourceAPI;
@ -67,6 +67,7 @@ public:
QString m_deviceDescription;
PlutoSDRInputSettings m_settings;
bool m_running;
DevicePlutoSDRShared m_deviceShared;
QMutex m_mutex;
bool openDevice();