Migrate most PVCam code into a generic Camera architecture
Most of the code developed for the PVCam devices can also be used for any type of camera. This code should all be moved out to a generic Camera class. Individual camera types can extend this class and reimplement any camera-specific functions needed.
Generic class should handle:
- Acquire thread
- Tasks
- Scope integration
- DAQ trigger/exposure integration
- protocol/device interface
- reinterpretation of frame times based on DAQ data (using LED flash fiducial if required)
All subclasses will need to reimplement getParams/setParams functions, and should translate some parameter names into a standard set: binning, exposure, region, triggerMode, exposureMode, etc.
It would be awesome if we can make scanning laser imaging systems work within this framework as well, and in principle should be doable (and in some cases it will be easier).