@@ -455,13 +455,16 @@ void RHD2000Thread::initializeBoard()
455455
456456}
457457
458+ #define PRINT_ARRAYS for (int i = 0 ; i < MAX_NUM_HEADSTAGES; i++) {\
459+ std::cout << " c" << chipId[i] << " t" << tmpChipId[i] << " s" << sumGoodDelays[i] << " if" << indexFirstGoodDelay[i] << " is" << indexSecondGoodDelay[i] << std::endl;}
460+
458461void RHD2000Thread::scanPorts ()
459462{
460463 if (!deviceFound) // Safety to avoid crashes if board not present
461464 {
462465 return ;
463466 }
464-
467+ std::cout << " Scanning " << std::endl;
465468 impedanceThread->stopThreadSafely ();
466469 // Clear previous known streams
467470 enabledStreams.clear ();
@@ -541,6 +544,8 @@ void RHD2000Thread::scanPorts()
541544 Array<int > indexSecondGoodDelay;
542545 indexSecondGoodDelay.insertMultiple (0 , -1 , MAX_NUM_HEADSTAGES);
543546
547+ PRINT_ARRAYS;
548+
544549
545550 // Run SPI command sequence at all 16 possible FPGA MISO delay settings
546551 // to find optimum delay for each SPI interface cable.
@@ -567,15 +572,17 @@ void RHD2000Thread::scanPorts()
567572 ;
568573 }
569574 // Read the resulting single data block from the USB interface.
570- evalBoard->readDataBlock (dataBlock, INIT_STEP);
575+ evalBoard->readDataBlock (dataBlock. get () , INIT_STEP);
571576
572577 // Read the Intan chip ID number from each RHD2000 chip found.
573578 // Record delay settings that yield good communication with the chip.
574579 for (hs = 0 ; hs < MAX_NUM_HEADSTAGES; ++hs)// MAX_NUM_DATA_STREAMS; ++stream)
575580 {
576- // std::cout << "Stream number " << stream << ", delay = " << delay << std::endl;
581+ std::cout << " Stream number " << hs << " , delay = " << delay << std::endl;
582+ dataBlock->print (hs);
577583
578584 id = deviceId (dataBlock, hs, register59Value);
585+ std::cout << " h " << hs << " id " << id << std::endl;
579586
580587 if (id == CHIP_ID_RHD2132 || id == CHIP_ID_RHD2216 ||
581588 (id == CHIP_ID_RHD2164 && register59Value == REGISTER_59_MISO_A))
@@ -597,15 +604,22 @@ void RHD2000Thread::scanPorts()
597604 }
598605 }
599606 }
600-
607+ PRINT_ARRAYS;
608+ std::cout << " s: " << enabledStreams.size () << std::endl;
609+ for (int i = 0 ; i < enabledStreams.size (); i++)
610+ std::cout << " s " << enabledStreams[i];
611+
612+ std::cout << " n: " << numChannelsPerDataStream.size () << std::endl;
613+ for (int i = 0 ; i < numChannelsPerDataStream.size (); i++)
614+ std::cout << " n " << numChannelsPerDataStream[i];
601615 // Now, disable data streams where we did not find chips present.
602616 int chipIdx = 0 ;
603617 for (hs = 0 ; hs < MAX_NUM_HEADSTAGES; ++hs)
604618 {
605619 if ((tmpChipId[hs] > 0 ) && (enabledStreams.size () < MAX_NUM_DATA_STREAMS))
606620 {
607621 chipId.set (chipIdx++,tmpChipId[hs]);
608- // std::cout << "Enabling headstage on stream " << stream << std::endl;
622+ std::cout << " Enabling headstage on stream " << hs << std::endl;
609623 if (tmpChipId[hs] == CHIP_ID_RHD2164) // RHD2164
610624 {
611625 if (enabledStreams.size () < MAX_NUM_DATA_STREAMS - 1 )
@@ -625,9 +639,17 @@ void RHD2000Thread::scanPorts()
625639 }
626640 else
627641 {
642+ std::cout << " Disabling headstage on stream " << hs << std::endl;
628643 enableHeadstage (hs, false );
629644 }
630645 }
646+ std::cout << " s: " << enabledStreams.size () << std::endl;
647+ for (int i = 0 ; i < enabledStreams.size (); i++)
648+ std::cout << " s " << enabledStreams[i];
649+
650+ std::cout << " n: " << numChannelsPerDataStream.size () << std::endl;
651+ for (int i = 0 ; i < numChannelsPerDataStream.size (); i++)
652+ std::cout << " n " << numChannelsPerDataStream[i];
631653
632654// for (int i = 0; i < 16; i++)
633655// enableHeadstage(i, true, 2, 32);
0 commit comments