69 FiffStreamServer::FiffStreamServer(QObject *parent)
81 emit closeFiffStreamServer();
87 void FiffStreamServer::comClist(
Command p_command)
90 QString t_sOutput(
"");
91 t_sOutput.append(
"\tID\tAlias\r\n");
92 QMap<qint32, FiffStreamThread*>::iterator i;
93 for (i = this->m_qClientList.begin(); i != this->m_qClientList.end(); ++i)
95 QString str = QString(
"\t%1\t%2\r\n").arg(i.key()).arg(i.value()->getAlias());
96 t_sOutput.append(str);
98 t_sOutput.append(
"\n");
99 qobject_cast<
MNERTServer*>(this->parent())->getCommandManager()[
"clist"].reply(t_sOutput);
107 void FiffStreamServer::comMeasinfo(
Command p_command)
112 t_id = p_command.
pValues()[0].toInt();
116 emit requestMeasInfo(t_id);
118 QString str = QString(
"\tsend measurement info to FiffStreamClient (ID: %1)\r\n\n").arg(t_id);
119 qobject_cast<
MNERTServer*>(this->parent())->getCommandManager()[
"measinfo"].reply(str);
126 void FiffStreamServer::comStart(
Command p_command)
129 QString t_sOutput(
"");
130 QString t_sAlias(p_command.
pValues()[0].toString());
131 t_sOutput.append(parseToId(t_sAlias,t_id));
135 emit startMeasFiffStreamClient(t_id);
137 QString str = QString(
"\tFiffStreamClient (ID: %1) is now set to accept raw buffers\r\n\n").arg(t_id);
138 t_sOutput.append(str);
140 qobject_cast<
MNERTServer*>(this->parent())->getCommandManager()[
"start"].reply(t_sOutput);
146 void FiffStreamServer::comStop(
Command p_command)
149 QString t_sOutput(
"");
150 QString t_sAlias(p_command.
pValues()[0].toString());
151 t_sOutput.append(parseToId(t_sAlias,t_id));
155 emit stopMeasFiffStreamClient(t_id);
157 QString str = QString(
"\tstop FiffStreamClient (ID: %1) from receiving raw Buffers.\r\n\n").arg(t_id);
158 t_sOutput.append(str);
160 qobject_cast<
MNERTServer*>(this->parent())->getCommandManager()[
"stop"].reply(t_sOutput);
166 void FiffStreamServer::comStopAll(
Command p_command)
168 emit stopMeasFiffStreamClient(-1);
169 QString str = QString(
"\tstop all FiffStreamClients from receiving raw buffers\r\n\n");
170 qobject_cast<
MNERTServer*>(this->parent())->getCommandManager()[
"stop-all"].reply(str);
310 QByteArray FiffStreamServer::parseToId(QString& p_sRawId, qint32& p_iParsedId)
313 QByteArray t_blockCmdIdInfo;
314 if(!p_sRawId.isEmpty())
317 qint32 t_id = p_sRawId.toInt(&t_isInt);
319 if(t_isInt && this->m_qClientList.contains(t_id))
325 QMap<qint32, FiffStreamThread*>::iterator i;
326 for (i = this->m_qClientList.begin(); i != this->m_qClientList.end(); ++i)
328 if(i.value()->getAlias().compare(p_sRawId) == 0)
330 p_iParsedId = i.key();
331 QString str = QString(
"\tconvert alias '%1' => %2\r\n").arg(i.value()->getAlias()).arg(i.key());
332 t_blockCmdIdInfo.append(str);
339 if(p_iParsedId != -1)
341 QString str = QString(
"\tselect FiffStreamClient %1\r\n").arg(p_iParsedId);
342 t_blockCmdIdInfo.append(str);
346 t_blockCmdIdInfo.append(
"\twarning: requested FiffStreamClient not available\r\n\n");
349 return t_blockCmdIdInfo;
371 emit remitMeasInfo(ID, p_fiffInfo);
377 void FiffStreamServer::forwardRawBuffer(QSharedPointer<Eigen::MatrixXf> m_pMatRawData)
379 emit remitRawBuffer(m_pMatRawData);
385 void FiffStreamServer::incomingConnection(qintptr socketDescriptor)
389 m_qClientList.insert(m_iNextClientId, t_pStreamThread);
393 connect(t_pStreamThread, SIGNAL(finished()), t_pStreamThread, SLOT(deleteLater()));
394 connect(
this, SIGNAL(closeFiffStreamServer()), t_pStreamThread, SLOT(deleteLater()));
396 t_pStreamThread->start();
FIFF measurement file information.
void forwardMeasInfo(qint32 ID, FiffInfo p_fiffInfo)
CommandManager & getCommandManager()
The MNERTServer class provides a Fiff data simulator.
implementation of the FiffStreamServer Class.
implementation of the MNERTServer Class.
implementation of the FiffStreamThread Class.
QList< QVariant > & pValues()
void executed(Command p_command)