Skip to content

Commit be2cc74

Browse files
committed
adrv9002: fix bugs
Fix LO range Fix PA Correction not showing Fix enable / disable channel changes values Signed-off-by: IonutMuthi <[email protected]>
1 parent 24f5a14 commit be2cc74

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

packages/adrv9002/plugins/adrv9002plugin/src/adrv9002.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ QWidget *Adrv9002::createRxChannelControls(const QString &title, int channel)
468468

469469
if(loCh) {
470470
QString loAttr = QString("RX%1_LO_frequency").arg(channel + 1);
471-
auto loWidget = createRangeWidget(loCh, loAttr, "[30 1 6000]", "Local Oscillator (MHz)");
471+
auto loWidget = createRangeWidget(loCh, loAttr, "[30000000 1 6000000000]", "Local Oscillator (MHz)");
472472

473473
// Add MHz ↔ Hz conversion
474474
loWidget->setDataToUIConversion(
@@ -545,7 +545,7 @@ QWidget *Adrv9002::createTxChannelControls(const QString &title, int channel)
545545

546546
if(loCh) {
547547
QString loAttr = QString("TX%1_LO_frequency").arg(channel + 1);
548-
auto loWidget = createRangeWidget(loCh, loAttr, "[30 1 6000]", "Local Oscillator (MHz)");
548+
auto loWidget = createRangeWidget(loCh, loAttr, "[30000000 1 6000000000]", "Local Oscillator (MHz)");
549549

550550
// Add MHz ↔ Hz conversion
551551
loWidget->setDataToUIConversion(
@@ -596,7 +596,7 @@ QWidget *Adrv9002::createTxChannelControls(const QString &title, int channel)
596596
layout->addWidget(createCheckboxWidget(txCh, "close_loop_gain_tracking_en", "Close Loop Gain"), 8, 1);
597597
layout->addWidget(createCheckboxWidget(txCh, "pa_correction_tracking_en", "PA Correction"), 9, 0);
598598
layout->addWidget(createCheckboxWidget(txCh, "loopback_delay_tracking_en", "Loopback Delay"), 9, 1);
599-
layout->addWidget(createCheckboxWidget(txCh, "lo_leakage_tracking_en", "LO Leakage"), 9, 0);
599+
layout->addWidget(createCheckboxWidget(txCh, "lo_leakage_tracking_en", "LO Leakage"), 10, 0);
600600

601601
return widget;
602602
}

packages/adrv9002/plugins/adrv9002plugin/src/channelconfigwidget.cpp

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -156,36 +156,26 @@ ChannelConfigWidget::ChannelData ChannelConfigWidget::getChannelData() const
156156
void ChannelConfigWidget::updateControlsVisibility(bool lteMode)
157157
{
158158
m_isLTEMode = lteMode; // Store mode state for mode-aware control logic
159-
bool channelEnabled = m_enabledCb->isChecked();
160159

161160
// Apply mode-specific control settings
162161
if(m_isLTEMode) {
163162
// LTE Mode: Sample rate from predefined list (combo), bandwidth read-only
164163
m_bandwidthCombo->setEnabled(false);
165-
166164
m_sampleRateCombo->setEditable(false);
167-
m_sampleRateCombo->setEnabled(channelEnabled);
168165

169166
// this is a woraround caused by how Qt treats enable / disable editable logic for QCombobox
170167
m_sampleRateCombo->clear();
171168
m_sampleRateCombo->addItems(FrequencyTable::SAMPLE_RATES_HZ);
172169

173170
} else {
174171
// Live Device Mode: Both sample rate and bandwidth can be edited
175-
m_bandwidthCombo->setEnabled(channelEnabled);
176-
177172
m_sampleRateCombo->setEditable(true);
178-
m_sampleRateCombo->setEnabled(channelEnabled);
173+
m_bandwidthCombo->setEnabled(true);
174+
m_sampleRateCombo->setEnabled(true);
179175

180176
// this is a woraround caused by how Qt treats enable / disable editable logic for QCombobox
181177
Style::setBackgroundColor(m_sampleRateCombo, json::theme::background_primary);
182178
}
183-
184-
// These always follow channel state regardless of mode
185-
m_freqOffsetCb->setEnabled(channelEnabled);
186-
if(m_rfInputCombo) {
187-
m_rfInputCombo->setEnabled(channelEnabled);
188-
}
189179
}
190180

191181
void ChannelConfigWidget::setBandwidthReadOnly(bool readOnly) { m_bandwidthCombo->setEnabled(!readOnly); }
@@ -237,9 +227,22 @@ void ChannelConfigWidget::onEnabledChanged()
237227
if(m_updatingData)
238228
return;
239229

240-
updateControlsVisibility(m_isLTEMode);
230+
bool channelEnabled = m_enabledCb->isChecked();
231+
232+
m_sampleRateCombo->setEnabled(channelEnabled);
233+
234+
if(m_isLTEMode) {
235+
m_bandwidthCombo->setEnabled(false);
236+
} else {
237+
m_bandwidthCombo->setEnabled(channelEnabled);
238+
}
239+
240+
m_freqOffsetCb->setEnabled(channelEnabled);
241+
if(m_rfInputCombo) {
242+
m_rfInputCombo->setEnabled(channelEnabled);
243+
}
244+
241245
Q_EMIT enabledChanged(m_enabledCb->isChecked());
242-
Q_EMIT channelDataChanged();
243246
}
244247

245248
void ChannelConfigWidget::onSampleRateChanged()

packages/adrv9002/plugins/adrv9002plugin/src/profilegeneratorwidget.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,6 +1248,9 @@ void ProfileGeneratorWidget::forceUpdateAllUIControls()
12481248

12491249
// Force update all 4 channel widgets with device data (enabled states completely ignored)
12501250
for(int i = 0; i < 4; ++i) {
1251+
// set channels to live device mode
1252+
m_channelWidgets[i]->updateControlsVisibility(false);
1253+
12511254
ChannelConfigWidget::ChannelData data;
12521255
if(i < 2) { // RX channels (RX1, RX2)
12531256
const auto &rxConfig = m_deviceConfig.rxChannels[i];

0 commit comments

Comments
 (0)