70 #include <QtCore/QtPlugin>
94 , m_uiBufferSampleSize(1000)
95 , m_pRawMatrixBuffer(NULL)
99 connect(pInfo, &BabyMEGInfo::fiffInfoAvailable,
this, &BabyMEG::setFiffInfo);
100 connect(pInfo, &BabyMEGInfo::SendDataPackage,
this, &BabyMEG::setFiffData);
101 connect(pInfo, &BabyMEGInfo::SendCMDPackage,
this, &BabyMEG::setCMDData);
108 myClientComm->start();
125 qDebug() <<
"Destroy BabyMEG::~BabyMEG()";
134 m_bIsRunning =
false;
139 void BabyMEG::comFLL(
Command p_command)
141 qDebug()<<
"FLL commands";
143 QString t_sFLLControlCommand = p_command.
pValues()[0].toString();
146 qDebug() <<
"BabyMeg Received" << t_sFLLControlCommand;
147 int strlen = t_sFLLControlCommand.size();
149 QByteArray SC = QByteArray(
"COMS")+Scmd;
150 SC.append(t_sFLLControlCommand);
157 void BabyMEG::setCMDData(QByteArray DATA)
159 qDebug()<<
"------"<<DATA;
161 qDebug()<<
"Data has been received.";
214 void BabyMEG::comBufsize(
Command p_command)
217 qDebug() <<
"Here Inside void BabyMEG::comBufsize(Command p_command)";
221 quint32 t_uiBuffSize = p_command.
pValues()[0].toUInt();
237 QString str = QString(
"\tSet %1 buffer sample size to %2 samples\r\n\n").arg(getName()).arg(t_uiBuffSize);
248 void BabyMEG::comGetBufsize(
Command p_command)
250 bool t_bCommandIsJson = p_command.
isJson();
256 QJsonObject t_qJsonObjectRoot;
257 t_qJsonObjectRoot.insert(
"bufsize", QJsonValue((
double)m_uiBufferSampleSize));
258 QJsonDocument p_qJsonDocument(t_qJsonObjectRoot);
264 QString str = QString(
"\t%1\r\n\n").arg(m_uiBufferSampleSize);
272 void BabyMEG::connectCommandManager()
283 ConnectorID BabyMEG::getConnectorID()
const
291 const char* BabyMEG::getName()
const
299 void BabyMEG::setFiffInfo(
FiffInfo p_FiffInfo)
301 m_FiffInfoBabyMEG = p_FiffInfo;
303 m_uiBufferSampleSize = pInfo->dataLength;
308 void BabyMEG::setFiffData(QByteArray DATA)
313 int dformat = DATA.left(1).toInt();
316 qint32 rows = m_FiffInfoBabyMEG.
nchan;
317 qint32 cols = (DATA.size()/dformat)/rows;
319 qDebug() <<
"[BabyMEG] Matrix " << rows <<
"x" << cols <<
" [Data bytes:" << dformat <<
"]";
321 MatrixXf rawData(Map<MatrixXf>( (
float*)DATA.data(),rows, cols ));
323 for(qint32 i = 0; i < rows*cols; ++i)
328 if(!m_pRawMatrixBuffer)
331 m_pRawMatrixBuffer->
push(&rawData);
353 bool BabyMEG::start()
371 m_bIsRunning =
false;
382 void BabyMEG::info(qint32 ID)
384 if(m_FiffInfoBabyMEG.
isEmpty())
385 m_FiffInfoBabyMEG = pInfo->getFiffInfo();
387 if(!m_FiffInfoBabyMEG.
isEmpty())
388 emit remitMeasInfo(ID, m_FiffInfoBabyMEG);
401 if(m_pRawMatrixBuffer)
403 QSharedPointer<Eigen::MatrixXf> t_pRawBuffer(
new Eigen::MatrixXf(m_pRawMatrixBuffer->
pop()));
409 emit remitRawBuffer(t_pRawBuffer);
FIFF measurement file information.
Old fiff_type declarations - replace them.
The BabyMEGClient class provides a TCP/IP communication between Qt and Labview.
MNEEpochDataList class declaration.
void SendCommandToBabyMEGShortConnection(QByteArray s)
void SetInfo(BabyMEGInfo *pInfo)
QSharedPointer< CircularMatrixBuffer > SPtr
CommandManager m_commandManager
void push(const Matrix< _Tp, Dynamic, Dynamic > *pMatrix)
Matrix< _Tp, Dynamic, Dynamic > pop()
The BabyMEGClient class provides a TCP/IP communication between Qt and Labview.
QList< QVariant > & pValues()
static void swap_floatp(float *source)
QByteArray MGH_LM_Int2Byte(int a)
void executed(Command p_command)
FIFF class declaration, which provides static wrapper functions to stay consistent with mne matlab to...
IOUtils class declaration.