-
Notifications
You must be signed in to change notification settings - Fork 0
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
Check Port Status during acquisition #14
Conversation
- Add PortController as an OnixDevice, implement the necessary methods - Add PortController devices to the FrameReader so the IDs are processed
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.
During our meeting we found that since this error originates in updateBuffer(), the shutdown process may be actually being executed by the DataThread which seems to be resulting in some multithreading issues. More investigation is needed to make sure that the system shuts down properly if lock is lost during acquisition.
- Correctly parses the data frame from a Port Controller - Run startAcquisition for the port control devices - Modified language when unable to acquire the communication lock
- Rename enableDevice to configureDevice - Only update Neuropixels settings when the device is enabled
- Upon testing, the previous configuration could delete buffers before they were cleared, leading to invalid behavior. Now, the plugin reports that it cannot record so the user cannot start acquisition again without disconnecting/reconnecting the hardware
This PR adds the
PortController
as a fullOnixDevice
, which allows it to add and process frames during acquisition. This device is not expected to receive frames very often, or really ever, unless something happens and the lock is lost. If this occurs, anerrorFlag
is raised in the specific Port device, and acquisition is halted.Before merging; please confirm that if the lock is lost the behavior stops as expected. e.g., cut power to the port during acquisition and confirm behavior. This is difficult for me to do remotely.