@@ -96,13 +96,13 @@ FMCOMMS5::FMCOMMS5(iio_context *ctx, QWidget *parent)
9696
9797 if (m_ctx != nullptr ) {
9898
99- iio_device *plutoDevice = nullptr ;
99+ iio_device *mainDevice = nullptr ;
100100 int device_count = iio_context_get_devices_count (m_ctx);
101101 for (int i = 0 ; i < device_count; ++i) {
102102 iio_device *dev = iio_context_get_device (m_ctx, i);
103103 const char *dev_name = iio_device_get_name (dev);
104- if (dev_name && QString (dev_name).contains ( " ad936 " , Qt::CaseInsensitive)) {
105- plutoDevice = dev;
104+ if (dev_name && QString (dev_name).compare ( " ad9361-phy " , Qt::CaseInsensitive) == 0 ) {
105+ mainDevice = dev;
106106 break ;
107107 }
108108 }
@@ -111,67 +111,87 @@ FMCOMMS5::FMCOMMS5(iio_context *ctx, QWidget *parent)
111111 connect (this , &FMCOMMS5::readRequested, m_helper, &AD936xHelper::readRequested);
112112
113113 // / first widget the global settings can be created with iiowigets only
114- controlWidgetLayout->addWidget (m_helper-> generateGlobalSettingsWidget (
115- plutoDevice , " FMCOMMS5 Global Settings" , controlsWidget));
114+ controlWidgetLayout->addWidget (
115+ m_helper-> generateGlobalSettingsWidget (mainDevice , " FMCOMMS5 Global Settings" , controlsWidget));
116116
117117 // / second is Rx ( receive chain)
118118 controlWidgetLayout->addWidget (
119- generateRxChainWidget (plutoDevice , " FMCOMMS5 Receive Chain" , controlsWidget));
119+ generateRxChainWidget (mainDevice , " FMCOMMS5 Receive Chain" , controlsWidget));
120120
121- // / third is Tx (transimt chain)
121+ // / third is Tx (transmit chain)
122122 controlWidgetLayout->addWidget (
123- generateTxChainWidget (plutoDevice , " FMCOMMS5 Transmit Chain" , controlsWidget));
123+ generateTxChainWidget (mainDevice , " FMCOMMS5 Transmit Chain" , controlsWidget));
124124
125125 controlWidgetLayout->addItem (new QSpacerItem (1 , 1 , QSizePolicy::Preferred, QSizePolicy::Expanding));
126126 }
127127
128- m_blockDiagramWidget = new QWidget (this );
129- Style::setBackgroundColor (m_blockDiagramWidget, json::theme::background_primary);
130- QVBoxLayout *blockDiagramLayout = new QVBoxLayout (m_blockDiagramWidget);
131- m_blockDiagramWidget->setLayout (blockDiagramLayout);
132-
133- QWidget *blockDiagramWidget = new QWidget (this );
134- QVBoxLayout *blockDiagramWidgetLayout = new QVBoxLayout (blockDiagramWidget);
135- blockDiagramWidget->setLayout (blockDiagramWidgetLayout);
136-
137- QScrollArea *blockDiagramWidgetScrollArea = new QScrollArea (this );
138- blockDiagramWidgetScrollArea->setWidgetResizable (true );
139- blockDiagramWidgetScrollArea->setWidget (blockDiagramWidget);
140-
141- blockDiagramLayout->addWidget (blockDiagramWidgetScrollArea);
142-
143- QLabel *blockDiagram = new QLabel (m_blockDiagramWidget);
144- blockDiagramWidgetLayout->addWidget (blockDiagram);
145- blockDiagram->setAlignment (Qt::AlignCenter);
146- // todo replace
147- QPixmap pixmap (" :/pluto/ad936x.svg" );
148- blockDiagram->setPixmap (pixmap);
128+ // Block Diagram Stack Widget with Next/Prev buttons
129+ QWidget *blockDiagramStackWidget = new QWidget (this );
130+ Style::setBackgroundColor (blockDiagramStackWidget, json::theme::background_primary);
131+ QVBoxLayout *blockDiagramStackLayout = new QVBoxLayout (blockDiagramStackWidget);
132+ blockDiagramStackWidget->setLayout (blockDiagramStackLayout);
133+
134+ QStackedWidget *imageStack = new QStackedWidget (blockDiagramStackWidget);
135+
136+ // Add images as QLabel widgets
137+ QLabel *imageLabel1 = new QLabel (blockDiagramStackWidget);
138+ imageLabel1->setAlignment (Qt::AlignCenter);
139+ imageLabel1->setPixmap (QPixmap (" :/pluto/ad936x.svg" ));
140+ imageStack->addWidget (imageLabel1);
141+
142+ QLabel *imageLabel2 = new QLabel (blockDiagramStackWidget);
143+ imageLabel2->setAlignment (Qt::AlignCenter);
144+ imageLabel2->setPixmap (QPixmap (" :/pluto/AD_FMCOMMS5_EBZ.jpg" ));
145+ imageStack->addWidget (imageLabel2);
146+
147+ blockDiagramStackLayout->addWidget (imageStack);
148+
149+ QHBoxLayout *buttonLayout = new QHBoxLayout ();
150+ QPushButton *prevBtn = new QPushButton (" Prev" , blockDiagramStackWidget);
151+ Style::setStyle (prevBtn, style::properties::button::basicButton);
152+ QPushButton *nextBtn = new QPushButton (" Next" , blockDiagramStackWidget);
153+ Style::setStyle (nextBtn, style::properties::button::basicButton);
154+ buttonLayout->addWidget (prevBtn);
155+ buttonLayout->addWidget (nextBtn);
156+ blockDiagramStackLayout->addLayout (buttonLayout);
157+
158+ // Navigation logic
159+ connect (prevBtn, &QPushButton::clicked, this , [imageStack]() {
160+ int idx = imageStack->currentIndex ();
161+ if (idx > 0 )
162+ imageStack->setCurrentIndex (idx - 1 );
163+ });
164+ connect (nextBtn, &QPushButton::clicked, this , [imageStack]() {
165+ int idx = imageStack->currentIndex ();
166+ if (idx < imageStack->count () - 1 )
167+ imageStack->setCurrentIndex (idx + 1 );
168+ });
149169
150170 centralWidget->addWidget (m_controlsWidget);
151- centralWidget->addWidget (m_blockDiagramWidget );
171+ centralWidget->addWidget (blockDiagramStackWidget );
152172
153173 m_tool->addWidgetToCentralContainerHelper (centralWidget);
154174
155175 QButtonGroup *centralWidgetButtons = new QButtonGroup (this );
156176 centralWidgetButtons->setExclusive (true );
157177
158- QPushButton *ad963xBtn = new QPushButton (" Controls" , this );
159- ad963xBtn ->setCheckable (true );
160- ad963xBtn ->setChecked (true );
161- Style::setStyle (ad963xBtn , style::properties::button::blueGrayButton);
162- connect (ad963xBtn , &QPushButton::clicked, this ,
178+ QPushButton *controlsBtn = new QPushButton (" Controls" , this );
179+ controlsBtn ->setCheckable (true );
180+ controlsBtn ->setChecked (true );
181+ Style::setStyle (controlsBtn , style::properties::button::blueGrayButton);
182+ connect (controlsBtn , &QPushButton::clicked, this ,
163183 [=, this ]() { centralWidget->setCurrentWidget (m_controlsWidget); });
164184
165185 QPushButton *blockDiagramBtn = new QPushButton (" Block Diagram" , this );
166186 blockDiagramBtn->setCheckable (true );
167187 Style::setStyle (blockDiagramBtn, style::properties::button::blueGrayButton);
168188 connect (blockDiagramBtn, &QPushButton::clicked, this ,
169- [=, this ]() { centralWidget->setCurrentWidget (m_blockDiagramWidget ); });
189+ [=, this ]() { centralWidget->setCurrentWidget (blockDiagramStackWidget ); });
170190
171- centralWidgetButtons->addButton (ad963xBtn );
191+ centralWidgetButtons->addButton (controlsBtn );
172192 centralWidgetButtons->addButton (blockDiagramBtn);
173193
174- m_tool->addWidgetToTopContainerHelper (ad963xBtn , TTA_LEFT);
194+ m_tool->addWidgetToTopContainerHelper (controlsBtn , TTA_LEFT);
175195 m_tool->addWidgetToTopContainerHelper (blockDiagramBtn, TTA_LEFT);
176196}
177197
@@ -289,7 +309,7 @@ QWidget *FMCOMMS5::generateRxChainWidget(iio_device *dev, QString title, QWidget
289309 for (int i = 0 ; i < device_count; ++i) {
290310 iio_device *aux = iio_context_get_device (m_ctx, i);
291311 const char *dev_name = iio_device_get_name (aux);
292- if (dev_name && QString (dev_name).contains (" ad9361-phy-b " , Qt::CaseInsensitive)) {
312+ if (dev_name && QString (dev_name).contains (" ad9361-phy-B " , Qt::CaseInsensitive)) {
293313 dev2 = aux;
294314 break ;
295315 }
0 commit comments