Skip to content

Commit 2634a78

Browse files
committed
Added datalogger API's
Signed-off-by: Alexandru Lie <[email protected]>
1 parent b8bac16 commit 2634a78

File tree

5 files changed

+105
-7
lines changed

5 files changed

+105
-7
lines changed

gui/include/gui/printplotmanager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class SCOPY_GUI_EXPORT PrintPlotManager : public QObject
1515
public:
1616
explicit PrintPlotManager(QObject *parent = nullptr);
1717

18-
void printPlots(QList<PlotWidget *> plotList, QString toolName);
18+
void printPlots(QList<PlotWidget *> plotList, QString toolName, QString folderPath = "");
1919
void setPrintWithSymbols(bool printWithSymbols);
2020
signals:
2121

gui/src/printplotmanager.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,15 @@ PrintPlotManager::PrintPlotManager(QObject *parent)
1111
: QObject{parent}
1212
{}
1313

14-
void PrintPlotManager::printPlots(QList<PlotWidget *> plotList, QString toolName)
14+
void PrintPlotManager::printPlots(QList<PlotWidget *> plotList, QString toolName, QString folderPath)
1515
{
1616
// select folder where to save
17-
QString folderPath = QFileDialog::getExistingDirectory(
18-
nullptr, "Select Folder", "",
19-
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks | QFileDialog::DontUseNativeDialog);
17+
if(folderPath.isEmpty()) {
18+
folderPath =
19+
QFileDialog::getExistingDirectory(nullptr, "Select Folder", "",
20+
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks |
21+
QFileDialog::DontUseNativeDialog);
22+
}
2023

2124
if(!folderPath.isEmpty()) {
2225
// use current date and tool name to crete the file name

plugins/datalogger/include/datalogger/datalogger_api.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include "scopy-datalogger_export.h"
55

66
#include <dataloggerplugin.h>
7+
#include <sevensegmentdisplay.hpp>
8+
#include <sevensegmentmonitorsettings.hpp>
79

810
namespace scopy::datamonitor {
911

@@ -22,6 +24,12 @@ class SCOPY_DATALOGGER_EXPORT DataLogger_API : public ApiObject
2224
Q_INVOKABLE QString disableMonitor(QString monitor);
2325
Q_INVOKABLE void setRunning(bool running);
2426
Q_INVOKABLE void clearData();
27+
Q_INVOKABLE void print(QString filePath);
28+
Q_INVOKABLE void changeTool(QString name);
29+
Q_INVOKABLE void setMinMax(bool enable);
30+
Q_INVOKABLE void changePrecision(int decimals);
31+
Q_INVOKABLE void setMinYAxis(double min);
32+
Q_INVOKABLE void setMaxYAxis(double max);
2533

2634
// TOOL RELATED
2735
Q_INVOKABLE QString createTool();

plugins/datalogger/include/datalogger/menus/sevensegmentmonitorsettings.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace datamonitor {
1212
class SCOPY_DATALOGGER_EXPORT SevenSegmentMonitorSettings : public QWidget
1313
{
1414
friend class DataMonitorStyleHelper;
15+
friend class DataLogger_API;
1516
Q_OBJECT
1617
public:
1718
explicit SevenSegmentMonitorSettings(QWidget *parent = nullptr);

plugins/datalogger/src/datalogger_api.cpp

Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,13 @@ QString DataLogger_API::disableMonitor(QString monitor)
8181

8282
void DataLogger_API::setRunning(bool running)
8383
{
84-
Q_ASSERT(m_dataLoggerPlugin != nullptr);
85-
m_dataLoggerPlugin->toggleRunState(running);
84+
Q_ASSERT(m_dataLoggerPlugin->m_dataAcquisitionManager != nullptr);
85+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
86+
if(tool) {
87+
tool->setRunning(running);
88+
tool->runToggled(running);
89+
}
90+
8691
}
8792

8893
void DataLogger_API::clearData()
@@ -91,6 +96,87 @@ void DataLogger_API::clearData()
9196
m_dataLoggerPlugin->m_dataAcquisitionManager->clearMonitorsData();
9297
}
9398

99+
void DataLogger_API::print(QString filepath)
100+
{
101+
Q_ASSERT(m_dataLoggerPlugin->m_dataAcquisitionManager != nullptr);
102+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
103+
if(tool) {
104+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
105+
QList<PlotWidget *> plotList;
106+
plotList.push_back(monitorTool->m_monitorPlot->plot());
107+
monitorTool->printplotManager->printPlots(plotList, "DataLogger", filepath);
108+
}
109+
}
110+
111+
void DataLogger_API::changeTool(QString name)
112+
{
113+
Q_ASSERT(!m_dataLoggerPlugin->m_toolList.isEmpty());
114+
115+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
116+
if(tool) {
117+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
118+
if(name == "Plot") {
119+
monitorTool->showPlot->click();
120+
} else if(name == "Text") {
121+
monitorTool->showText->click();
122+
} else if(name == "7 Segment") {
123+
monitorTool->showSegments->click();
124+
} else {
125+
qWarning(CAT_DATAMONITOR_API) << "No tool available with name " << name;
126+
}
127+
}
128+
}
129+
130+
void DataLogger_API::setMinMax(bool enable)
131+
{
132+
Q_ASSERT(!m_dataLoggerPlugin->m_toolList.isEmpty());
133+
134+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
135+
if(tool) {
136+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
137+
SevenSegmentMonitorSettings *monitorSettings =
138+
monitorTool->m_dataMonitorSettings->getSevenSegmentMonitorSettings();
139+
monitorTool->sevenSegmetMonitors->togglePeakHolder(enable);
140+
monitorSettings->peakHolderToggle->onOffswitch()->setChecked(enable);
141+
}
142+
}
143+
144+
void DataLogger_API::changePrecision(int decimals)
145+
{
146+
Q_ASSERT(!m_dataLoggerPlugin->m_toolList.isEmpty());
147+
148+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
149+
if(tool) {
150+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
151+
SevenSegmentMonitorSettings *monitorSettings =
152+
monitorTool->m_dataMonitorSettings->getSevenSegmentMonitorSettings();
153+
monitorTool->sevenSegmetMonitors->updatePrecision(decimals);
154+
monitorSettings->precision->setText(QString::number(decimals));
155+
}
156+
}
157+
158+
void DataLogger_API::setMinYAxis(double min)
159+
{
160+
Q_ASSERT(!m_dataLoggerPlugin->m_toolList.isEmpty());
161+
162+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
163+
if(tool) {
164+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
165+
monitorTool->m_monitorPlot->updateYAxisIntervalMin(min);
166+
}
167+
}
168+
169+
void DataLogger_API::setMaxYAxis(double max)
170+
{
171+
Q_ASSERT(!m_dataLoggerPlugin->m_toolList.isEmpty());
172+
173+
ToolMenuEntry *tool = ToolMenuEntry::findToolMenuEntryByName(m_dataLoggerPlugin->m_toolList, "Data Logger ");
174+
if(tool) {
175+
DatamonitorTool *monitorTool = dynamic_cast<DatamonitorTool *>(tool->tool());
176+
monitorTool->m_monitorPlot->updateYAxisIntervalMax(max);
177+
}
178+
}
179+
94180
QString DataLogger_API::createTool()
95181
{
96182
Q_ASSERT(m_dataLoggerPlugin != nullptr);

0 commit comments

Comments
 (0)