-
Notifications
You must be signed in to change notification settings - Fork 5
Move Probe Interface configuration files to external JSON files #481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Removed the #nullable enable preprocessor directives - Changed public property to be ProbeInterfaceFileName - Remove private backing field, and also remove custom logic to enforce .json extension in manually typed filenames - Added SaveFileNameEditor to all ProbeInterfaceFileName properties - Modified comments to be more explicit in that the obsolete properties/methods will be removed in 1.0.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely on the right track. Lets go back and forth in the discussion
Below is a distilled list of the comments that exist above, given as verbal feedback during our issue sorting meeting. Need to go through and make sure that all comments above are resolved, even if they do not appear in this list.
|
@jonnew Here are my responses to your review: Change the filename
![]() Display default filename grayed out
![]() Incoherence in Naming/LoadingI agree with points 1/2 in principle, the probe interface filename should be a part of the probe configuration, as it is theoretically on the same level as the calibration files.
For point 3, I’ll make the names consistent. To clarify: the GUI’s load/save menu updates the electrode mapping currently in memory, while the Other Miscellaneous CommentsUpdated the XML comments with a link to the issue that prevents us from tagging certain properties as Also, converted the existing Gain/Adc calibration files to have Outstanding Questions
|
I've tested removing the Base64 conversion in the XML string, and it seems to work correctly; looking back at my notes from when I first developed this, I added the Base64 conversion out of an abundance of caution to avoid even the possibility of an unescaped character causing issues. Based on this, we could keep the probe configuration embedded in the Bonsai file in a more human readable format. It still is a lot of text, and I'm not sure how easily it can be version controlled, but it should work. I wanted to clarify one thing we discussed yesterday; if we keep the configuration in the Bonsai file, we also discussed keeping the filename but only saving/loading to that location if the user specifies it.I'm assuming that the filename would be the priority, so whatever the contents are of the JSON file are what is actually loaded into Bonsai, even though we also have a configuration in the Bonsai file, but I wanted to clarify before moving forward. |
Overview
This PR refactors how probe configuration data is stored and managed across
Neuropixels 1.0
,Neuropixels 2.0
, andRHS2116
devices. The main changes involve externalizing probe interface files into JSON format and improving error handling around file operations.Key Changes
ProbeConfiguration
classes for better encapsulationProbeInterfaceFile
properties to manage external JSON configuration filesGenericPropertyConverter
for better property management in UIBreaking Changes
Calibration file properties have been moved:
ConfigureNeuropixelsV1
/ConfigureNeuropixelsV2
classes to their respectiveProbeConfiguration
classesConfiguration files are now stored externally:
ProbeInterfaceFile
propertyMigration Guide
For existing workflows:
Neuropixels 1.0f
andNeuropixels 2.0e/Beta
probes. Due to how the properties are organized forNeuropixels 1.0e
they cannot be automatically migrated.Fixes #366