1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-12-24 14:44:56 -05:00

BladeRF2 MIMO: generalize scale support in range queries

This commit is contained in:
f4exb 2020-09-15 08:59:35 +02:00
parent ac7753136d
commit d170ecfe81
4 changed files with 30 additions and 26 deletions

View File

@ -889,24 +889,24 @@ bool BladeRF2MIMO::setTxDeviceCenterFrequency(struct bladerf *dev, quint64 freq_
return true;
}
void BladeRF2MIMO::getRxFrequencyRange(uint64_t& min, uint64_t& max, int& step)
void BladeRF2MIMO::getRxFrequencyRange(uint64_t& min, uint64_t& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getFrequencyRangeRx(min, max, step);
m_dev->getFrequencyRangeRx(min, max, step, scale);
}
}
void BladeRF2MIMO::getRxSampleRateRange(int& min, int& max, int& step)
void BladeRF2MIMO::getRxSampleRateRange(int& min, int& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getSampleRateRangeRx(min, max, step);
m_dev->getSampleRateRangeRx(min, max, step, scale);
}
}
void BladeRF2MIMO::getRxBandwidthRange(int& min, int& max, int& step)
void BladeRF2MIMO::getRxBandwidthRange(int& min, int& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getBandwidthRangeRx(min, max, step);
m_dev->getBandwidthRangeRx(min, max, step, scale);
}
}
@ -917,24 +917,24 @@ void BladeRF2MIMO::getRxGlobalGainRange(int& min, int& max, int& step, float& sc
}
}
void BladeRF2MIMO::getTxFrequencyRange(uint64_t& min, uint64_t& max, int& step)
void BladeRF2MIMO::getTxFrequencyRange(uint64_t& min, uint64_t& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getFrequencyRangeTx(min, max, step);
m_dev->getFrequencyRangeTx(min, max, step, scale);
}
}
void BladeRF2MIMO::getTxSampleRateRange(int& min, int& max, int& step)
void BladeRF2MIMO::getTxSampleRateRange(int& min, int& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getSampleRateRangeTx(min, max, step);
m_dev->getSampleRateRangeTx(min, max, step, scale);
}
}
void BladeRF2MIMO::getTxBandwidthRange(int& min, int& max, int& step)
void BladeRF2MIMO::getTxBandwidthRange(int& min, int& max, int& step, float& scale)
{
if (m_dev) {
m_dev->getBandwidthRangeTx(min, max, step);
m_dev->getBandwidthRangeTx(min, max, step, scale);
}
}

View File

@ -155,15 +155,15 @@ public:
bool isRecording(unsigned int istream) const { (void) istream; return false; }
void getRxFrequencyRange(uint64_t& min, uint64_t& max, int& step);
void getRxSampleRateRange(int& min, int& max, int& step);
void getRxBandwidthRange(int& min, int& max, int& step);
void getRxFrequencyRange(uint64_t& min, uint64_t& max, int& step, float& scale);
void getRxSampleRateRange(int& min, int& max, int& step, float& scale);
void getRxBandwidthRange(int& min, int& max, int& step, float& scale);
void getRxGlobalGainRange(int& min, int& max, int& step, float& scale);
const std::vector<GainMode>& getRxGainModes() { return m_rxGainModes; }
void getTxFrequencyRange(uint64_t& min, uint64_t& max, int& step);
void getTxSampleRateRange(int& min, int& max, int& step);
void getTxBandwidthRange(int& min, int& max, int& step);
void getTxFrequencyRange(uint64_t& min, uint64_t& max, int& step, float& scale);
void getTxSampleRateRange(int& min, int& max, int& step, float& scale);
void getTxBandwidthRange(int& min, int& max, int& step, float& scale);
void getTxGlobalGainRange(int& min, int& max, int& step, float& scale);
bool getRxRunning() const { return m_runningRx; }

View File

@ -69,18 +69,18 @@ BladeRF2MIMOGui::BladeRF2MIMOGui(DeviceUISet *deviceUISet, QWidget* parent) :
ui->setupUi(this);
m_sampleMIMO = (BladeRF2MIMO*) m_deviceUISet->m_deviceAPI->getSampleMIMO();
m_sampleMIMO->getRxFrequencyRange(m_fMinRx, m_fMaxRx, m_fStepRx);
m_sampleMIMO->getTxFrequencyRange(m_fMinTx, m_fMaxTx, m_fStepTx);
m_sampleMIMO->getRxBandwidthRange(m_bwMinRx, m_bwMaxRx, m_bwStepRx);
m_sampleMIMO->getTxBandwidthRange(m_bwMinTx, m_bwMaxTx, m_bwStepTx);
m_sampleMIMO->getRxFrequencyRange(m_fMinRx, m_fMaxRx, m_fStepRx, m_fScaleRx);
m_sampleMIMO->getTxFrequencyRange(m_fMinTx, m_fMaxTx, m_fStepTx, m_fScaleTx);
m_sampleMIMO->getRxBandwidthRange(m_bwMinRx, m_bwMaxRx, m_bwStepRx, m_bwScaleRx);
m_sampleMIMO->getTxBandwidthRange(m_bwMinTx, m_bwMaxTx, m_bwStepTx, m_bwScaleTx);
ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
ui->sampleRate->setColorMapper(ColorMapper(ColorMapper::GrayGreenYellow));
ui->bandwidth->setColorMapper(ColorMapper(ColorMapper::GrayYellow));
int minRx, maxRx, stepRx, minTx, maxTx, stepTx;
m_sampleMIMO->getRxSampleRateRange(minRx, maxRx, stepRx);
m_sampleMIMO->getTxSampleRateRange(minTx, maxTx, stepTx);
m_sampleMIMO->getRxSampleRateRange(minRx, maxRx, stepRx, m_srScaleRx);
m_sampleMIMO->getTxSampleRateRange(minTx, maxTx, stepTx, m_srScaleTx);
m_srMin = std::max(minRx, minTx);
m_srMax = std::min(maxRx, maxTx);
m_sampleMIMO->getRxGlobalGainRange(m_gainMinRx, m_gainMaxRx, m_gainStepRx, m_gainScaleRx);
@ -708,11 +708,12 @@ void BladeRF2MIMOGui::updateFrequencyLimits()
// values in kHz
uint64_t f_min, f_max;
int step;
float scale;
if (m_rxElseTx)
{
qint64 deltaFrequency = m_settings.m_rxTransverterMode ? m_settings.m_rxTransverterDeltaFrequency/1000 : 0;
m_sampleMIMO->getRxFrequencyRange(f_min, f_max, step);
m_sampleMIMO->getRxFrequencyRange(f_min, f_max, step, scale);
qint64 minLimit = f_min/1000 + deltaFrequency;
qint64 maxLimit = f_max/1000 + deltaFrequency;
@ -726,7 +727,7 @@ void BladeRF2MIMOGui::updateFrequencyLimits()
else
{
qint64 deltaFrequency = m_settings.m_txTransverterMode ? m_settings.m_txTransverterDeltaFrequency/1000 : 0;
m_sampleMIMO->getRxFrequencyRange(f_min, f_max, step);
m_sampleMIMO->getRxFrequencyRange(f_min, f_max, step, scale);
qint64 minLimit = f_min/1000 + deltaFrequency;
qint64 maxLimit = f_max/1000 + deltaFrequency;

View File

@ -84,6 +84,9 @@ private:
int m_fStepRx, m_fStepTx;
int m_gainMinRx, m_gainMaxRx, m_gainStepRx;
int m_gainMinTx, m_gainMaxTx, m_gainStepTx;
float m_fScaleRx, m_fScaleTx;
float m_srScaleRx, m_srScaleTx;
float m_bwScaleRx, m_bwScaleTx;
float m_gainScaleRx, m_gainScaleTx;
void blockApplySettings(bool block) { m_doApplySettings = !block; }