43 #include "FormFiles/covariancesettingswidget.h"
51 #include <QtCore/QtPlugin>
72 , m_bProcessData(false)
73 , m_pCovarianceInput(NULL)
74 , m_pCovarianceOutput(NULL)
76 , m_iEstimationSamples(5000)
78 m_pActionShowAdjustment =
new QAction(QIcon(
":/images/covadjustments.png"), tr(
"Covariance Adjustments"),
this);
80 m_pActionShowAdjustment->setStatusTip(tr(
"Covariance Adjustments"));
81 connect(m_pActionShowAdjustment, &QAction::triggered,
this, &Covariance::showCovarianceWidget);
100 QSharedPointer<Covariance> pCovarianceClone(
new Covariance);
101 return pCovarianceClone;
116 m_iEstimationSamples = settings.value(QString(
"Plugin/%1/estimationSamples").arg(this->
getName()), 5000).toInt();
120 connect(m_pCovarianceInput.data(), &PluginInputConnector::notify,
this, &Covariance::update, Qt::DirectConnection);
128 if(!m_pCovarianceBuffer.isNull())
141 settings.setValue(QString(
"Plugin/%1/estimationSamples").arg(this->
getName()), m_iEstimationSamples);
150 if(this->isRunning())
167 m_bIsRunning =
false;
172 m_pCovarianceBuffer->
clear();
196 void Covariance::showCovarianceWidget()
199 m_pCovarianceWidget->show();
221 if(!m_pCovarianceBuffer)
227 m_pFiffInfo = pRTMSA->info();
236 for(qint32 i = 0; i < pRTMSA->getMultiArraySize(); ++i)
238 t_mat = pRTMSA->getMultiSampleArray()[i];
239 m_pCovarianceBuffer->
push(&t_mat);
248 void Covariance::appendCovariance(
FiffCov::SPtr p_pCovariance)
251 m_qVecCovData.push_back(p_pCovariance);
258 void Covariance::changeSamples(qint32 samples)
260 m_iEstimationSamples = samples;
262 m_pRtCov->setSamples(m_iEstimationSamples);
292 m_bProcessData =
true;
299 MatrixXd t_mat = m_pCovarianceBuffer->
pop();
302 m_pRtCov->append(t_mat);
304 if(m_qVecCovData.size() > 0)
307 m_pCovarianceOutput->data()->setValue(*m_qVecCovData[0]);
309 m_qVecCovData.pop_front();
QSharedPointer< IAlgorithm > SPtr
OutputConnectorList m_outputConnectors
QSharedPointer< FiffCov > SPtr
Contains the declaration of the Covariance class.
Real-time covariance estimation.
virtual IPlugin::PluginType getType() const
QSharedPointer< CircularMatrixBuffer > SPtr
void addPluginAction(QAction *pAction)
The circular matrix buffer.
void covCalculated(FIFFLIB::FiffCov::SPtr p_pCov)
void push(const Matrix< _Tp, Dynamic, Dynamic > *pMatrix)
The Covariance class provides a Covariance algorithm structure.
Matrix< _Tp, Dynamic, Dynamic > pop()
virtual QString getName() const
QSharedPointer< NewMeasurement > SPtr
virtual QWidget * setupWidget()
virtual QSharedPointer< IPlugin > clone() const
static QSharedPointer< PluginOutputData< T > > create(IPlugin *parent, const QString &name, const QString &descr)
QSharedPointer< RtCov > SPtr
InputConnectorList m_inputConnectors
The RealTimeMultiSampleArrayNew class is the base class of every RealTimeMultiSampleArrayNew Measurem...