This PR factors out existing hardware drivers into their own directory. Driver model is now object based rather than multimethod based. Additional drivers may be implemented by creating a new subclass of AWGDriver & AWG and implementing a Pattern file.
The *Pattern files may be merged into the driver classes if we like but this is a pretty minimal set of changes relative to the existing develop baseline.
The new instruments/drivers directory is searched looking for classes which are instances of AWG. These classes are automatically registered in the AWGList and then populated in the GUI.
I have purposefully separated the AWGDriver class from the AWG class to make it clear which methods are intended to be overridden by new drivers.
This PR factors out existing hardware drivers into their own directory. Driver model is now object based rather than multimethod based. Additional drivers may be implemented by creating a new subclass of AWGDriver & AWG and implementing a Pattern file.
The *Pattern files may be merged into the driver classes if we like but this is a pretty minimal set of changes relative to the existing develop baseline.
The new instruments/drivers directory is searched looking for classes which are instances of AWG. These classes are automatically registered in the AWGList and then populated in the GUI.
I have purposefully separated the AWGDriver class from the AWG class to make it clear which methods are intended to be overridden by new drivers.