Refactor Keithley 2600 driver to use ParameterWithSetpoints for fast sweep#7851
Conversation
…s://github.com/trlemon/Qcodes into trlemon/refactor-keithley2600-driver-fastsweep
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #7851 +/- ##
==========================================
+ Coverage 60.56% 70.30% +9.73%
==========================================
Files 333 333
Lines 32245 32401 +156
==========================================
+ Hits 19529 22778 +3249
+ Misses 12716 9623 -3093 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…s://github.com/trlemon/Qcodes into trlemon/refactor-keithley2600-driver-fastsweep
…s://github.com/trlemon/Qcodes into trlemon/refactor-keithley2600-driver-fastsweep
|
@trlemon This needs a rebase / merge probably because of the 4 wire pr that was merged |
There was a problem hiding this comment.
Pull request overview
Refactors the Keithley 2600 fast sweep implementation away from qcodes_loop by introducing a ParameterWithSetpoints-based API (setup_fastsweep + fastsweep) that returns NumPy arrays and supports both 1D and 2D buffered sweeps.
Changes:
- Added
setup_fastsweepconfiguration method and rewrote fast sweep execution to use on-instrument Lua scripts viaParameterWithSetpoints. - Added 1D/2D fast sweep configuration + execution tests (including channel detection and reconfiguration regression coverage).
- Added a changelog newsfragment describing the driver change (and marking it as breaking).
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| tests/drivers/test_keithley_26xx.py | Adds tests for 1D/2D fast sweep configuration, execution shaping, channel inference, and reconfiguration regression. |
| src/qcodes/instrument_drivers/Keithley/_Keithley_2600.py | Introduces _FastSweepConfig, setup_fastsweep, and rewrites fastsweep as a ParameterWithSetpoints using Lua scripts. |
| docs/changes/newsfragments/7851.improved_driver | Documents the breaking fast sweep API change in the changelog. |
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
|
@trlemon Could you have a look at the last copilot review comments. Other than that this should be good to merge |
@jenshnielsen I have responded to Copilot review comments, so I believe this should be ready for merge. |
Background
The
doFastSweepmethod relies on "old" technology fromqcodes_loop, and it also returns a Qcodes dataset which may not be desirable for all applications. Instead, it would be better to useParameterWithSetpointsand return a numpy array.Summary of Changes
qcodes_loop