Skip to content

Commit b83cadf

Browse files
authored
Merge branch 'main' into trlemon/refactor-keithley2600-driver-fastsweep
2 parents cba622b + e174a5c commit b83cadf

File tree

6 files changed

+440
-22
lines changed

6 files changed

+440
-22
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add hold parameter, force_jump parameter, and set_event_jump method to the Tektronix AWG70000A driver for improved sequence control.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add TektronixDPOAcquisition, TektronixDPOCursor, and TektronixDPOMeasurementImmediate modules to the Tektronix DPO7200xx driver. Enhanced TektronixDPOTrigger with ready, state, and level parameters. Added coupling parameter to TektronixDPOChannel.

docs/examples/basic_examples/15_minutes_to_QCoDeS.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1563,7 +1563,7 @@
15631563
"metadata": {},
15641564
"source": [
15651565
"### QCoDeS instrument drivers\n",
1566-
"We support and provide drivers for most of the instruments currently in use at the Microsoft stations. However, if more functionalities than the ones which are currently supported by drivers are required, one may update the driver or request the features form QCoDeS team. You are more than welcome to contribute and if you would like to have a quick overview on how to write instrument drivers, please refer to the [this notebook](../writing_drivers/Instruments.ipynb) as well as the other [example notebooks on writing drivers](../writing_drivers/index.rst)."
1566+
"We support and provide drivers for most of the instruments currently in use at the Microsoft stations. However, if more functionalities than the ones which are currently supported by drivers are required, one may update the driver or request the features from the QCoDeS team. You are more than welcome to contribute and if you would like to have a quick overview on how to write instrument drivers, please refer to the [this notebook](../writing_drivers/Instruments.ipynb) as well as the other [example notebooks on writing drivers](../writing_drivers/index.rst)."
15671567
]
15681568
},
15691569
{

requirements.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ comm==0.2.3
5454
# ipywidgets
5555
contourpy==1.3.3
5656
# via matplotlib
57-
coverage==7.13.3
57+
coverage==7.13.4
5858
# via
5959
# qcodes (pyproject.toml)
6060
# pytest-cov
@@ -102,7 +102,7 @@ h5py==3.15.1
102102
# qcodes-loop
103103
hickle==5.0.3
104104
# via qcodes-loop
105-
hypothesis==6.151.5
105+
hypothesis==6.151.6
106106
# via qcodes (pyproject.toml)
107107
idna==3.11
108108
# via requests
@@ -262,13 +262,13 @@ pandas-stubs==3.0.0.260204
262262
# via qcodes (pyproject.toml)
263263
pandocfilters==1.5.1
264264
# via nbconvert
265-
parso==0.8.5
265+
parso==0.8.6
266266
# via jedi
267267
partd==1.4.2
268268
# via dask
269269
pathspec==1.0.4
270270
# via mypy
271-
pillow==12.1.0
271+
pillow==12.1.1
272272
# via
273273
# qcodes (pyproject.toml)
274274
# matplotlib
@@ -453,7 +453,7 @@ traitlets==5.14.3
453453
# nbsphinx
454454
types-jsonschema==4.26.0.20260202
455455
# via qcodes (pyproject.toml)
456-
types-networkx==3.6.1.20251220
456+
types-networkx==3.6.1.20260210
457457
# via qcodes (pyproject.toml)
458458
types-pytz==2025.2.0.20251108
459459
# via pandas-stubs

src/qcodes/instrument_drivers/tektronix/AWG70000A.py

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import xml.etree.ElementTree as ET
99
import zipfile as zf
1010
from functools import partial
11-
from typing import TYPE_CHECKING, Any
11+
from typing import TYPE_CHECKING, Any, Literal, Self
1212

1313
import numpy as np
1414
import numpy.typing as npt
@@ -191,15 +191,26 @@ def __init__(
191191
if channel not in list(range(1, num_channels + 1)):
192192
raise ValueError("Illegal channel value.")
193193

194-
self.state: Parameter = self.add_parameter(
194+
self.state: Parameter[int, Self] = self.add_parameter(
195195
"state",
196196
label=f"Channel {channel} state",
197197
get_cmd=f"OUTPut{channel}:STATe?",
198198
set_cmd=f"OUTPut{channel}:STATe {{}}",
199199
vals=vals.Ints(0, 1),
200200
get_parser=int,
201201
)
202-
"""Parameter state"""
202+
"""Channel State: (OFF: 0, ON: 1)"""
203+
204+
self.hold: Parameter[Literal["FIRST", "ZERO"], Self] = self.add_parameter(
205+
"hold",
206+
label=f"Channel {channel} hold value",
207+
get_cmd=f"OUTPut{channel}:WVALUE:ANALOG:STATE?",
208+
set_cmd=f"OUTPut{channel}:WVALUE:ANALOG:STATE {{}}",
209+
vals=vals.Enum("FIRST", "ZERO"),
210+
)
211+
""" the output condition of a waveform of the specified
212+
channel to hold while the instrument is in the waiting-for-trigger state.
213+
ZERO = 0V, FIRST = first value of next sequence"""
203214

204215
##################################################
205216
# FGEN PARAMETERS
@@ -587,6 +598,14 @@ def __init__(
587598
)
588599
"""Parameter all_output_off"""
589600

601+
self.force_jump: Parameter[int, Self] = self.add_parameter(
602+
"force_jump",
603+
label="Force Jump",
604+
set_cmd="SOURCE1:JUMP:FORCE {}",
605+
vals=vals.Ints(1, 16383),
606+
)
607+
"""Parameter force_jump"""
608+
590609
add_channel_list = self.num_channels > 2
591610
# We deem 2 channels too few for a channel list
592611
if add_channel_list:
@@ -619,6 +638,23 @@ def __init__(
619638

620639
self.connect_message()
621640

641+
def set_event_jump(
642+
self, sequence_name: str, current_step: int, next_step: int
643+
) -> None:
644+
"""
645+
Set event jump for a given step in the sequence
646+
647+
Args:
648+
sequence_name: The name of the sequence
649+
current_step: The step number in the sequence (1-indexed)
650+
next_step: The step number to jump to (1-indexed)
651+
652+
"""
653+
654+
self.write(
655+
f"SLISt:SEQuence:STEP{current_step}:EJUMp {sequence_name}, {next_step}"
656+
)
657+
622658
def force_triggerA(self) -> None:
623659
"""
624660
Force a trigger A event

0 commit comments

Comments
 (0)