Skip to content

Commit

Permalink
plugins/datalogger: Emit iioEvent when needed.
Browse files Browse the repository at this point in the history
The signal is received by the tool menu through the ToolMenuEntry.

Signed-off-by: andreidanila1 <[email protected]>
  • Loading branch information
andreidanila1 committed Nov 21, 2024
1 parent a6aacd2 commit 60f1bd7
Show file tree
Hide file tree
Showing 11 changed files with 27 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ class SCOPY_DATALOGGER_EXPORT DataAcquisitionManager : public QObject
void monitorAdded(DataMonitorModel *monitor);
void monitorRemoved(QString monitorName);
void deviceRemoved(QString deviceName);
void iioEvent(int retCode = 0);

private:
QMap<QString, int> *m_activeMonitorsMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ class SCOPY_DATALOGGER_EXPORT DataMonitorModel : public QObject
void minValueUpdated(double value);
void maxValueUpdated(double value);
void dataCleared();
void iioEvent(int retCode = 0);

protected:
void setDataStorageSize();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ class SCOPY_DATALOGGER_EXPORT ReadableDataMonitorModel : public DataMonitorModel
void setReadStrategy(IReadStrategy *newReadStrategy);
void resetMinMax();

signals:

private:
IReadStrategy *m_readStrategy;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class SCOPY_DATALOGGER_EXPORT IReadStrategy : public QObject
Q_SIGNALS:
void readDone(double time, double value);
void readError(const char *err);
void iioEvent(int retCode = 0);
};
} // namespace datamonitor
} // namespace scopy
Expand Down
1 change: 1 addition & 0 deletions plugins/datalogger/include/datalogger/datamonitortool.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ class SCOPY_DATALOGGER_EXPORT DatamonitorTool : public QWidget
void runToggled(bool toggled);
void settingsTitleChanged(QString newTitle);
void requestDeleteTool();
void iioEvent(int retCode);

private:
MenuControlButton *monitorsButton;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ class SCOPY_DATALOGGER_EXPORT ChannelAttributesMenu : public QWidget
Q_OBJECT
public:
explicit ChannelAttributesMenu(DataMonitorModel *model, QWidget *parent = nullptr);

Q_SIGNALS:
void iioEvent(int retCode);
};
} // namespace datamonitor
} // namespace scopy
Expand Down
5 changes: 5 additions & 0 deletions plugins/datalogger/src/dataloggerplugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ bool DataLoggerPlugin::onConnect()

foreach(ReadableDataMonitorModel *monitor, dmmList) {
m_dataAcquisitionManager->getDataMonitorMap()->insert(monitor->getName(), monitor);
connect(monitor, &ReadableDataMonitorModel::iioEvent, m_dataAcquisitionManager,
&DataAcquisitionManager::iioEvent);
}

Preferences *p = Preferences::GetInstance();
Expand Down Expand Up @@ -201,6 +203,9 @@ void DataLoggerPlugin::addNewTool()

Q_EMIT toolListChanged();
m_toolList.last()->setTool(datamonitorTool);
connect(datamonitorTool, &DatamonitorTool::iioEvent, m_toolList.last(), &ToolMenuEntry::iioEvent);
connect(m_dataAcquisitionManager, &DataAcquisitionManager::iioEvent, m_toolList.last(),
&ToolMenuEntry::iioEvent);
if(m_toolList.length() > 1) {
requestTool(tool_name);
}
Expand Down
1 change: 1 addition & 0 deletions plugins/datalogger/src/datamonitor/dmmdatamonitormodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ DmmDataMonitorModel::DmmDataMonitorModel(QString name, QColor color, UnitOfMeasu

setDataStorageSize();
setReadStrategy(readStrategy);
connect(readStrategy, &DMMReadStrategy::iioEvent, this, &DmmDataMonitorModel::iioEvent);
}

iio_channel *DmmDataMonitorModel::iioChannel() const { return m_iioChannel; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,12 @@ void DMMReadStrategy::read()
char err[1024];
iio_strerror(-(int)readRaw, err, sizeof(err));
qDebug() << "device read error " << err;

Q_EMIT iioEvent(readRaw);
} else if(readScale < 0) {
char err[1024];
iio_strerror(-(int)readScale, err, sizeof(err));
qDebug() << "device read error " << err;
Q_EMIT iioEvent(readScale);
} else {
double result = (raw + m_offset) * scale * m_umScale;
qDebug() << "dmm read success ";
Expand All @@ -60,6 +61,7 @@ void DMMReadStrategy::read()
double currentTime = QwtDate::toDouble(timeTracker->lastReadValue());

Q_EMIT readDone(currentTime, result);
Q_EMIT iioEvent();
}
}

Expand Down
8 changes: 6 additions & 2 deletions plugins/datalogger/src/datamonitortool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,9 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
////generate channel settings for compatible monitors
foreach(QString monitor, m_dataAcquisitionManager->getDataMonitorMap()->keys()) {
auto monitorModel = m_dataAcquisitionManager->getDataMonitorMap()->value(monitor);
tool->rightStack()->add(monitor, new ChannelAttributesMenu(monitorModel, this));
ChannelAttributesMenu *chnlAttrMenu = new ChannelAttributesMenu(monitorModel, this);
tool->rightStack()->add(monitor, chnlAttrMenu);
connect(chnlAttrMenu, &ChannelAttributesMenu::iioEvent, this, &DatamonitorTool::iioEvent);
}

/////////////////monitor selection menu ///////////////
Expand All @@ -278,7 +280,9 @@ DatamonitorTool::DatamonitorTool(DataAcquisitionManager *dataAcquisitionManager,
connect(m_dataAcquisitionManager, &DataAcquisitionManager::monitorAdded, this,
[=, this](DataMonitorModel *monitor) {
m_monitorSelectionMenu->addMonitor(monitor);
tool->rightStack()->add(monitor->getName(), new ChannelAttributesMenu(monitor, this));
ChannelAttributesMenu *chnlAttrMenu = new ChannelAttributesMenu(monitor, this);
tool->rightStack()->add(monitor->getName(), chnlAttrMenu);
connect(chnlAttrMenu, &ChannelAttributesMenu::iioEvent, this, &DatamonitorTool::iioEvent);
});

connect(m_dataAcquisitionManager, &DataAcquisitionManager::monitorRemoved, this,
Expand Down
5 changes: 5 additions & 0 deletions plugins/datalogger/src/menus/channelattributesmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
*/

#include "menus/channelattributesmenu.hpp"
#include "datastrategy/channelattrdatastrategy.h"

#include <iiowidgetbuilder.h>
#include <menuheader.h>
Expand Down Expand Up @@ -66,6 +67,10 @@ ChannelAttributesMenu::ChannelAttributesMenu(DataMonitorModel *model, QWidget *p

for(auto w : attrWidgets) {
attrLayout->addWidget(w);
connect(dynamic_cast<ChannelAttrDataStrategy *>(w->getDataStrategy()),
&ChannelAttrDataStrategy::emitStatus, this,
[this](QDateTime timestamp, QString oldData, QString newData, int returnCode,
bool isReadOp) { Q_EMIT iioEvent(returnCode); });
}

} else {
Expand Down

0 comments on commit 60f1bd7

Please sign in to comment.