Draft: Add special behaviour for Keithley 2470 which cannot be used with calibration sequences
dirigent 4.0.0 throws a "USB: device busy" exception from Keithley2470's PyVisa interface when trying to run an iv_curve as part of a calibration sequence e.g. assembly_test.
The issue is that the USB interface of the Keithley2470 does not allow more than one connection to it at the same time (i.e. running enter without the other running exit first).
For calibration sequence support, dirigent creates a primary InstrumentCluster instance (coldbox control, HV monitoring, ...), and secondary InstrumentCluster instances for each calibration (powering LV, and ramping HV in iv_curve, ...). Some special exception for the current functionality will have to be made to support the Keithley 2470.
Implementation plan:
-
Close the initial Keithley 2470 connection in the primary InstrumentCluster instance (e.g. run exit(),close(),disconnect(), ...), and rely on the secondary InstrumentCluster instances to control the power supply from within each calibration. -
Implement a switch which either does or does not pass the --no-monitoringflag to the secondary dirigent instances. -
Control which instruments are sent to calibrations if the Keithley 2470 is present -
Turn off primary instance monitoring if Keithley 2470 is present.
Closes issue #42
Edited by Matthew Lewis Franks