59 : m_pNeuromag(p_pNeuromag)
61 , m_bDataClientIsConnected(false)
63 , m_bFlagInfoRequest(false)
64 , m_bFlagMeasuring(false)
82 if(m_pRtDataClient.isNull())
83 m_pRtDataClient = QSharedPointer<RtDataClient>(
new RtDataClient);
84 else if(m_bDataClientIsConnected)
87 m_pRtDataClient->connectToHost(p_sRtSeverIP);
88 m_pRtDataClient->waitForConnected(1000);
90 if(m_pRtDataClient->state() == QTcpSocket::ConnectedState)
93 if(!m_bDataClientIsConnected)
98 m_iDataClientId = m_pRtDataClient->getClientId();
103 m_pRtDataClient->setClientAlias(m_pNeuromag->m_sNeuromagClientAlias);
108 m_bDataClientIsConnected =
true;
111 producerMutex.unlock();
120 if(m_bDataClientIsConnected)
122 m_pRtDataClient->disconnectFromHost();
123 m_pRtDataClient->waitForDisconnected();
124 producerMutex.lock();
125 m_iDataClientId = -1;
126 m_bDataClientIsConnected =
false;
127 producerMutex.unlock();
138 m_bIsRunning =
false;
139 m_bFlagMeasuring =
false;
141 if(m_pNeuromag->m_bCmdClientIsConnected)
144 (*m_pNeuromag->m_pRtCmdClient)[
"stop-all"].send();
147 if(m_pNeuromag->m_pRawMatrixBuffer_In)
150 m_pNeuromag->m_pRawMatrixBuffer_In->releaseFromPush();
156 if(this->isRunning())
172 while(m_pRtDataClient->state() != QTcpSocket::ConnectedState)
177 if(count > 10 || !m_bIsRunning)
183 m_bFlagMeasuring =
true;
188 MatrixXf t_matRawBuffer;
197 if(m_bFlagInfoRequest)
199 m_pNeuromag->rtServerMutex.lock();
200 m_pNeuromag->m_pFiffInfo = m_pRtDataClient->readInfo();
202 m_pNeuromag->rtServerMutex.unlock();
204 producerMutex.lock();
205 m_bFlagInfoRequest =
false;
206 producerMutex.unlock();
211 m_pRtDataClient->readRawBuffer(m_pNeuromag->m_pFiffInfo->nchan, t_matRawBuffer, kind);
215 to += t_matRawBuffer.cols();
216 from += t_matRawBuffer.cols();
218 m_pNeuromag->m_pRawMatrixBuffer_In->push(&t_matRawBuffer);
221 m_bFlagMeasuring =
false;
NeuromagProducer(Neuromag *p_pNeuromag)
void disconnectDataClient()
void connectDataClient(QString p_sRtSeverIP)
The Neuromag class provides a RT server connection.
Contains the declaration of the NeuromagProducer class.
void dataConnectionChanged(bool p_bStatus)