65 ClustStcWorker::ClustStcWorker(QObject *parent)
69 , m_iAverageSamples(10)
71 , m_iUSecIntervall(100)
79 ClustStcWorker::~ClustStcWorker()
88 void ClustStcWorker::addData(QList<VectorXd> &data)
90 QMutexLocker locker(&m_qMutex);
100 void ClustStcWorker::clear()
102 QMutexLocker locker(&m_qMutex);
109 void ClustStcWorker::run()
111 VectorXd m_vecAverage(0,0);
118 QMutexLocker locker(&m_qMutex);
123 bool doProcessing =
false;
125 QMutexLocker locker(&m_qMutex);
126 if(!m_data.isEmpty() && m_data.size() > 0)
136 if(m_vecAverage.rows() != m_data[0].rows())
137 m_vecAverage = m_data[m_iCurrentSample%m_data.size()];
139 m_vecAverage += m_data[m_iCurrentSample%m_data.size()];
146 if(m_vecAverage.rows() != m_data[0].rows())
147 m_vecAverage = m_data.front();
149 m_vecAverage += m_data.front();
158 if(m_iCurrentSample%m_iAverageSamples == 0)
160 m_vecAverage /= (double)m_iAverageSamples;
162 emit stcSample(m_vecAverage);
163 m_vecAverage = VectorXd::Zero(m_vecAverage.rows());
168 QThread::usleep(m_iUSecIntervall);
175 void ClustStcWorker::setAverage(qint32 samples)
177 QMutexLocker locker(&m_qMutex);
178 m_iAverageSamples = samples;
184 void ClustStcWorker::setInterval(
int usec)
186 QMutexLocker locker(&m_qMutex);
187 m_iUSecIntervall = usec;
193 void ClustStcWorker::setLoop(
bool looping)
195 QMutexLocker locker(&m_qMutex);
196 m_bIsLooping = looping;
202 void ClustStcWorker::stop()
205 m_bIsRunning =
false;
ClustStcWorker class declaration.