42 #include "fiffsimulator.h"
50 #include <QMutexLocker>
66 : m_pFiffSimulator(p_pFiffSimulator)
68 , m_bDataClientIsConnected(false)
70 , m_bFlagInfoRequest(false)
71 , m_bFlagMeasuring(false)
89 if(m_pRtDataClient.isNull())
90 m_pRtDataClient = QSharedPointer<RtDataClient>(
new RtDataClient);
91 else if(m_bDataClientIsConnected)
94 m_pRtDataClient->connectToHost(p_sRtSeverIP);
95 m_pRtDataClient->waitForConnected(1000);
97 if(m_pRtDataClient->state() == QTcpSocket::ConnectedState)
100 if(!m_bDataClientIsConnected)
105 m_iDataClientId = m_pRtDataClient->getClientId();
110 m_pRtDataClient->setClientAlias(m_pFiffSimulator->m_sFiffSimulatorClientAlias);
115 m_bDataClientIsConnected =
true;
118 producerMutex.unlock();
127 if(m_bDataClientIsConnected)
129 m_pRtDataClient->disconnectFromHost();
130 m_pRtDataClient->waitForDisconnected();
131 producerMutex.lock();
132 m_iDataClientId = -1;
133 m_bDataClientIsConnected =
false;
134 producerMutex.unlock();
145 m_bIsRunning =
false;
146 m_bFlagMeasuring =
false;
148 if(m_pFiffSimulator->m_bCmdClientIsConnected)
151 (*m_pFiffSimulator->m_pRtCmdClient)[
"stop-all"].send();
154 if(m_pFiffSimulator->m_pRawMatrixBuffer_In)
157 m_pFiffSimulator->m_pRawMatrixBuffer_In->releaseFromPush();
163 if(this->isRunning())
179 while(m_pRtDataClient->state() != QTcpSocket::ConnectedState)
184 if(count > 10 || !m_bIsRunning)
190 m_bFlagMeasuring =
true;
195 MatrixXf t_matRawBuffer;
205 QMutexLocker locker(&producerMutex);
210 producerMutex.lock();
211 if(m_bFlagInfoRequest)
213 m_pFiffSimulator->m_qMutex.lock();
214 m_pFiffSimulator->m_pFiffInfo = m_pRtDataClient->readInfo();
216 m_pFiffSimulator->m_qMutex.unlock();
218 m_bFlagInfoRequest =
false;
220 producerMutex.unlock();
224 m_pRtDataClient->readRawBuffer(m_pFiffSimulator->m_pFiffInfo->nchan, t_matRawBuffer, kind);
228 to += t_matRawBuffer.cols();
229 from += t_matRawBuffer.cols();
230 m_pFiffSimulator->m_pRawMatrixBuffer_In->push(&t_matRawBuffer);
233 m_bFlagMeasuring =
false;
Contains the declaration of the FiffSimulatorProducer class.
void connectDataClient(QString p_sRtSeverIP)
FiffSimulatorProducer(FiffSimulator *p_pFiffSimulator)
void dataConnectionChanged(bool p_bStatus)
void disconnectDataClient()
The FiffSimulator class provides a Fiff data simulator.