Hi all! Here the crash output. I added the line Aaron suggested in rhd2000evalboard.cpp in all 3 functions
readRawDataBlock if (res < 0) std::cout << "Rhd2000EvalBoard::readRawDataBlock USB error code " << res << std::endl;
readDataBlocks if (res < 0) std::cout << "Rhd2000EvalBoard::readDataBlocks USB error code " << res << std::endl;
readDataBlock if (res < 0) std::cout << "Rhd2000EvalBoard::readDataBlock USB error code " << res << std::endl;
right before return true; As you can see in the output, there is no USB error, at least not at this level. Additionally, I changed RHD2000Thread::updateBuffer and added a header print:
bool RHD2000Thread::updateBuffer()
{
......................
if (!Rhd2000DataBlock::checkUsbHeader(bufferPtr, index))
{
cerr << "Error in Rhd2000EvalBoard::readDataBlock: Incorrect header." << endl;
cout << "RHD2000Thread::updateBuffer " << Rhd2000DataBlock::printUsbHeader(bufferPtr, index);
break;
}
....................
Rhd2000DataBlock::printUsbHeader is based on checkUsbHeader and does just that:
// Check first 64 bits of USB header against the fixed Rhythm "magic number" to verify data sync.
bool Rhd2000DataBlock::printUsbHeader(unsigned char usbBuffer[], int index)
{
unsigned long long x1, x2, x3, x4, x5, x6, x7, x8;
unsigned long long header;
char hex[8];
x1 = usbBuffer[index];
x2 = usbBuffer[index + 1];
x3 = usbBuffer[index + 2];
x4 = usbBuffer[index + 3];
x5 = usbBuffer[index + 4];
x6 = usbBuffer[index + 5];
x7 = usbBuffer[index + 6];
x8 = usbBuffer[index + 7];
header = (x8 << 56) + (x7 << 48) + (x6 << 40) + (x5 << 32) + (x4 << 24) + (x3 << 16) + (x2 << 8) + (x1 << 0);
for (int i=0; i < 8; i++){
sprintf(hex, "%02x", (unsigned int) usbBuffer[i]);
std::cout << hex;
}
std::cout << endl;
return (header == RHD2000_HEADER_MAGIC_NUMBER);
}
I also inserted a similar line in Rhd2000DataBlock::fillFromUsbBuffer but this one did not fire:
void Rhd2000DataBlock::fillFromUsbBuffer(unsigned char usbBuffer[], int blockIndex, int numDataStreams, int nSamples)
{
......................
if (!checkUsbHeader(usbBuffer, index)) {
cerr << "Error in Rhd2000EvalBoard::readDataBlock: Incorrect header." << endl;
cout << "Rhd2000DataBlock::fillFromUsbBuffer " << printUsbHeader(usbBuffer, index);
break;
}
...................
Source node: Rhythm FPGA.
Connecting to audio and record nodes.
Connecting Rhythm FPGA 100 to Bandpass Filter 102
Source node: Bandpass Filter.
Connecting to audio and record nodes.
Connecting Bandpass Filter 102 to LFP Viewer 101
Source node: LFP Viewer.
NOT connecting to audio and record nodes.
No dest node.
Enabling processors...
Source node received enable signal
Expecting 35 channels.
Number of 16-bit words in FIFO: 0
Is eval board running: 0
Starting acquisition.
Flushing FIFO.
Expecting blocksize of 15600 for 1 streams
Resizing buffer. Samples: 10000, Inputs: 35
Enabling VisualizerEditor
Beginning animation.
Filter Viewport disabled.
Adding audio callback.
Threshold set to 2 <----------------------- me playing around with the GUI
transfer_B set to 0.870551
Threshold set to 6
transfer_B set to 0.698827
Threshold set to 12
transfer_B set to 0.608364
Threshold set to 17
transfer_B set to 0.567427
Threshold set to 22
transfer_B set to 0.538909
Threshold set to 28
transfer_B set to 0.513533
Threshold set to 33
transfer_B set to 0.496932
Threshold set to 38
transfer_B set to 0.483107
Threshold set to 40
transfer_B set to 0.478176
Threshold set to 44
transfer_B set to 0.469147
Threshold set to 47
transfer_B set to 0.462999
Threshold set to 49
transfer_B set to 0.459156
Threshold set to 50
transfer_B set to 0.457305
Threshold set to 52
transfer_B set to 0.453732
Threshold set to 55
transfer_B set to 0.44867
Threshold set to 58
transfer_B set to 0.44393
Threshold set to 61
transfer_B set to 0.439475
Threshold set to 64
transfer_B set to 0.435275
Threshold set to 68
transfer_B set to 0.430029
Threshold set to 72
transfer_B set to 0.425141
Threshold set to 75
transfer_B set to 0.421685
Threshold set to 78
transfer_B set to 0.41839
Threshold set to 81
transfer_B set to 0.415244
Threshold set to 82
transfer_B set to 0.414226
Threshold set to 83
transfer_B set to 0.413223
Threshold set to 85
transfer_B set to 0.41126
Threshold set to 87
transfer_B set to 0.409351
Threshold set to 89
transfer_B set to 0.407495
Threshold set to 91
transfer_B set to 0.405688
Threshold set to 94
transfer_B set to 0.403064
Threshold set to 97
transfer_B set to 0.40054
Threshold set to 100
transfer_B set to 0.398107
Threshold set to 98
transfer_B set to 0.399719
Threshold set to 94
transfer_B set to 0.403064
Threshold set to 82
transfer_B set to 0.414226
Threshold set to 72
transfer_B set to 0.425141
Threshold set to 62
transfer_B set to 0.438048
Threshold set to 50
transfer_B set to 0.457305
Threshold set to 39
transfer_B set to 0.480604
Threshold set to 28
transfer_B set to 0.513533
Threshold set to 20
transfer_B set to 0.54928
Threshold set to 16
transfer_B set to 0.574349
Threshold set to 13
transfer_B set to 0.598703
Threshold set to 10
transfer_B set to 0.630957
Threshold set to 8
transfer_B set to 0.659754
Threshold set to 7
transfer_B set to 0.677611
Threshold set to 6
transfer_B set to 0.698827
Threshold set to 3
transfer_B set to 0.802742
Threshold set to 0
transfer_B set to inf
Threshold set to 1
transfer_B set to 1
Threshold set to 0
transfer_B set to inf
Sources/Rhythm FPGA
Create subnodes with parameters
Moving forward along signal chain.
Filters/Bandpass Filter
Create subnodes with parameters
Moving forward along signal chain.
Sinks/LFP Viewer
Create subnodes with parameters
Moving forward along signal chain.
No processor found.
End of chain.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/all_channels_2.events
Writing header.
File ID: 0x7f31bc001bb0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/messages_2.events
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH1_2.continuous
Writing header.
File ID: 0x7f31bc0022f0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH2_2.continuous
Writing header.
File ID: 0x7f31bc002530, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH3_2.continuous
Writing header.
File ID: 0x7f31bc0008e0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH4_2.continuous
Writing header.
File ID: 0x7f31bc000b20, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH5_2.continuous
Writing header.
File ID: 0x7f31bc000d60, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH6_2.continuous
Writing header.
File ID: 0x7f31bc000fe0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH7_2.continuous
Writing header.
File ID: 0x7f31bc001280, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH8_2.continuous
Writing header.
File ID: 0x7f31bc001560, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH9_2.continuous
Writing header.
File ID: 0x7f31bc004be0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH10_2.continuous
Writing header.
File ID: 0x7f31bc004e20, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH11_2.continuous
Writing header.
File ID: 0x7f31bc005060, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH12_2.continuous
Writing header.
File ID: 0x7f31bc0052a0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH13_2.continuous
Writing header.
File ID: 0x7f31bc0054e0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH14_2.continuous
Writing header.
File ID: 0x7f31bc005750, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH15_2.continuous
Writing header.
File ID: 0x7f31bc005a00, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH16_2.continuous
Writing header.
File ID: 0x7f31bc005cb0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH29_2.continuous
Writing header.
File ID: 0x7f31bc005f60, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH30_2.continuous
Writing header.
File ID: 0x7f31bc006370, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH31_2.continuous
Writing header.
File ID: 0x7f31bc006620, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_CH32_2.continuous
Writing header.
File ID: 0x7f31bc0068d0, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_AUX1_2.continuous
Writing header.
File ID: 0x7f31bc006b80, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_AUX2_2.continuous
Writing header.
File ID: 0x7f31bc006e30, number of bytes: 1024
Wrote header.
OPENING FILE: /home/neurophys/Desktop/TEMP RECORDINGS/test/2017-02-17_21-49-46/100_AUX3_2.continuous
Writing header.
File ID: 0x7f31bc0070e0, number of bytes: 1024
Wrote header.
Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
42190227991991c6
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
5f7fcb7fa07f5d80
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
cd7e387f587fa27f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
487f737f997f4080
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
647ffa7f01805c80
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
137f307fec7ef27e
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
dd7fb47f517f6c7f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
b47f517fd77f917f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
aa7fa77fd77f8a7f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
0180e37fae7fb47f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
567f0c7ff07edb7e
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
8e7fd87fde7ebc7e
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
d37f1180897fcc7f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
ee7f1380dc7fb07f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
9c7f5f7fd77e957e
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
777f5d7fb77eb77e
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
bc7ff97fbe7fd47f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
4e7fbf7f487f677f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
997fb37f477f407f
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
d07f4b80d57f5b80
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
d77f2b80d97f0b80
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
4980a5808580f080
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
64809f800e808780
RHD2000Thread::updateBuffer 0Error in Rhd2000EvalBoard::readDataBlock: Incorrect header.
c97f32805980b97f
<------------------------------- goes forever if not closed