-
Notifications
You must be signed in to change notification settings - Fork 15
Description
A few of us have discussed offline about the need for updating the code to better enable real-time experiments with simultaneous electrophysiology. The consensus way to address this problem is to synchronize the state of the panel with the electrophysiology data acquisition by making every change in state of the panel an Event instance. The event can then be logged and also sent to a separate interface for integration with any recording data.
There are multiple ways we could implement this, but the fundamentals would be: Each event instance is given a unique ID. The instance will contain all information related to the change in the panel state. Either the unique ID or a serialized dump of the full instance would then be sent to a custom interface.
This would require three main additions:
- Custom interface for recording software
- Currently OpenEphys seems to be needed most
- EventStore class that stores events in standardized way
- This could be implemented as the SubjectStore class is in the Major experiment refactoring #100
- Additional data storage might be necessary (SQLite, MongoDB, etc?)
- Each interface would have to be modified to output an event instance as right before an output or right after it receives an input (only if the input evaluates to true?)
- Timing is of utmost importance here, so while it might be nice to do this at the level of the component or the hwio, I'm not sure if these would be too slow.
I'll see if I can come up with a suggested implementation shortly.