Skip to content

Commit e62af85

Browse files
committed
rfpowermeter: add frequency widget
Signed-off-by: IonutMuthi <[email protected]>
1 parent 53edcab commit e62af85

File tree

5 files changed

+82
-47
lines changed

5 files changed

+82
-47
lines changed

packages/generic-plugins/plugins/datalogger/include/datalogger/datamonitor/sevensegmentdisplay.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class SCOPY_DATALOGGER_EXPORT SevenSegmentDisplay : public QWidget
4444

4545
void updatePrecision(int precision);
4646
void togglePeakHolder(bool toggle);
47+
QVBoxLayout *getLayout() const;
48+
4749
signals:
4850

4951
private:

packages/generic-plugins/plugins/datalogger/include/datalogger/datamonitortool.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class SCOPY_DATALOGGER_EXPORT DatamonitorTool : public QWidget
6060
void setEnableAddRemoveInstrument(bool);
6161
void setDisplayMode(int mode);
6262

63+
SevenSegmentDisplay *getSevenSegmetMonitors() const;
64+
6365
Q_SIGNALS:
6466
void requestNewTool();
6567
void runToggled(bool toggled);

packages/generic-plugins/plugins/datalogger/src/datamonitor/sevensegmentdisplay.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,6 @@ void SevenSegmentDisplay::togglePeakHolder(bool toggle)
9292
}
9393
}
9494

95+
QVBoxLayout *SevenSegmentDisplay::getLayout() const { return layout; }
96+
9597
#include "moc_sevensegmentdisplay.cpp"

packages/generic-plugins/plugins/datalogger/src/datamonitortool.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,8 @@ void DatamonitorTool::resetStartTime()
366366
Q_EMIT m_plotManager->requestSetStartTime();
367367
}
368368

369+
SevenSegmentDisplay *DatamonitorTool::getSevenSegmetMonitors() const { return sevenSegmetMonitors; }
370+
369371
void DatamonitorTool::initTutorialProperties()
370372
{
371373
runBtn->setProperty("tutorial_name", "RUN_BUTTON");

packages/rfpowermeter/plugins/rfpowermeter/src/rfpowermeter.cpp

Lines changed: 74 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@
2323

2424
#include <QLoggingCategory>
2525
#include <QLabel>
26+
#include <iiowidgetbuilder.h>
2627
#include <iioutil/connectionprovider.h>
28+
#include <style.h>
2729

2830
#include "core/deviceimpl.h"
2931
#include <datalogger/datalogger_api.hpp>
3032
#include <datalogger/dataloggerplugin.h>
3133
#include <core/pluginrepository.h>
34+
#include <datamonitor/sevensegmentdisplay.hpp>
3235

3336
Q_LOGGING_CATEGORY(CAT_RFPOWERMETER, "RFPowerMeterPlugin")
3437
using namespace scopy::rfpowermeter;
@@ -120,55 +123,79 @@ bool RFPowerMeterPlugin::onConnect()
120123
datamonitor::DataLoggerPlugin *dataLogger = dynamic_cast<datamonitor::DataLoggerPlugin *>(
121124
m_device->getPluginByName("DataLoggerPlugin"));
122125
dataloggerApi = dataLogger->getApi();
123-
}
124126

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";
128198
}
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";
172199
}
173200

174201
return true;

0 commit comments

Comments
 (0)