mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-09-28 15:56:33 -04:00
PlutoSDR input: debug (2)
This commit is contained in:
parent
aa047c77cc
commit
f38e7704ad
@ -132,6 +132,10 @@ void DevicePlutoSDRBox::set_params(DeviceType devType,
|
|||||||
}
|
}
|
||||||
std::cerr << "DevicePlutoSDRBox::set_params: Unable to write " << item << " attribute " << key << "=" << val << ": " << ret << std::endl;
|
std::cerr << "DevicePlutoSDRBox::set_params: Unable to write " << item << " attribute " << key << "=" << val << ": " << ret << std::endl;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::cerr << "DevicePlutoSDRBox::set_params: set attribute " << key << "=" << val << ": " << ret << std::endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ bool PlutoSDRInput::handleMessage(const Message& message)
|
|||||||
|
|
||||||
bool PlutoSDRInput::openDevice()
|
bool PlutoSDRInput::openDevice()
|
||||||
{
|
{
|
||||||
if (!m_sampleFifo.setSize(96000 * 4))
|
if (!m_sampleFifo.setSize(1<<19))
|
||||||
{
|
{
|
||||||
qCritical("PlutoSDRInput::openDevice: could not allocate SampleFifo");
|
qCritical("PlutoSDRInput::openDevice: could not allocate SampleFifo");
|
||||||
return false;
|
return false;
|
||||||
@ -368,7 +368,6 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo
|
|||||||
|
|
||||||
if ((m_settings.m_centerFrequency != settings.m_centerFrequency) || force)
|
if ((m_settings.m_centerFrequency != settings.m_centerFrequency) || force)
|
||||||
{
|
{
|
||||||
std::vector<std::string> params;
|
|
||||||
params.push_back(QString(tr("out_altvoltage0_RX_LO_frequency=%1").arg(settings.m_centerFrequency)).toStdString());
|
params.push_back(QString(tr("out_altvoltage0_RX_LO_frequency=%1").arg(settings.m_centerFrequency)).toStdString());
|
||||||
paramsToSet = true;
|
paramsToSet = true;
|
||||||
forwardChangeOwnDSP = true;
|
forwardChangeOwnDSP = true;
|
||||||
@ -376,14 +375,12 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo
|
|||||||
|
|
||||||
if ((m_settings.m_lpfBW != settings.m_lpfBW) || force)
|
if ((m_settings.m_lpfBW != settings.m_lpfBW) || force)
|
||||||
{
|
{
|
||||||
std::vector<std::string> params;
|
|
||||||
params.push_back(QString(tr("in_voltage_rf_bandwidth=%1").arg(settings.m_lpfBW)).toStdString());
|
params.push_back(QString(tr("in_voltage_rf_bandwidth=%1").arg(settings.m_lpfBW)).toStdString());
|
||||||
paramsToSet = true;
|
paramsToSet = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_settings.m_antennaPath != settings.m_antennaPath) || force)
|
if ((m_settings.m_antennaPath != settings.m_antennaPath) || force)
|
||||||
{
|
{
|
||||||
std::vector<std::string> params;
|
|
||||||
QString rfPortStr;
|
QString rfPortStr;
|
||||||
PlutoSDRInputSettings::translateRFPath(settings.m_antennaPath, rfPortStr);
|
PlutoSDRInputSettings::translateRFPath(settings.m_antennaPath, rfPortStr);
|
||||||
params.push_back(QString(tr("in_voltage0_rf_port_select=%1").arg(rfPortStr)).toStdString());
|
params.push_back(QString(tr("in_voltage0_rf_port_select=%1").arg(rfPortStr)).toStdString());
|
||||||
@ -392,7 +389,6 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo
|
|||||||
|
|
||||||
if ((m_settings.m_gainMode != settings.m_gainMode) || force)
|
if ((m_settings.m_gainMode != settings.m_gainMode) || force)
|
||||||
{
|
{
|
||||||
std::vector<std::string> params;
|
|
||||||
QString gainModeStr;
|
QString gainModeStr;
|
||||||
PlutoSDRInputSettings::translateGainMode(settings.m_gainMode, gainModeStr);
|
PlutoSDRInputSettings::translateGainMode(settings.m_gainMode, gainModeStr);
|
||||||
params.push_back(QString(tr("in_voltage0_gain_control_mode=%1").arg(gainModeStr)).toStdString());
|
params.push_back(QString(tr("in_voltage0_gain_control_mode=%1").arg(gainModeStr)).toStdString());
|
||||||
@ -401,7 +397,6 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo
|
|||||||
|
|
||||||
if ((m_settings.m_gain != settings.m_gain) || force)
|
if ((m_settings.m_gain != settings.m_gain) || force)
|
||||||
{
|
{
|
||||||
std::vector<std::string> params;
|
|
||||||
params.push_back(QString(tr("in_voltage0_hardwaregain=%1").arg(settings.m_gain)).toStdString());
|
params.push_back(QString(tr("in_voltage0_hardwaregain=%1").arg(settings.m_gain)).toStdString());
|
||||||
paramsToSet = true;
|
paramsToSet = true;
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ void PlutoSDRInputSettings::resetToDefaults()
|
|||||||
m_devSampleRate = 2500 * 1000;
|
m_devSampleRate = 2500 * 1000;
|
||||||
m_dcBlock = false;
|
m_dcBlock = false;
|
||||||
m_iqCorrection = false;
|
m_iqCorrection = false;
|
||||||
m_lpfBW = 1500000.0f;
|
m_lpfBW = 1500000;
|
||||||
m_lpfFIREnable = false;
|
m_lpfFIREnable = false;
|
||||||
m_lpfFIRBW = 500000U;
|
m_lpfFIRBW = 500000U;
|
||||||
m_lpfFIRlog2Decim = 0;
|
m_lpfFIRlog2Decim = 0;
|
||||||
@ -54,7 +54,7 @@ QByteArray PlutoSDRInputSettings::serialize() const
|
|||||||
s.writeS32(5, m_fcPos);
|
s.writeS32(5, m_fcPos);
|
||||||
s.writeBool(7, m_dcBlock);
|
s.writeBool(7, m_dcBlock);
|
||||||
s.writeBool(8, m_iqCorrection);
|
s.writeBool(8, m_iqCorrection);
|
||||||
s.writeFloat(9, m_lpfBW);
|
s.writeU32(9, m_lpfBW);
|
||||||
s.writeBool(10, m_lpfFIREnable);
|
s.writeBool(10, m_lpfFIREnable);
|
||||||
s.writeU32(11, m_lpfFIRBW);
|
s.writeU32(11, m_lpfFIRBW);
|
||||||
s.writeU64(12, m_devSampleRate);
|
s.writeU64(12, m_devSampleRate);
|
||||||
@ -97,7 +97,7 @@ bool PlutoSDRInputSettings::deserialize(const QByteArray& data)
|
|||||||
}
|
}
|
||||||
d.readBool(7, &m_dcBlock, false);
|
d.readBool(7, &m_dcBlock, false);
|
||||||
d.readBool(8, &m_iqCorrection, false);
|
d.readBool(8, &m_iqCorrection, false);
|
||||||
d.readFloat(9, &m_lpfBW, 1500000.0f);
|
d.readU32(9, &m_lpfBW, 1500000);
|
||||||
d.readBool(10, &m_lpfFIREnable, false);
|
d.readBool(10, &m_lpfFIREnable, false);
|
||||||
d.readU32(11, &m_lpfFIRBW, 500000U);
|
d.readU32(11, &m_lpfFIRBW, 500000U);
|
||||||
d.readU64(12, &m_devSampleRate, 1536000U);
|
d.readU64(12, &m_devSampleRate, 1536000U);
|
||||||
|
@ -66,8 +66,8 @@ struct PlutoSDRInputSettings {
|
|||||||
bool m_dcBlock;
|
bool m_dcBlock;
|
||||||
bool m_iqCorrection;
|
bool m_iqCorrection;
|
||||||
quint32 m_log2Decim;
|
quint32 m_log2Decim;
|
||||||
float m_lpfBW; //!< analog lowpass filter bandwidth (Hz)
|
quint32 m_lpfBW; //!< analog lowpass filter bandwidth (Hz)
|
||||||
uint32_t m_gain; //!< "hardware" gain
|
quint32 m_gain; //!< "hardware" gain
|
||||||
RFPath m_antennaPath;
|
RFPath m_antennaPath;
|
||||||
GainMode m_gainMode;
|
GainMode m_gainMode;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ PlutoSDRInputThread::PlutoSDRInputThread(uint32_t blocksize, DevicePlutoSDRBox*
|
|||||||
m_running(false),
|
m_running(false),
|
||||||
m_plutoBox(plutoBox),
|
m_plutoBox(plutoBox),
|
||||||
m_blockSize(blocksize),
|
m_blockSize(blocksize),
|
||||||
m_convertBuffer(blocksize),
|
m_convertBuffer(1<<15),
|
||||||
m_sampleFifo(sampleFifo),
|
m_sampleFifo(sampleFifo),
|
||||||
m_convertIt(m_convertBuffer.begin()),
|
m_convertIt(m_convertBuffer.begin()),
|
||||||
m_log2Decim(0),
|
m_log2Decim(0),
|
||||||
@ -81,7 +81,7 @@ void PlutoSDRInputThread::run()
|
|||||||
|
|
||||||
// Refill RX buffer
|
// Refill RX buffer
|
||||||
nbytes_rx = m_plutoBox->rxBufferRefill();
|
nbytes_rx = m_plutoBox->rxBufferRefill();
|
||||||
if (nbytes_rx < 0) { qWarning("Error refilling buf %d\n",(int) nbytes_rx); break; }
|
if (nbytes_rx < 0) { qWarning("PlutoSDRInputThread::run: error refilling buf %d\n",(int) nbytes_rx); break; }
|
||||||
|
|
||||||
// READ: Get pointers to RX buf and read IQ from RX buf port 0
|
// READ: Get pointers to RX buf and read IQ from RX buf port 0
|
||||||
p_inc = m_plutoBox->rxBufferStep();
|
p_inc = m_plutoBox->rxBufferStep();
|
||||||
@ -93,15 +93,25 @@ void PlutoSDRInputThread::run()
|
|||||||
m_buf[2*is] = ((int16_t*)p_dat)[0]; // Real (I)
|
m_buf[2*is] = ((int16_t*)p_dat)[0]; // Real (I)
|
||||||
m_buf[2*is+1] = ((int16_t*)p_dat)[1]; // Imag (Q)
|
m_buf[2*is+1] = ((int16_t*)p_dat)[1]; // Imag (Q)
|
||||||
|
|
||||||
if (is == ((1<<m_log2Decim) - 1))
|
if (is == 32768-1)
|
||||||
{
|
{
|
||||||
convert(); // I+Q -> 2
|
m_sampleFifo->write((unsigned char *) m_buf, 32768*4);
|
||||||
is = 0;
|
is = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
is++;
|
is++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (is == ((1<<m_log2Decim) - 1))
|
||||||
|
// {
|
||||||
|
// convert(); // I+Q -> 2
|
||||||
|
// is = 0;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// is++;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user