@@ -265,26 +265,21 @@ QString Adrv9002::getDeviceDriverVersion()
265265 char api_version[16 ];
266266 auto ret = iio_device_debug_attr_read (m_iio_dev, " api_version" , api_version, sizeof (api_version));
267267 if (ret < 0 ) {
268- return " " ;
268+ return " Unable to read version " ;
269269 } else {
270270 return QString (api_version);
271271 }
272272 }
273273
274- return " " ;
274+ return " No version found " ;
275275}
276276
277277MenuSectionCollapseWidget *Adrv9002::createGlobalSettingsSection (QWidget *parent)
278278{
279279 auto section = new MenuSectionCollapseWidget (" ADRV9002 Global Settings" , MenuCollapseSection::MHCW_ARROW,
280280 MenuCollapseSection::MHW_BASEWIDGET, parent);
281281
282- // Profile Manager - handles profile_config and stream_config
283- if (m_profileManager) {
284- section->add (m_profileManager);
285- connect (this , &Adrv9002::readRequested, m_profileManager, &ProfileManager::updateDeviceInfo);
286- }
287-
282+ section->layout ()->setMargin (0 );
288283 QWidget *widget = new QWidget (section);
289284
290285 QHBoxLayout *layout = new QHBoxLayout (widget);
@@ -311,8 +306,6 @@ MenuSectionCollapseWidget *Adrv9002::createGlobalSettingsSection(QWidget *parent
311306 tempStrategy->setCriticalTemperature (
312307 80.0 , " ADRV9002 temperature critical! Risk of thermal shutdown." );
313308 tempStrategy->setWarningOffset (5.0 ); // Warn at 75°C (80°C - 5°C)
314- // Optional: Configure periodic updates (default is 5 seconds)
315- // tempStrategy->setPeriodicUpdates(true, 5); // Update every 5 second
316309 }
317310
318311 connect (this , &Adrv9002::readRequested, tempWidget, &IIOWidget::readAsync);
@@ -330,6 +323,12 @@ MenuSectionCollapseWidget *Adrv9002::createGlobalSettingsSection(QWidget *parent
330323
331324 section->add (widget);
332325
326+ // Profile Manager - handles profile_config and stream_config
327+ if (m_profileManager) {
328+ section->add (m_profileManager);
329+ connect (this , &Adrv9002::readRequested, m_profileManager, &ProfileManager::updateDeviceInfo);
330+ }
331+
333332 return section;
334333}
335334
@@ -358,6 +357,7 @@ MenuSectionCollapseWidget *Adrv9002::createReceiveChainSection(QWidget *parent)
358357
359358 // ORX Section below RX1/RX2
360359 QHBoxLayout *orxLayout = new QHBoxLayout ();
360+ orxLayout->setMargin (0 );
361361 orxLayout->addWidget (createOrxControls ());
362362 containerLayout->addLayout (orxLayout);
363363
@@ -424,21 +424,7 @@ QWidget *Adrv9002::createRxChannelControls(const QString &title, int channel)
424424 layout->addWidget (createComboWidget (rxCh, " gain_control_mode" , " gain_control_mode_available" , " Gain Control" ),
425425 2 , 0 );
426426 layout->addWidget (createComboWidget (rxCh, " ensm_mode" , " ensm_mode_available" , " ENSM" ), 3 , 0 );
427- IIOWidget *rxEn = createCheckboxWidget (rxCh, " en" , " Powerdown" );
428- // logic needed to match functionality
429- rxEn->setDataToUIConversion ([](QString data) {
430- if (data == " 0" ) {
431- return " 1" ;
432- }
433- return " 0" ;
434- });
435- rxEn->setUItoDataConversion ([](QString data) {
436- if (data == " 0" ) {
437- return " 1" ;
438- }
439- return " 0" ;
440- });
441- layout->addWidget (rxEn, 4 , 0 );
427+ layout->addWidget (createCheckboxWidget (rxCh, " en" , " Enabled" ), 4 , 0 );
442428
443429 layout->addWidget (createCheckboxWidget (rxCh, " bbdc_rejection_en" , " BBDC Rejection" ), 5 , 0 );
444430
@@ -451,8 +437,10 @@ QWidget *Adrv9002::createRxChannelControls(const QString &title, int channel)
451437
452438 layout->addWidget (createReadOnlyWidget (rxCh, " decimated_power" , " Decimated Power (dB)" ), 7 , 0 );
453439 IIOWidget *rfBandwidth = createReadOnlyWidget (rxCh, " rf_bandwidth" , " Bandwidth (MHz)" );
454- rfBandwidth->setDataToUIConversion ([](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
455- rfBandwidth->setUItoDataConversion ([](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
440+ rfBandwidth->setDataToUIConversion ([](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
441+ rfBandwidth->setRangeToUIConversion (
442+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
443+ rfBandwidth->setUItoDataConversion ([](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
456444 layout->addWidget (rfBandwidth, 8 , 0 );
457445
458446 // Column 1 (Right) - from iio-oscilloscope column 4
@@ -484,9 +472,11 @@ QWidget *Adrv9002::createRxChannelControls(const QString &title, int channel)
484472
485473 // Add MHz ↔ Hz conversion
486474 loWidget->setDataToUIConversion (
487- [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
475+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
476+ loWidget->setRangeToUIConversion (
477+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
488478 loWidget->setUItoDataConversion (
489- [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
479+ [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
490480
491481 layout->addWidget (loWidget, 6 , 1 );
492482 }
@@ -496,9 +486,11 @@ QWidget *Adrv9002::createRxChannelControls(const QString &title, int channel)
496486 IIOWidget *samplingFreq = createReadOnlyWidget (rxCh, " sampling_frequency" , " Sampling Rate (MSPS)" );
497487 // Add MSPS ↔ SPS conversion
498488 samplingFreq->setDataToUIConversion (
499- [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
489+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
490+ samplingFreq->setRangeToUIConversion (
491+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
500492 samplingFreq->setUItoDataConversion (
501- [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
493+ [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
502494 layout->addWidget (samplingFreq, 8 , 1 );
503495
504496 // Tracking section at bottom spanning both columns
@@ -557,9 +549,11 @@ QWidget *Adrv9002::createTxChannelControls(const QString &title, int channel)
557549
558550 // Add MHz ↔ Hz conversion
559551 loWidget->setDataToUIConversion (
560- [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
552+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
553+ loWidget->setRangeToUIConversion (
554+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
561555 loWidget->setUItoDataConversion (
562- [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
556+ [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
563557
564558 layout->addWidget (loWidget, 3 , 0 );
565559 }
@@ -574,35 +568,23 @@ QWidget *Adrv9002::createTxChannelControls(const QString &title, int channel)
574568 IIOWidget *rfBandwidth = createReadOnlyWidget (txCh, " rf_bandwidth" , " Bandwidth (MHz)" );
575569
576570 // Add MHz ↔ Hz conversion
577- rfBandwidth->setDataToUIConversion ([](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
578- rfBandwidth->setUItoDataConversion ([](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
571+ rfBandwidth->setDataToUIConversion ([](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
572+ rfBandwidth->setRangeToUIConversion (
573+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
574+ rfBandwidth->setUItoDataConversion ([](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
579575 layout->addWidget (rfBandwidth, 5 , 0 );
580576
581577 // Column 1 (Right) - from iio-oscilloscope TX column 4
582578 layout->addWidget (createComboWidget (txCh, " port_en_mode" , " port_en_mode_available" , " Port Enable" ), 1 , 1 );
583579 layout->addWidget (createComboWidget (txCh, " ensm_mode" , " ensm_mode_available" , " ENSM" ), 2 , 1 );
584- IIOWidget *txEn = createCheckboxWidget (txCh, " en" , " Powerdown" );
585- // logic needed to match functionality
586- txEn->setDataToUIConversion ([](QString data) {
587- if (data == " 0" ) {
588- return " 1" ;
589- }
590- return " 0" ;
591- });
592- txEn->setUItoDataConversion ([](QString data) {
593- if (data == " 0" ) {
594- return " 1" ;
595- }
596- return " 0" ;
597- });
598- layout->addWidget (txEn, 3 , 1 );
580+ layout->addWidget (createCheckboxWidget (txCh, " en" , " Enable" ), 3 , 1 );
599581 // Row+3 is empty in iio-oscilloscope
600582 IIOWidget *samplingFreq = createReadOnlyWidget (txCh, " sampling_frequency" , " Sampling Rate (MSPS)" );
601583 // Add MSPS ↔ SPS conversion
602584 samplingFreq->setDataToUIConversion (
603- [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 4 ); });
585+ [](QString data) { return QString::number (data.toDouble () / 1e6 , ' f' , 6 ); });
604586 samplingFreq->setUItoDataConversion (
605- [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 4 ); });
587+ [](QString data) { return QString::number (data.toDouble () * 1e6 , ' f' , 0 ); });
606588 layout->addWidget (samplingFreq, 5 , 1 );
607589
608590 QLabel *trackingLabel = new QLabel (" Tracking:" );
@@ -623,6 +605,7 @@ QWidget *Adrv9002::createOrxControls()
623605{
624606 QWidget *widget = new QWidget ();
625607 QHBoxLayout *layout = new QHBoxLayout (widget);
608+ layout->setMargin (0 );
626609 layout->setSpacing (15 );
627610
628611 // ORX 1 Column
@@ -685,9 +668,9 @@ QWidget *Adrv9002::createOrxChannelControls(const QString &title, int channel)
685668 layout->addWidget (createRangeWidget (rxCh, " orx_hardwaregain" , " [4 1 36]" , " Hardware Gain (dB)" ), 1 , 0 );
686669 layout->addWidget (createCheckboxWidget (rxCh, " orx_bbdc_rejection_en" , " BBDC Rejection" ), 1 , 1 );
687670
688- // Row 2: Tracking (Left) and Powerdown (Right)
671+ // Row 2: Tracking (Left) and Enabled (Right)
689672 layout->addWidget (createCheckboxWidget (rxCh, " orx_quadrature_w_poly_tracking_en" , " Quadrature Poly" ), 2 , 0 );
690- layout->addWidget (createCheckboxWidget (rxCh, " orx_en" , " Powerdown " ), 2 , 1 );
673+ layout->addWidget (createCheckboxWidget (rxCh, " orx_en" , " Enabled " ), 2 , 1 );
691674
692675 return widget;
693676}
@@ -724,11 +707,6 @@ IIOWidget *Adrv9002::createRangeWidget(iio_channel *ch, const QString &attr, con
724707 .buildSingle ();
725708
726709 if (widget) {
727- // Apply stripUnits to ALL range widgets - safe for all values
728- widget->setDataToUIConversion ([](QString data) {
729- return data.split (" " ).first (); // Safe for all numeric attributes
730- });
731-
732710 connect (this , &Adrv9002::readRequested, widget, &IIOWidget::readAsync);
733711 }
734712 return widget;
0 commit comments