Refactor Keithley 2600 driver to use ParameterWithSetpoints for fast sweep#7851
Refactor Keithley 2600 driver to use ParameterWithSetpoints for fast sweep#7851trlemon wants to merge 42 commits intomicrosoft:mainfrom
ParameterWithSetpoints for fast sweep#7851Conversation
…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% 60.80% +0.24%
==========================================
Files 333 333
Lines 32245 32351 +106
==========================================
+ Hits 19529 19671 +142
+ Misses 12716 12680 -36 ☔ 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
astafan8
left a comment
There was a problem hiding this comment.
is it ready for the final review, can it exit the draft mode? :)
|
@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 <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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