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:
parent
ac7753136d
commit
d170ecfe81
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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; }
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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; }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user