@@ -27,14 +27,14 @@ using namespace OnixSourcePlugin;
2727Neuropixels2e::Neuropixels2e (std::string name, std::string hubName, const oni_dev_idx_t deviceIdx_, std::shared_ptr<Onix1> ctx_)
2828 : OnixDevice (name, hubName, Neuropixels2e::getDeviceType(), deviceIdx_, ctx_, true),
2929 I2CRegisterContext (ProbeI2CAddress, deviceIdx_, ctx_),
30- INeuropixel (NeuropixelsV2eValues::numberOfSettings, NeuropixelsV2eValues::numberOfShanks )
30+ INeuropixel (NeuropixelsV2eValues::numberOfSettings, NeuropixelsV2eValues::quadShankCount )
3131{
3232 frameCount.fill (0 );
3333 sampleNumber.fill (0 );
3434
3535 for (int i = 0 ; i < NeuropixelsV2eValues::numberOfSettings; i++)
3636 {
37- defineMetadata (settings[i].get ());
37+ defineMetadata (settings[i].get (), ProbeType::NPX_V2_QUAD_SHANK );
3838 }
3939
4040 for (int i = 0 ; i < NumberOfProbes; i++)
@@ -592,7 +592,7 @@ void Neuropixels2e::processFrames()
592592 }
593593}
594594
595- void Neuropixels2e::writeConfiguration (ProbeSettings<numberOfChannels, numberOfElectrodes> * settings)
595+ void Neuropixels2e::writeConfiguration (ProbeSettings* settings)
596596{
597597 auto baseBits = makeBaseBits (getReference (settings->referenceIndex ));
598598 writeShiftRegister (SR_CHAIN5, baseBits[0 ]);
@@ -710,7 +710,7 @@ Neuropixels2e::BaseBitsArray Neuropixels2e::makeBaseBits (NeuropixelsV2Reference
710710 return baseBits;
711711}
712712
713- Neuropixels2e::ShankBitsArray Neuropixels2e::makeShankBits (NeuropixelsV2Reference reference, std::array <ElectrodeMetadata, numberOfElectrodes > channelMap)
713+ Neuropixels2e::ShankBitsArray Neuropixels2e::makeShankBits (NeuropixelsV2Reference reference, std::vector <ElectrodeMetadata> channelMap)
714714{
715715 ShankBitsArray shankBits;
716716
@@ -760,7 +760,7 @@ Neuropixels2e::ShankBitsArray Neuropixels2e::makeShankBits (NeuropixelsV2Referen
760760 return shankBits;
761761}
762762
763- void Neuropixels2e::setSettings (ProbeSettings<NeuropixelsV2eValues::numberOfChannels, NeuropixelsV2eValues::numberOfElectrodes> * settings_, int index)
763+ void Neuropixels2e::setSettings (ProbeSettings* settings_, int index)
764764{
765765 if (index >= settings.size ())
766766 {
@@ -771,12 +771,13 @@ void Neuropixels2e::setSettings (ProbeSettings<NeuropixelsV2eValues::numberOfCha
771771 settings[index]->updateProbeSettings (settings_);
772772}
773773
774- void Neuropixels2e::defineMetadata (ProbeSettings<numberOfChannels, numberOfElectrodes> * settings)
774+ void Neuropixels2e::defineMetadata (ProbeSettings* settings, ProbeType probeType )
775775{
776- auto shankCount = NeuropixelsV2eValues::numberOfShanks ;
776+ settings-> probeType = probeType ;
777777
778- settings->probeType = ProbeType::NPX_V2;
779- settings->probeMetadata .name = " Neuropixels 2.0e" + (shankCount == 1 ) ? " - Single Shank" : " - Quad Shank" ;
778+ auto shankCount = probeType == ProbeType::NPX_V2_QUAD_SHANK ? NeuropixelsV2eValues::quadShankCount : NeuropixelsV2eValues::singleShankCount;
779+
780+ settings->probeMetadata .name = " Neuropixels 2.0e" + (probeType == ProbeType::NPX_V2_QUAD_SHANK) ? " - Single Shank" : " - Quad Shank" ;
780781
781782 constexpr float shankTipY = 0 .0f ;
782783 constexpr float shankBaseY = 155 .0f ;
@@ -787,8 +788,8 @@ void Neuropixels2e::defineMetadata (ProbeSettings<numberOfChannels, numberOfElec
787788 constexpr float shankPitchX = 250 .0f ;
788789
789790 std::vector<std::array<float , 2 >> probeContour {
790- { 0 , probeLengthY },
791- { 0 , shankLengthY },
791+ {0 , probeLengthY},
792+ {0 , shankLengthY},
792793 };
793794
794795 for (int i = 0 ; i < shankCount; i++)
@@ -805,11 +806,11 @@ void Neuropixels2e::defineMetadata (ProbeSettings<numberOfChannels, numberOfElec
805806 probeContour.emplace_back (std::array<float , 2 > { 0 .0f , probeLengthY });
806807
807808 std::vector<std::array<float , 2 >> shankOutline {
808- { 27 , 31 },
809- { 27 , 514 },
810- { 27 + 5 , 522 },
811- { 27 + 10 , 514 },
812- { 27 + 10 , 31 }
809+ { 27 , 31 },
810+ { 27 , 514 },
811+ { 27 + 5 , 522 },
812+ {27 + 10 , 514 },
813+ {27 + 10 , 31 }
813814 };
814815
815816 settings->probeMetadata .shank_count = shankCount;
@@ -821,14 +822,6 @@ void Neuropixels2e::defineMetadata (ProbeSettings<numberOfChannels, numberOfElec
821822 settings->probeMetadata .num_adcs = 24 ;
822823 settings->probeMetadata .adc_bits = 12 ;
823824
824- settings->availableBanks = {
825- Bank::A,
826- Bank::B,
827- Bank::C,
828- Bank::D,
829- Bank::NONE // disconnected
830- };
831-
832825 for (int i = 0 ; i < settings->probeMetadata .electrodes_per_shank * settings->probeMetadata .shank_count ; i++)
833826 {
834827 ElectrodeMetadata metadata;
0 commit comments