PlutoSDR: changed set sample rate method to use write long long

This commit is contained in:
f4exb 2017-09-10 10:46:59 +02:00
parent 04d06085fe
commit b16a1ff932
1 changed files with 27 additions and 7 deletions

View File

@ -430,13 +430,33 @@ bool DevicePlutoSDRBox::parseSampleRates(const std::string& rateStr, SampleRates
void DevicePlutoSDRBox::setSampleRate(uint32_t sampleRate)
{
char buff[100];
std::vector<std::string> params;
snprintf(buff, sizeof(buff), "in_voltage_sampling_frequency=%d", sampleRate);
params.push_back(std::string(buff));
snprintf(buff, sizeof(buff), "out_voltage_sampling_frequency=%d", sampleRate);
params.push_back(std::string(buff));
set_params(DEVICE_PHY, params);
// char buff[100];
// std::vector<std::string> params;
// snprintf(buff, sizeof(buff), "in_voltage_sampling_frequency=%d", sampleRate);
// params.push_back(std::string(buff));
// snprintf(buff, sizeof(buff), "out_voltage_sampling_frequency=%d", sampleRate);
// params.push_back(std::string(buff));
// set_params(DEVICE_PHY, params);
int ret = iio_channel_attr_write_longlong(m_chnRx0, "sampling_frequency", sampleRate);
if (ret < 0) {
qWarning("DevicePlutoSDRBox::setSampleRate: cannot set Rx sample rate to %u: %d", sampleRate, ret);
} else {
qDebug("DevicePlutoSDRBox::setSampleRate: Rx sample rate set to %u: %d", sampleRate, ret);
}
if (m_chnTx0) // Tx is opened at the same time
{
ret = iio_channel_attr_write_longlong(m_chnTx0, "sampling_frequency", sampleRate);
if (ret < 0) {
qWarning("DevicePlutoSDRBox::setSampleRate: cannot set Tx sample rate to %u: %d", sampleRate, ret);
} else {
qDebug("DevicePlutoSDRBox::setSampleRate: Tx sample rate set to %u: %d", sampleRate, ret);
}
}
m_devSampleRate = sampleRate;
}