Module containing labscript suite hardware compatibility, separate from the main programs. Device compatibility is implemented with a plugin architecture, for modularity and extensibility. Each file in this module contains a labscript device class, a BLACS tab class, a BLACS worker class and a runviewer parser class for a particular device. These implement functionality for the device which the programs in question call on when they encounter each device in user labscript code, hdf5 files, or connection tables.
Original report (archived issue) by Chris Billington (Bitbucket: cbillington, GitHub: chrisjbillington).
I copied and pasted a lot of code to add functionality for a new NI card yesterday, because there is no base class to subclass from.
This looks possible, and so we should do it at some point: all NI cards should be fairly stub-like subclasses of a base class.