|
23 | 23 |
|
24 | 24 | #include <QLoggingCategory> |
25 | 25 | #include <QLabel> |
| 26 | +#include <iiowidgetbuilder.h> |
26 | 27 | #include <iioutil/connectionprovider.h> |
| 28 | +#include <style.h> |
27 | 29 |
|
28 | 30 | #include "core/deviceimpl.h" |
29 | 31 | #include <datalogger/datalogger_api.hpp> |
30 | 32 | #include <datalogger/dataloggerplugin.h> |
31 | 33 | #include <core/pluginrepository.h> |
| 34 | +#include <datamonitor/sevensegmentdisplay.hpp> |
32 | 35 |
|
33 | 36 | Q_LOGGING_CATEGORY(CAT_RFPOWERMETER, "RFPowerMeterPlugin") |
34 | 37 | using namespace scopy::rfpowermeter; |
@@ -120,55 +123,79 @@ bool RFPowerMeterPlugin::onConnect() |
120 | 123 | datamonitor::DataLoggerPlugin *dataLogger = dynamic_cast<datamonitor::DataLoggerPlugin *>( |
121 | 124 | m_device->getPluginByName("DataLoggerPlugin")); |
122 | 125 | dataloggerApi = dataLogger->getApi(); |
123 | | - } |
124 | 126 |
|
125 | | - if(!dataloggerApi) { |
126 | | - qWarning(CAT_RFPOWERMETER) << "DataLogger API not available for device:" << m_param; |
127 | | - return false; |
| 127 | + datamonitor::DatamonitorTool *tool = |
| 128 | + dynamic_cast<datamonitor::DatamonitorTool *>(dataLogger->toolList().first()->tool()); |
| 129 | + |
| 130 | + if(tool != nullptr) { |
| 131 | + QWidget *widget = new QWidget(tool); |
| 132 | + QHBoxLayout *layout = new QHBoxLayout(); |
| 133 | + layout->setMargin(5); |
| 134 | + layout->setSpacing(0); |
| 135 | + widget->setLayout(layout); |
| 136 | + |
| 137 | + Style::setBackgroundColor(widget, json::theme::background_primary, true); |
| 138 | + |
| 139 | + IIOWidget *frequency = IIOWidgetBuilder(tool) |
| 140 | + .device(powrmsDevice) |
| 141 | + .attribute("frequency_MHz") |
| 142 | + .buildSingle(); |
| 143 | + |
| 144 | + layout->addWidget(frequency); |
| 145 | + |
| 146 | + tool->getSevenSegmetMonitors()->getLayout()->addWidget(widget); |
| 147 | + } |
| 148 | + |
| 149 | + if(!dataloggerApi) { |
| 150 | + qWarning(CAT_RFPOWERMETER) << "DataLogger API not available for device:" << m_param; |
| 151 | + return false; |
| 152 | + } |
| 153 | + |
| 154 | + // Configure DataLogger for RF Power Meter (matching original JavaScript) |
| 155 | + dataloggerApi->setToolName("Data Logger ", "RF Power Meter"); |
| 156 | + dataloggerApi->setDisplayMode("RF Power Meter", 2); |
| 157 | + |
| 158 | + // Configure power5 (Power Forward) |
| 159 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:power5", "Power Forward"); |
| 160 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:power5", ""); |
| 161 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:power5", "dBm"); |
| 162 | + dataloggerApi->enableMonitorOfTool("RF Power Meter", "powrms:power5"); |
| 163 | + |
| 164 | + // Configure power6 (Power Reverse) |
| 165 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:power6", "Power Reverse"); |
| 166 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:power6", ""); |
| 167 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:power6", "dBm"); |
| 168 | + dataloggerApi->enableMonitorOfTool("RF Power Meter", "powrms:power6"); |
| 169 | + |
| 170 | + // Configure voltage0 (Voltage in corrected) |
| 171 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage0", |
| 172 | + "Voltage In Corrected"); |
| 173 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage0", "Voltage"); |
| 174 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage0", "mV"); |
| 175 | + |
| 176 | + // Configure voltage1 (Voltage out corrected) |
| 177 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage1", |
| 178 | + "Voltage Out Corrected"); |
| 179 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage1", "Voltage"); |
| 180 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage1", "mV"); |
| 181 | + |
| 182 | + // Configure voltage2 (Temperature) |
| 183 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage2", "Temperature"); |
| 184 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage2", "Voltage"); |
| 185 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage2", "mV"); |
| 186 | + |
| 187 | + // Configure voltage3 (Voltage in) |
| 188 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage3", "Voltage In"); |
| 189 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage3", "Voltage"); |
| 190 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage3", "mV"); |
| 191 | + |
| 192 | + // Configure voltage4 (Voltage out) |
| 193 | + dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage4", "Voltage Out"); |
| 194 | + dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage4", "Voltage"); |
| 195 | + dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage4", "mV"); |
| 196 | + |
| 197 | + qInfo(CAT_RFPOWERMETER) << "RF power meter configuration completed successfully"; |
128 | 198 | } |
129 | | - |
130 | | - // Configure DataLogger for RF Power Meter (matching original JavaScript) |
131 | | - dataloggerApi->setToolName("Data Logger ", "RF Power Meter"); |
132 | | - dataloggerApi->setDisplayMode("RF Power Meter", 2); |
133 | | - |
134 | | - // Configure power5 (Power Forward) |
135 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:power5", "Power Forward"); |
136 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:power5", ""); |
137 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:power5", "dBm"); |
138 | | - dataloggerApi->enableMonitorOfTool("RF Power Meter", "powrms:power5"); |
139 | | - |
140 | | - // Configure power6 (Power Reverse) |
141 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:power6", "Power Reverse"); |
142 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:power6", ""); |
143 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:power6", "dBm"); |
144 | | - dataloggerApi->enableMonitorOfTool("RF Power Meter", "powrms:power6"); |
145 | | - |
146 | | - // Configure voltage0 (Voltage in corrected) |
147 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage0", "Voltage In Corrected"); |
148 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage0", "Voltage"); |
149 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage0", "mV"); |
150 | | - |
151 | | - // Configure voltage1 (Voltage out corrected) |
152 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage1", "Voltage Out Corrected"); |
153 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage1", "Voltage"); |
154 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage1", "mV"); |
155 | | - |
156 | | - // Configure voltage2 (Temperature) |
157 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage2", "Temperature"); |
158 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage2", "Voltage"); |
159 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage2", "mV"); |
160 | | - |
161 | | - // Configure voltage3 (Voltage in) |
162 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage3", "Voltage In"); |
163 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage3", "Voltage"); |
164 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage3", "mV"); |
165 | | - |
166 | | - // Configure voltage4 (Voltage out) |
167 | | - dataloggerApi->setMonitorDisplayName("RF Power Meter", "powrms:voltage4", "Voltage Out"); |
168 | | - dataloggerApi->setMonitorUnitOfMeasurementName("RF Power Meter", "powrms:voltage4", "Voltage"); |
169 | | - dataloggerApi->setMonitorUnitOfMeasurementSymbol("RF Power Meter", "powrms:voltage4", "mV"); |
170 | | - |
171 | | - qInfo(CAT_RFPOWERMETER) << "RF power meter configuration completed successfully"; |
172 | 199 | } |
173 | 200 |
|
174 | 201 | return true; |
|
0 commit comments