MNE-CPP 0.1.9
A Framework for Electrophysiology
Loading...
Searching...
No Matches
rtsensordatacontroller.cpp
Go to the documentation of this file.
1//=============================================================================================================
35//=============================================================================================================
36// INCLUDES
37//=============================================================================================================
38
41#include "rtsensordataworker.h"
42
43//=============================================================================================================
44// QT INCLUDES
45//=============================================================================================================
46
47//=============================================================================================================
48// EIGEN INCLUDES
49//=============================================================================================================
50
51#include <Eigen/Core>
52
53//=============================================================================================================
54// USED NAMESPACES
55//=============================================================================================================
56
57using namespace DISP3DLIB;
58using namespace Eigen;
59using namespace FIFFLIB;
60
61//=============================================================================================================
62// DEFINE MEMBER METHODS
63//=============================================================================================================
64
66: m_iMSecInterval(17)
67{
68 //Stream data
71
72 connect(&m_rtSensorDataWorkerThread, &QThread::finished,
73 m_pRtSensorDataWorker.data(), &QObject::deleteLater);
74
77
80
81 connect(&m_timer, &QTimer::timeout,
83
86
89
92
94 m_pRtSensorDataWorker.data(), &RtSensorDataWorker::setThresholds, Qt::DirectConnection);
95
98
101
103 m_pRtSensorDataWorker.data(), &RtSensorDataWorker::setNumberAverages, Qt::DirectConnection);
104
106 m_pRtSensorDataWorker.data(), &RtSensorDataWorker::setColormapType, Qt::DirectConnection);
107
110
112
113 //Calculate interpolation matrix
116
119
120 connect(&m_rtInterpolationWorkerThread, &QThread::finished,
121 m_pRtInterpolationWorker.data(), &QObject::deleteLater);
122
125
128
131
134
136}
137
138//=============================================================================================================
139
147
148//=============================================================================================================
149
151{
152 if(bStreamingState) {
154 } else {
155 m_timer.stop();
156 }
157}
158
159//=============================================================================================================
160
161void RtSensorDataController::setInterpolationFunction(const QString &sInterpolationFunction)
162{
163 emit interpolationFunctionChanged(sInterpolationFunction);
164}
165
166//=============================================================================================================
167
169{
170 emit loopStateChanged(bLoopState);
171}
172
173//=============================================================================================================
174
176{
177 emit cancelDistanceChanged(dCancelDist);
178}
179
180//=============================================================================================================
181
183{
184// if(iMSec < 17) {
185// qDebug() << "RtSensorDataController::setTimeInterval - The minimum time interval is 17mSec.";
186// iMSec = 17;
187// }
188
189 m_iMSecInterval = iMSec;
190 m_timer.setInterval(m_iMSecInterval);
191}
192
193//=============================================================================================================
194
195void RtSensorDataController::setInterpolationInfo(const Eigen::MatrixX3f &matVertices,
196 const QVector<QVector<int> > &vecNeighborVertices,
197 const QVector<Vector3f> &vecSensorPos,
198 const FiffInfo &fiffInfo,
199 int iSensorType)
200{
201 emit numberVerticesChanged(matVertices.rows());
202
203 emit interpolationInfoChanged(matVertices,
204 vecNeighborVertices,
205 vecSensorPos,
206 fiffInfo,
207 iSensorType);
208}
209
210//=============================================================================================================
211
212void RtSensorDataController::setThresholds(const QVector3D &vecThresholds)
213{
214 emit thresholdsChanged(vecThresholds);
215}
216
217//=============================================================================================================
218
219void RtSensorDataController::setColormapType(const QString &sColormapType)
220{
221 emit colormapTypeChanged(sColormapType);
222}
223
224//=============================================================================================================
225
227{
228 emit numberAveragesChanged(iNumAvr);
229}
230
231//=============================================================================================================
232
234{
235 emit sFreqChanged(dSFreq);
236}
237
238//=============================================================================================================
239
241{
242 emit badChannelsChanged(info);
243}
244
245//=============================================================================================================
246
248{
249 emit streamSmoothedDataChanged(bStreamSmoothedData);
250}
251
252//=============================================================================================================
253
254void RtSensorDataController::addData(const MatrixXd& data)
255{
256 emit rawDataChanged(data);
257}
258
259//=============================================================================================================
260
261void RtSensorDataController::onNewRtRawData(const VectorXd &vecDataVector)
262{
263 emit newRtRawDataAvailable(vecDataVector);
264}
265
266//=============================================================================================================
267
268void RtSensorDataController::onNewSmoothedRtRawData(const MatrixX4f &matColorMatrix)
269{
270 emit newRtSmoothedDataAvailable(matColorMatrix);
271}
272
273//=============================================================================================================
274
275void RtSensorDataController::onNewInterpolationMatrixCalculated(QSharedPointer<SparseMatrix<float> > pMatInterpolationMatrix)
276{
277 emit newInterpolationMatrixAvailable(pMatInterpolationMatrix);
278}
RtSensorInterpolationMatWorker class declaration.
RtSensorDataWorker class declaration.
RtSensorDataController class declaration.
void addData(const Eigen::MatrixXd &data)
void sFreqChanged(double dSFreq)
void onNewSmoothedRtRawData(const Eigen::MatrixX4f &matColorMatrix)
void newRtSmoothedDataAvailable(const Eigen::MatrixX4f &matColorMatrix)
void setBadChannels(const FIFFLIB::FiffInfo &info)
void thresholdsChanged(const QVector3D &vecThresholds)
void newRtRawDataAvailable(const Eigen::VectorXd &vecDataVector)
void interpolationInfoChanged(const Eigen::MatrixX3f &matVertices, const QVector< QVector< int > > &vecNeighborVertices, const QVector< Eigen::Vector3f > &vecSensorPos, const FIFFLIB::FiffInfo &fiffInfo, int iSensorType)
void badChannelsChanged(const FIFFLIB::FiffInfo &info)
void cancelDistanceChanged(double dCancelDist)
void loopStateChanged(bool bLoopState)
void newInterpolationMatrixAvailable(QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix)
void numberAveragesChanged(int iNumAvr)
void setInterpolationFunction(const QString &sInterpolationFunction)
void interpolationFunctionChanged(const QString &sInterpolationFunction)
void colormapTypeChanged(const QString &sColormapType)
void setStreamingState(bool bStreamingState)
void streamSmoothedDataChanged(bool bStreamSmoothedData)
void onNewInterpolationMatrixCalculated(QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix)
void setStreamSmoothedData(bool bStreamSmoothedData)
void numberVerticesChanged(int iNumberVerts)
void setInterpolationInfo(const Eigen::MatrixX3f &matVertices, const QVector< QVector< int > > &vecNeighborVertices, const QVector< Eigen::Vector3f > &vecSensorPos, const FIFFLIB::FiffInfo &fiffInfo, int iSensorType)
void setColormapType(const QString &sColormapType)
void setThresholds(const QVector3D &vecThresholds)
void rawDataChanged(const Eigen::MatrixXd &data)
void onNewRtRawData(const Eigen::VectorXd &vecDataVector)
QPointer< RtSensorDataWorker > m_pRtSensorDataWorker
QPointer< RtSensorInterpolationMatWorker > m_pRtInterpolationWorker
This worker streams either interpolated or raw data.
void newRtSmoothedData(const Eigen::MatrixX4f &matColorMatrix)
void setSFreq(const double dSFreq)
void setColormapType(const QString &sColormapType)
void addData(const Eigen::MatrixXd &data)
void setInterpolationMatrix(QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix)
void setNumberVertices(int iNumberVerts)
void setThresholds(const QVector3D &vecThresholds)
void setStreamSmoothedData(bool bStreamSmoothedData)
void newRtRawData(Eigen::VectorXd vecDataVector)
This worker calculates the interpolation matrix.
void setInterpolationFunction(const QString &sInterpolationFunction)
void newInterpolationMatrixCalculated(QSharedPointer< Eigen::SparseMatrix< float > > pMatInterpolationMatrix)
void setInterpolationInfo(const Eigen::MatrixX3f &matVertices, const QVector< QVector< int > > &vecNeighborVertices, const QVector< Eigen::Vector3f > &vecSensorPos, const FIFFLIB::FiffInfo &fiffInfo, int iSensorType)
FIFF measurement file information.
Definition fiff_info.h:85