44
44
45
45
#include < QThread>
46
46
#include < QtEndian>
47
+ #include < QDateTime>
47
48
48
49
// =============================================================================================================
49
50
// EIGEN INCLUDES
@@ -69,7 +70,7 @@ FtConnector::FtConnector()
69
70
, m_iExtendedHeaderSize(0 )
70
71
, m_iPort(1972 )
71
72
, m_bNewData(false )
72
- , m_fSampleFreq (0 )
73
+ , m_fSamplingFreq (0 )
73
74
, m_sAddress(" 127.0.0.1" )
74
75
, m_pSocket(Q_NULLPTR)
75
76
{
@@ -140,7 +141,7 @@ bool FtConnector::getFixedHeader()
140
141
141
142
// Parse return message from buffer
142
143
QBuffer msgBuffer;
143
- copyAllChunks (msgBuffer, sizeof (messagedef_t ));
144
+ copyResponse (msgBuffer, sizeof (messagedef_t ));
144
145
int bufsize = parseMessageDef (msgBuffer);
145
146
146
147
if (bufsize == 0 ) {
@@ -155,7 +156,7 @@ bool FtConnector::getFixedHeader()
155
156
156
157
// Parse header info from buffer
157
158
QBuffer hdrBuffer;
158
- copyAllChunks (hdrBuffer, sizeof (headerdef_t )); // if implementing header chunks: change from sizeof (headerdef) to bufsize
159
+ copyResponse (hdrBuffer, sizeof (headerdef_t )); // if implementing header chunks: change from sizeof (headerdef) to bufsize
159
160
parseHeaderDef (hdrBuffer);
160
161
161
162
return true ;
@@ -205,11 +206,11 @@ bool FtConnector::parseHeaderDef(QBuffer &readBuffer)
205
206
206
207
// Save paramerters
207
208
m_iNumChannels = headerdef.nchans ;
208
- m_fSampleFreq = headerdef.fsample ;
209
+ m_fSamplingFreq = headerdef.fsample ;
209
210
m_iNumNewSamples = headerdef.nsamples ;
210
211
m_iDataType = headerdef.data_type ;
211
212
m_iExtendedHeaderSize = headerdef.bufsize ;
212
- m_iMinSampleRead = static_cast <int >(m_fSampleFreq /2 );
213
+ m_iMinSampleRead = static_cast <int >(m_fSamplingFreq /2 );
213
214
214
215
qInfo () << " [FtConnector::parseHeaderDef] Got header parameters." ;
215
216
@@ -287,7 +288,7 @@ bool FtConnector::getData()
287
288
288
289
// Parse return message from buffer
289
290
QBuffer msgBuffer;
290
- copyAllChunks (msgBuffer, sizeof (messagedef_t ));
291
+ copyResponse (msgBuffer, sizeof (messagedef_t ));
291
292
int bufsize = parseMessageDef (msgBuffer);
292
293
293
294
// Waiting for response.
@@ -297,12 +298,12 @@ bool FtConnector::getData()
297
298
298
299
// Parse return data def from buffer
299
300
QBuffer datadefBuffer;
300
- copyAllChunks (datadefBuffer, sizeof (datadef_t ));
301
+ copyResponse (datadefBuffer, sizeof (datadef_t ));
301
302
bufsize = parseDataDef (datadefBuffer);
302
303
303
304
// Parse actual data from buffer
304
305
QBuffer datasampBuffer;
305
- copyAllChunks (datasampBuffer, bufsize);
306
+ copyResponse (datasampBuffer, bufsize);
306
307
parseData (datasampBuffer, bufsize);
307
308
308
309
// update sample tracking
@@ -334,8 +335,8 @@ bool FtConnector::setPort(const int &iPort)
334
335
335
336
// =============================================================================================================
336
337
337
- void FtConnector::copyAllChunks (QBuffer &buffer,
338
- int numBytes)
338
+ void FtConnector::copyResponse (QBuffer &buffer,
339
+ int numBytes)
339
340
{
340
341
buffer.open (QIODevice::ReadWrite);
341
342
buffer.write (m_pSocket->read (numBytes));
@@ -395,7 +396,7 @@ void FtConnector::echoStatus()
395
396
qInfo () << " | Socket: " << m_pSocket->state ();
396
397
qInfo () << " | Address: " << m_sAddress << " :" << m_iPort;
397
398
qInfo () << " | Channels: " << m_iNumChannels;
398
- qInfo () << " | Frequency: " << m_fSampleFreq ;
399
+ qInfo () << " | Frequency: " << m_fSamplingFreq ;
399
400
qInfo () << " | Samples read:" << m_iNumSamples;
400
401
qInfo () << " | New samples: " << m_iNumNewSamples;
401
402
qInfo () << " |================================" ;
@@ -430,7 +431,7 @@ int FtConnector::totalBuffSamples()
430
431
431
432
// Parse return message from buffer
432
433
QBuffer msgBuffer;
433
- copyAllChunks (msgBuffer, sizeof (messagedef_t ));
434
+ copyResponse (msgBuffer, sizeof (messagedef_t ));
434
435
parseMessageDef (msgBuffer);
435
436
436
437
// Waiting for response.
@@ -441,7 +442,7 @@ int FtConnector::totalBuffSamples()
441
442
qint32 iNumSamp;
442
443
443
444
QBuffer sampeventsBuffer;
444
- copyAllChunks (sampeventsBuffer, sizeof (samples_events_t ));
445
+ copyResponse (sampeventsBuffer, sizeof (samples_events_t ));
445
446
446
447
char cSamps[sizeof (iNumSamp)];
447
448
sampeventsBuffer.read (cSamps, sizeof (iNumSamp));
@@ -468,19 +469,6 @@ bool FtConnector::parseData(QBuffer &datasampBuffer,
468
469
QByteArray dataArray = datasampBuffer.readAll ();
469
470
float * fdata = reinterpret_cast <float *> (dataArray.data ());
470
471
471
- // TODO: Implement receiving other types of data
472
- // switch (m_iDataType) {
473
- // case DATATYPE_FLOAT32:
474
- // auto data = reinterpret_cast<float*>(dataArray.data(), bufsize);
475
- // qDebug() << "*** Would you look at that, we're all the way here ***";
476
- // qDebug() << "Data sample:";
477
-
478
- // for (int i = 0; i < 10 ; i++) {
479
- // qDebug() << data[i];
480
- // }
481
- // break;
482
- // }
483
-
484
472
// format data into eigen matrix to pass up
485
473
Eigen::MatrixXf matData;
486
474
matData.resize (m_iNumChannels, m_iMsgSamples);
@@ -552,14 +540,12 @@ MetaData FtConnector::parseBufferHeader()
552
540
553
541
qInfo () << " [FtConnector::parseNeuromagHeader] Parsing extended header\n " ;
554
542
QBuffer allChunksBuffer;
555
- copyAllChunks (allChunksBuffer, m_iExtendedHeaderSize);
543
+ copyResponse (allChunksBuffer, m_iExtendedHeaderSize);
556
544
557
545
FtHeaderParser parser;
558
- metadata = parser.parseHeader (allChunksBuffer);
546
+ metadata = parser.parseExtendedHeader (allChunksBuffer);
559
547
560
- if (!metadata.bFiffInfo ){
561
- metadata.setFiffinfo (infoFromSimpleHeader ());
562
- }
548
+ checkForMissingMetadataFields (metadata);
563
549
564
550
return metadata;
565
551
}
0 commit comments