1+ /*
2+ * Copyright (c) 2025 Analog Devices Inc.
3+ *
4+ * This file is part of Scopy
5+ * (see https://www.github.com/analogdevicesinc/scopy).
6+ *
7+ * This program is free software: you can redistribute it and/or modify
8+ * it under the terms of the GNU General Public License as published by
9+ * the Free Software Foundation, either version 3 of the License, or
10+ * (at your option) any later version.
11+ *
12+ * This program is distributed in the hope that it will be useful,
13+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+ * GNU General Public License for more details.
16+ *
17+ * You should have received a copy of the GNU General Public License
18+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
19+ */
20+
21+ #ifndef ADRV9009ADVANCED_H
22+ #define ADRV9009ADVANCED_H
23+
24+ #include " scopy-adrv9009plugin_export.h"
25+ #include < QWidget>
26+ #include < QStackedWidget>
27+ #include < QPushButton>
28+ #include < QButtonGroup>
29+ #include < QVBoxLayout>
30+ #include < tooltemplate.h>
31+ #include < animatedrefreshbtn.h>
32+ #include < iio.h>
33+
34+ namespace scopy ::adrv9009 {
35+
36+ class SCOPY_ADRV9009PLUGIN_EXPORT Adrv9009Advanced : public QWidget
37+ {
38+ Q_OBJECT
39+ public:
40+ Adrv9009Advanced (iio_device *device, QWidget *parent = nullptr );
41+ ~Adrv9009Advanced ();
42+
43+ Q_SIGNALS:
44+ void readRequested ();
45+
46+ private:
47+ iio_device *m_device = nullptr ;
48+ ToolTemplate *m_tool;
49+ QVBoxLayout *m_mainLayout;
50+ AnimatedRefreshBtn *m_refreshButton;
51+ QStackedWidget *m_centralWidget;
52+
53+ // Navigation buttons (13 sections)
54+ QPushButton *m_clkSettingsBtn = nullptr ;
55+ QPushButton *m_calibrationsBtn = nullptr ;
56+ QPushButton *m_txSettingsBtn = nullptr ;
57+ QPushButton *m_rxSettingsBtn = nullptr ;
58+ QPushButton *m_orxSettingsBtn = nullptr ;
59+ QPushButton *m_fhmSetupBtn = nullptr ;
60+ QPushButton *m_paProtectionBtn = nullptr ;
61+ QPushButton *m_gainSetupBtn = nullptr ;
62+ QPushButton *m_agcSetupBtn = nullptr ;
63+ QPushButton *m_gpioConfigBtn = nullptr ;
64+ QPushButton *m_auxDacBtn = nullptr ;
65+ QPushButton *m_jesd204SettingsBtn = nullptr ;
66+ QPushButton *m_bistBtn = nullptr ;
67+
68+ // Content widgets (placeholders for Phase 1)
69+ QWidget *m_clkSettings = nullptr ;
70+ QWidget *m_calibrations = nullptr ;
71+ QWidget *m_txSettings = nullptr ;
72+ QWidget *m_rxSettings = nullptr ;
73+ QWidget *m_orxSettings = nullptr ;
74+ QWidget *m_fhmSetup = nullptr ;
75+ QWidget *m_paProtection = nullptr ;
76+ QWidget *m_gainSetup = nullptr ;
77+ QWidget *m_agcSetup = nullptr ;
78+ QWidget *m_gpioConfig = nullptr ;
79+ QWidget *m_auxDac = nullptr ;
80+ QWidget *m_jesd204Settings = nullptr ;
81+ QWidget *m_bist = nullptr ;
82+
83+ void setupUi ();
84+ void createNavigationButtons ();
85+ void createContentWidgets ();
86+ QWidget *createPlaceholderWidget (const QString §ionName);
87+ };
88+
89+ } // namespace scopy::adrv9009
90+ #endif // ADRV9009ADVANCED_H
0 commit comments