Skip to content
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

Cross platform incompatible parts fixed #35

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

kivancgnlp
Copy link

Tested on MacOS and Ubuntu Linux. There still some parts need modification for MacOS.

@anjaldoshi
Copy link
Collaborator

Hi @kivancgnlp,

Thank you for submitting this PR.

I wanted to get some clarity on the motivation behind this change. Currently, the Neuropixels API is only available for Windows, so the cross-platform fixes you've implemented won't be effective until the API is also available for Linux and macOS. We're waiting on the release of the Neuropixels API source code, which will allow us to compile the library for these platforms. Until then, the plugin will remain Windows-only.

I even attempted to compile your changes on my Fedora 40 Linux system, but the build fails at the final step. It incorrectly tries to link the Windows-specific Neuropixels library to the plugin. To resolve this, I had to update the CMakeLists.txt here to only link the libraries when building on Windows. After making that change, the plugin built successfully but failed to load in the GUI because it couldn't find the necessary Neuropixels library symbols.

[open-ephys] ***ERROR*** neuropixels-pxi.so: undefined symbol: setGain
[open-ephys] ***ERROR*** neuropixels-pxi.so Load FAILED

Could you confirm how you tested this on your end? Please let me know if there's something I'm overlooking.

@anjaldoshi anjaldoshi self-requested a review August 15, 2024 17:52
@kontexio
Copy link

hello @anjaldoshi Thanks for the getting back to us. We are currently refreshing the Gen2 XDAQs to support Neuropixels and the new implementation will support all three platforms. This is a courtesy request in case you are interested.

kivancgnlp and others added 5 commits August 16, 2024 07:50
…on in "C" global namespace

np::close() function was colliding with the file systems's close() function in "C" linkage
… collision in "C" global namespace"

This reverts commit 2b2f457.
@kivancgnlp
Copy link
Author

kivancgnlp commented Aug 17, 2024

Hi @anjaldoshi, I've recently tested the OE Plugin on Ubuntu 22 and saw it is working without problem. I've also added mock NPAPI libraries so you can test it without a hardware dependency. ( Mock libraries is in "kontex-neuro/neuropixels-pxi" repository )

@jsiegle
Copy link
Collaborator

jsiegle commented Aug 18, 2024

Is the plan to create a version of the Neuropixels API that communicates with XDAQ hardware instead of IMEC's basestations? If so, we will probably want to release this as a separate plugin (e.g. "XDAQ Neuropixels"), so users are sure to install the right version for their hardware. We can do that by forking the plugin from the kontex-neuro account, similar to how we released the XDAQ plugin for Intan headstages.

@kontexio
Copy link

Yes, we will be releasing a separate plugin, as you suggested. We are notifying you as a courtesy in case you are ever interested in porting to other platforms.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants