mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-16 05:11:49 -05:00
LimeSDR: use LMS_GetSampleRate to get the actual rates when MsgReportBuddyChange comes from an opposite buddy
This commit is contained in:
parent
50123f90a4
commit
ca14e41e1c
@ -532,8 +532,34 @@ bool LimeSDROutput::handleMessage(const Message& message)
|
|||||||
|
|
||||||
if (report.getRxElseTx())
|
if (report.getRxElseTx())
|
||||||
{
|
{
|
||||||
int adcdac_rate = report.getDevSampleRate() * (1<<report.getLog2HardDecimInterp());
|
double host_Hz;
|
||||||
m_settings.m_devSampleRate = adcdac_rate / (1<<m_settings.m_log2HardInterp); // new device to host sample rate
|
double rf_Hz;
|
||||||
|
|
||||||
|
if (LMS_GetSampleRate(m_deviceShared.m_deviceParams->getDevice(),
|
||||||
|
LMS_CH_TX,
|
||||||
|
m_deviceShared.m_channel,
|
||||||
|
&host_Hz,
|
||||||
|
&rf_Hz) < 0)
|
||||||
|
{
|
||||||
|
qDebug("LimeSDROutput::handleMessage: MsgReportBuddyChange: LMS_GetSampleRate() failed");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_settings.m_devSampleRate = roundf(host_Hz);
|
||||||
|
int hard = roundf(rf_Hz) / m_settings.m_devSampleRate;
|
||||||
|
m_settings.m_log2HardInterp = log2(hard);
|
||||||
|
|
||||||
|
qDebug() << "LimeSDROutput::handleMessage: MsgReportBuddyChange:"
|
||||||
|
<< " host_Hz: " << host_Hz
|
||||||
|
<< " rf_Hz: " << rf_Hz
|
||||||
|
<< " m_devSampleRate: " << m_settings.m_devSampleRate
|
||||||
|
<< " log2Hard: " << hard
|
||||||
|
<< " m_log2HardInterp: " << m_settings.m_log2HardInterp;
|
||||||
|
|
||||||
|
// int adcdac_rate = report.getDevSampleRate() * (1<<report.getLog2HardDecimInterp());
|
||||||
|
// m_settings.m_devSampleRate = adcdac_rate / (1<<m_settings.m_log2HardInterp); // new device to host sample rate
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -548,8 +548,32 @@ bool LimeSDRInput::handleMessage(const Message& message)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int adcdac_rate = report.getDevSampleRate() * (1<<report.getLog2HardDecimInterp());
|
double host_Hz;
|
||||||
m_settings.m_devSampleRate = adcdac_rate / (1<<m_settings.m_log2HardDecim); // new device to host sample rate
|
double rf_Hz;
|
||||||
|
|
||||||
|
if (LMS_GetSampleRate(m_deviceShared.m_deviceParams->getDevice(),
|
||||||
|
LMS_CH_RX,
|
||||||
|
m_deviceShared.m_channel,
|
||||||
|
&host_Hz,
|
||||||
|
&rf_Hz) < 0)
|
||||||
|
{
|
||||||
|
qDebug("LimeSDRInput::handleMessage: MsgReportBuddyChange: LMS_GetSampleRate() failed");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_settings.m_devSampleRate = roundf(host_Hz);
|
||||||
|
int hard = roundf(rf_Hz) / m_settings.m_devSampleRate;
|
||||||
|
m_settings.m_log2HardDecim = log2(hard);
|
||||||
|
|
||||||
|
qDebug() << "LimeSDRInput::handleMessage: MsgReportBuddyChange:"
|
||||||
|
<< " host_Hz: " << host_Hz
|
||||||
|
<< " rf_Hz: " << rf_Hz
|
||||||
|
<< " m_devSampleRate: " << m_settings.m_devSampleRate
|
||||||
|
<< " log2Hard: " << hard
|
||||||
|
<< " m_log2HardDecim: " << m_settings.m_log2HardDecim;
|
||||||
|
// int adcdac_rate = report.getDevSampleRate() * (1<<report.getLog2HardDecimInterp());
|
||||||
|
// m_settings.m_devSampleRate = adcdac_rate / (1<<m_settings.m_log2HardDecim); // new device to host sample rate
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_settings.m_ncoEnable) // need to reset NCO after sample rate change
|
if (m_settings.m_ncoEnable) // need to reset NCO after sample rate change
|
||||||
|
Loading…
Reference in New Issue
Block a user