Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
045f130
Add value types to Keysight driver parameters
jenshnielsen Oct 22, 2026
48a2f7b
Add value types to Keithley, HP and Agilent driver parameters
jenshnielsen Oct 22, 2026
089956f
Add value types to Tektronix and Rigol driver parameters
jenshnielsen Oct 22, 2026
19e3b06
Add value types to R&S and SRS driver parameters
jenshnielsen Oct 22, 2026
d9cca43
Add value types to Alazar, AMI, Oxford and Yokogawa parameters
jenshnielsen Oct 22, 2026
49bccda
Add value types to remaining driver parameters
jenshnielsen Oct 22, 2026
398605a
Parse Keithley 2450 count and line frequency as int
jenshnielsen Oct 22, 2026
0d512d8
Parse SR86x captured kilobytes as int
jenshnielsen Oct 22, 2026
048d3e4
Fix Rigol DS4000 enable_auto_scale
jenshnielsen Oct 22, 2026
6b68ce1
Use seconds as unit of Keithley 7510 digitize aperture
jenshnielsen Oct 22, 2026
bccd712
Fix RTO1000 trigger_mode querying the trigger source
jenshnielsen Oct 22, 2026
74bca0c
Remove stray '?' from Keithley 6500 digits set command
jenshnielsen Oct 22, 2026
7afa14d
Fix B1500 pch_query missing the '?'
jenshnielsen Oct 22, 2026
a2bc12f
Only allow Lakeshore 325 high output range on loop 1
jenshnielsen Oct 22, 2026
2dfbbfb
Remove unused vals from Rigol DG1062 polarity
jenshnielsen Oct 22, 2026
3de7948
Parse Keithley 2450 nplc and source delay as float
jenshnielsen Oct 22, 2026
eb1e7f7
Parse Keithley 7510 delay, counts and sample rate as numbers
jenshnielsen Oct 22, 2026
839c718
Fix Agilent E8267C pulse width type and unit
jenshnielsen Oct 22, 2026
4923921
Parse Rigol DG1062 burst settings and duty cycle as numbers
jenshnielsen Oct 22, 2026
1679752
Parse Rigol DS1074Z trigger level as float
jenshnielsen Oct 22, 2026
85d2e3d
Parse Tektronix TPS2012 trigger level as float
jenshnielsen Oct 22, 2026
3d172ac
Make Keithley 2000 _get_mode_param generic
jenshnielsen Oct 22, 2026
72e1448
Use on/off mapping for Tektronix AWG5014 states
jenshnielsen Oct 22, 2026
97cef05
Parse R&S RTO1000 channel impedance as float
jenshnielsen Oct 22, 2026
895b860
Parse Keysight E4980A impedance range as float
jenshnielsen Oct 23, 2026
dff7ebe
Type Keysight 34980A modules by slot
jenshnielsen Oct 23, 2026
95290e3
Pass bool to R&S SGS100A status
jenshnielsen Oct 23, 2026
aa2bdeb
Pass bool to Agilent E8257D output_enabled
jenshnielsen Oct 23, 2026
0a0bbe8
Pass bool to CopperMountain averages trigger
jenshnielsen Oct 23, 2026
de55b22
Pass bool to Tektronix DPO measurement state
jenshnielsen Oct 23, 2026
a41de9b
Fix R&S ZNB non-integer bandwidth
jenshnielsen Oct 23, 2026
f5693ca
Drop redundant parameter_class in mock instruments
jenshnielsen Oct 23, 2026
cc46d80
Fix B1500 compliance and volt monitor validators
jenshnielsen Oct 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions src/qcodes/instrument/sims/Agilent_E8267C.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
spec: "1.0"
devices:
device 1:
eom:
GPIB INSTR:
q: "\n"
r: "\n"
error: ERROR
dialogues:
- q: "*IDN?"
r: "Agilent Technologies, E8267C, US00000000, C.04.84"

properties:
power:
default: 0
getter:
q: "POW?"
r: "{}"
setter:
q: "POW {}"

power_offset:
default: 0
getter:
q: "POW:OFFS?"
r: "{}"
setter:
q: "POW:OFFS {}"

pulse_width:
# *RST value according to the E8257D/67D SCPI command reference
default: "+1.00000000E-006"
getter:
q: "PULM:INT:PWID?"
r: "{}"
setter:
q: "PULM:INT:PWID {}"

resources:
GPIB::1::INSTR:
device: device 1
36 changes: 36 additions & 0 deletions src/qcodes/instrument/sims/Keithley_2450.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,42 @@ devices:
setter:
q: "TRACe:CLEar"

sense_count:
default: 1
getter:
q: ":SENSe:COUNt?"
r: "{}"
setter:
q: ":SENSe:COUNt {}"
specs:
type: int

line_frequency:
default: "5.000000E+01"
getter:
q: ":SYSTem:LFRequency?"
r: "{}"

sense_current_nplc:
default: 1
getter:
q: ":SENSe:current:NPLCycles?"
r: "{}"
setter:
q: ":SENSe:current:NPLCycles {}"
specs:
type: float

source_current_delay:
default: 0
getter:
q: ":SOURce:current:DELay?"
r: "{}"
setter:
q: ":SOURce:current:DELay {}"
specs:
type: float

resources:
GPIB::1::INSTR:
device: device wrong_mode
Expand Down
38 changes: 38 additions & 0 deletions src/qcodes/instrument/sims/Keithley_6500.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
spec: "1.0"
devices:
device 1:
eom:
GPIB INSTR:
q: "\n"
r: "\n"
error: ERROR
dialogues:
- q: "*IDN?"
r: "KEITHLEY INSTRUMENTS,MODEL DMM6500,04000000,1.0.0"
- q: "*LANG?"
r: "SCPI"

properties:
data_format:
default: ASCII
getter:
q: "FORM:DATA?"
r: "{}"
setter:
q: "FORM:DATA {}"

display_digits:
default: 6
getter:
q: "DISP:VOLT:DC:DIG?"
r: "{}"
setter:
q: "DISP:VOLT:DC:DIG {}"
specs:
type: int
min: 4
max: 7

resources:
GPIB::1::INSTR:
device: device 1
17 changes: 17 additions & 0 deletions src/qcodes/instrument/sims/Keysight_E4980A.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ devices:
setter:
q: ":CURRent:LEVel {}"

impedance_range:
# preset value according to the E4980A/AL user's guide
default: "+1.00000E+02"
getter:
q: ":FUNCtion:IMPedance:RANGe?"
r: "{}"
setter:
q: ":FUNCtion:IMPedance:RANGe {}"

impedance_autorange:
default: 1
getter:
q: ":FUNCtion:IMPedance:RANGe:AUTO?"
r: "{}"
setter:
q: ":FUNCtion:IMPedance:RANGe:AUTO {}"

resources:
GPIB::1::INSTR:
device: device 1
19 changes: 18 additions & 1 deletion src/qcodes/instrument/sims/RTO_1000.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ devices:
q: "TRIGger1:SOURce?"
r: "{}"
setter:
q: "TRIGger1:SOURce? {}"
q: "TRIGger1:SOURce {}"

trigger level 1:
default: 0
Expand All @@ -35,6 +35,14 @@ devices:
setter:
q: "TRIGger1:LEVel1 {}"

trigger mode:
default: AUTO
getter:
q: "TRIGger:MODE?"
r: "{}"
setter:
q: "TRIGger:MODE {}"

channel range 1:
default: 5
getter:
Expand All @@ -49,6 +57,15 @@ devices:
setter:
q: "CHANnel1:OFFSet {}"

channel impedance 1:
# *RST value according to the R&S RTO user manual
default: 50
getter:
q: "CHANnel1:IMPedance?"
r: "{}"
setter:
q: "CHANnel1:IMPedance {}"

resources:
GPIB::1::INSTR:
device: device 1
54 changes: 54 additions & 0 deletions src/qcodes/instrument/sims/Rigol_DG1062.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
spec: "1.0"
devices:
device 1:
eom:
GPIB INSTR:
q: "\n"
r: "\n"
error: ERROR
dialogues:
- q: "*IDN?"
r: "Rigol Technologies,DG1062Z,DG1ZA000000001,00.01.14"
- q: ":SOUR1:APPL?"
r: "\"SQU,1.000000E+03,5.000000E+00,0.000000E+00,0.000000E+00\""
- q: ":SOUR2:APPL?"
r: "\"SIN,1.000000E+03,5.000000E+00,0.000000E+00,0.000000E+00\""

# query responses use the scientific notation documented in the
# DG1000Z Programming Guide
properties:
burst_ncycles_1:
default: "1.000000E+00"
getter:
q: ":SOUR1:BURS:NCYC?"
r: "{}"
setter:
q: ":SOUR1:BURS:NCYC {}"

burst_phase_1:
default: "0.000000E+00"
getter:
q: ":SOUR1:BURS:PHAS?"
r: "{}"
setter:
q: ":SOUR1:BURS:PHAS {}"

burst_time_delay_1:
default: "0.000000E+00"
getter:
q: ":SOUR1:BURS:TDEL?"
r: "{}"
setter:
q: ":SOUR1:BURS:TDEL {}"

square_duty_cycle_1:
default: "5.000000E+01"
getter:
q: ":SOUR1:FUNC:SQU:DCYC?"
r: "{}"
setter:
q: ":SOUR1:FUNC:SQU:DCYC {}"

resources:
GPIB::1::INSTR:
device: device 1
8 changes: 8 additions & 0 deletions src/qcodes/instrument/sims/Rigol_DS1074Z.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ devices:
r: "{}"
setter:
q: ":TRIGger:MODE {}"
trigger_edge_level:
# response format from the MSO1000Z/DS1000Z Programming Guide
default: "1.600000e-01"
getter:
q: ":TRIGger:edge:LEVel?"
r: "{}"
setter:
q: ":TRIGger:edge:LEVel {}"
data_source:
default: "CHAN1"
getter:
Expand Down
27 changes: 27 additions & 0 deletions src/qcodes/instrument/sims/Rigol_DS4000.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
spec: "1.0"
devices:
device 1:
eom:
GPIB INSTR:
q: "\n"
r: "\n"
error: ERROR
dialogues:
- q: "*IDN?"
r: "RIGOL TECHNOLOGIES,DS4024,DS4A000000001,00.02.03"

properties:
enable_auto_scale:
default: 1
getter:
q: ":SYSTem:AUToscale?"
r: "{}"
setter:
q: ":SYSTem:AUToscale {}"
specs:
type: int
valid: [0, 1]

resources:
GPIB::1::INSTR:
device: device 1
99 changes: 99 additions & 0 deletions src/qcodes/instrument/sims/Rohde_Schwarz_ZNB20.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# SIMULATED INSTRUMENT FOR Rohde&Schwarz ZNB20
# Only covers what is needed to create the driver with
# init_s_params=False and reset_channels=False and add a single channel.
# Commands that are only written are modelled as properties with a setter
# without a response, so that they do not leave a reply in the read buffer.
spec: "1.0"
devices:
ZNB20:
eom:
TCPIP INSTR:
q: "\n"
r: "\n"
error: ERROR
dialogues:
- q: "*IDN?"
r: "Rohde-Schwarz,ZNB20-2Port,1311601062100104,3.12"
- q: "INST:PORT:COUN?"
r: "2"
- q: "SENS1:SWE:TIME?"
r: "0.0201"

properties:

display_update:
default: "ON"
setter:
q: "SYST:DISP:UPD {}"

trace_definition:
default: ""
setter:
q: "CALC1:PAR:SDEF {}"

# the driver sends "DISP:LAY GRID;:DISP:LAY:GRID r,c", which the
# simulator splits at the ";" into two commands
display_layout:
default: "GRID"
setter:
q: "DISP:LAY {}"

display_layout_grid:
default: "1,1"
setter:
q: ":DISP:LAY:GRID {}"

sweep_time_auto:
default: "ON"
setter:
q: "SENS1:SWE:TIME:AUTO {}"

trigger_source:
default: "IMM"
setter:
q: "TRIG1:SEQ:SOUR {}"

averaging:
default: "ON"
setter:
q: "SENS1:AVER:STAT {}"

start:
default: 100e3
getter:
q: "SENS1:FREQ:START?"
r: "{}"

stop:
default: 20e9
getter:
q: "SENS1:FREQ:STOP?"
r: "{}"

npts:
default: 201
getter:
q: "SENS1:SWE:POIN?"
r: "{}"

sweep_type:
default: "LIN"
getter:
q: "SENS1:SWE:TYPE?"
r: "{}"
setter:
q: "SENS1:SWE:TYPE {}"

bandwidth:
# *RST value is 10 kHz. The value is returned as it was sent, so
# after setting 1.5 Hz the instrument returns a non-integer string.
default: "10000"
getter:
q: "SENS1:BAND?"
r: "{}"
setter:
q: "SENS1:BAND {}"

resources:
TCPIP0::localhost::inst0::INSTR:
device: ZNB20
Loading
Loading