@@ -316,18 +316,22 @@ int Neuropixels2e::configureDevice()
316316 LOGD (" Probe A SN: " , probeMetadata[0 ].getProbeSerialNumber ());
317317 LOGD (" Probe B SN: " , probeMetadata[1 ].getProbeSerialNumber ());
318318
319- if (probeMetadata[0 ].getProbeSerialNumber () == 0 && probeMetadata[1 ].getProbeSerialNumber () == 0 )
320- {
321- m_numProbes = 0 ;
322- throw error_str (" No probes were found connected at address " + std::to_string (getDeviceIdx ()));
323- }
324- else if (probeMetadata[0 ].getProbeSerialNumber () != 0 && probeMetadata[1 ].getProbeSerialNumber () != 0 )
319+ m_numProbes = 0 ;
320+
321+ for (int i = 0 ; i < NumberOfProbes; i++)
325322 {
326- m_numProbes = 2 ;
323+ if (probeMetadata[i].getProbeSerialNumber () != 0 )
324+ {
325+ settings[i]->connected = true ;
326+ m_numProbes++;
327+ }
328+ else
329+ settings[i]->connected = false ;
327330 }
328- else
331+
332+ if (m_numProbes == 0 )
329333 {
330- m_numProbes = 1 ;
334+ throw error_str ( " No probes were found connected at address " + std::to_string ( getDeviceIdx ())) ;
331335 }
332336
333337 streamInfos.clear ();
@@ -342,9 +346,9 @@ int Neuropixels2e::configureDevice()
342346
343347bool Neuropixels2e::updateSettings ()
344348{
345- for (int i = 0 ; i < 2 ; i++)
349+ for (int i = 0 ; i < NumberOfProbes ; i++)
346350 {
347- if (probeMetadata [i]. getProbeSerialNumber () != 0 )
351+ if (settings [i]-> connected )
348352 {
349353 if (! NeuropixelsProbeMetadata::validateProbeTypeAndPartNumber (settings[i]->probeType , probeMetadata[i]))
350354 {
@@ -416,7 +420,7 @@ bool Neuropixels2e::updateSettings()
416420
417421 for (int i = 0 ; i < NumberOfProbes; i++)
418422 {
419- if (probeMetadata [i]. getProbeSerialNumber () != 0 )
423+ if (settings [i]-> connected )
420424 {
421425 selectProbe (serializer.get (), i == 0 ? ProbeASelected : ProbeBSelected);
422426 writeConfiguration (settings[i].get ());
@@ -554,7 +558,7 @@ void Neuropixels2e::addSourceBuffers (OwnedArray<DataBuffer>& sourceBuffers)
554558 if (m_numProbes == 1 )
555559 {
556560 sourceBuffers.add (new DataBuffer (streamInfos.getFirst ().getNumChannels (), (int ) streamInfos.getFirst ().getSampleRate () * bufferSizeInSeconds));
557- auto bufferIndex = probeMetadata [0 ]. getProbeSerialNumber () != 0 ? 0 : 1 ;
561+ auto bufferIndex = settings [0 ]-> connected ? 0 : 1 ;
558562 amplifierBuffer[bufferIndex] = sourceBuffers.getLast ();
559563 }
560564 else
0 commit comments