From f15f0a82cc2915961984cdd10e175a252f2c51b1 Mon Sep 17 00:00:00 2001 From: bparks13 Date: Mon, 27 Oct 2025 16:18:41 -0400 Subject: [PATCH] Add device metadata to Neuropixels probes - Define the number of ADCs per probe --- Source/OnixSource.cpp | 45 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/Source/OnixSource.cpp b/Source/OnixSource.cpp index 76946ba..96670af 100644 --- a/Source/OnixSource.cpp +++ b/Source/OnixSource.cpp @@ -820,7 +820,20 @@ void OnixSource::updateSettings (OwnedArray* continuousChanne "imec" }; - deviceInfos->add (new DeviceInfo (deviceSettings)); + auto device = new DeviceInfo (deviceSettings); + + MetadataDescriptor descriptor (MetadataDescriptor::MetadataType::UINT16, + 1, + "num_adcs", + "Number of analog-to-digital converter for this probe", + "neuropixels.adcs"); + + MetadataValue value (MetadataDescriptor::MetadataType::UINT16, 1); + value.setValue ((uint16) std::static_pointer_cast (source)->settings[0]->probeMetadata.num_adcs); + + device->addMetadata (descriptor, value); + + deviceInfos->add (device); addIndividualStreams (source->streamInfos, dataStreams, deviceInfos, continuousChannels); } @@ -856,7 +869,20 @@ void OnixSource::updateSettings (OwnedArray* continuousChanne "imec" }; - deviceInfos->add (new DeviceInfo (deviceSettings)); + auto device = new DeviceInfo (deviceSettings); + + MetadataDescriptor descriptor (MetadataDescriptor::MetadataType::UINT16, + 1, + "num_adcs", + "Number of analog-to-digital converter for this probe", + "neuropixels.adcs"); + + MetadataValue value (MetadataDescriptor::MetadataType::UINT16, 1); + value.setValue ((uint16) std::static_pointer_cast (source)->settings[0]->probeMetadata.num_adcs); + + device->addMetadata (descriptor, value); + + deviceInfos->add (device); addIndividualStreams (source->streamInfos, dataStreams, deviceInfos, continuousChannels); } @@ -937,7 +963,20 @@ void OnixSource::updateSettings (OwnedArray* continuousChanne "imec" }; - deviceInfos->add (new DeviceInfo (deviceSettings)); + auto device = new DeviceInfo (deviceSettings); + + MetadataDescriptor descriptor (MetadataDescriptor::MetadataType::UINT16, + 1, + "num_adcs", + "Number of analog-to-digital converter for this probe", + "neuropixels.adcs"); + + MetadataValue value (MetadataDescriptor::MetadataType::UINT16, 1); + value.setValue ((uint16) std::static_pointer_cast (source)->settings[0]->probeMetadata.num_adcs); + + device->addMetadata (descriptor, value); + + deviceInfos->add (device); addIndividualStreams (source->streamInfos, dataStreams, deviceInfos, continuousChannels); }