1- from qcodes import VisaInstrument
2- from qcodes .utils .validators import Numbers , Ints , Enum
3-
4-
5- class HP8133A (VisaInstrument ):
6- """
7- This is the code for Hewlett Packard 8133A Pulse Generator
8- """
9-
10- def __init__ (self , name , address , reset = False , ** kwargs ):
11- super ().__init__ (name , address , terminator = '\n ' , ** kwargs )
12-
13- self .add_parameter (name = 'frequency' ,
14- label = 'Frequency' ,
15- unit = 'Hz' ,
16- get_cmd = 'FREQ?' ,
17- set_cmd = 'FREQ {}' ,
18- get_parser = float ,
19- vals = Numbers (min_value = 31.3e6 ,
20- max_value = 3.5e9 ))
21- self .add_parameter (name = 'period' ,
22- label = 'Period' ,
23- unit = 's' ,
24- get_cmd = 'PER?' ,
25- set_cmd = 'PER {}' ,
26- get_parser = float ,
27- vals = Numbers (min_value = 286e-12 ,
28- max_value = 31.949e-9 ))
29- self .add_parameter (name = 'phase' ,
30- label = 'Phase' ,
31- unit = 'deg' ,
32- get_cmd = 'PHAS?' ,
33- set_cmd = 'PHAS {}' ,
34- get_parser = float ,
35- vals = Numbers (min_value = - 3.6e3 ,
36- max_value = 3.6e3 ))
37- self .add_parameter (name = 'duty_cycle' ,
38- label = 'Duty cycle' ,
39- unit = '%' ,
40- get_cmd = 'DCYC?' ,
41- set_cmd = 'DCYC {}' ,
42- get_parser = float ,
43- vals = Numbers (min_value = 0 ,
44- max_value = 100 ))
45- self .add_parameter (name = 'delay' ,
46- label = 'Delay' ,
47- unit = 's' ,
48- get_cmd = 'DEL?' ,
49- set_cmd = 'DEL {}' ,
50- get_parser = float ,
51- vals = Numbers (min_value = - 5e-9 ,
52- max_value = 5e-9 ))
53- self .add_parameter (name = 'width' ,
54- label = 'Width' ,
55- unit = 's' ,
56- get_cmd = 'WIDT?' ,
57- set_cmd = 'WIDT {}' ,
58- get_parser = float ,
59- vals = Numbers (min_value = 1e-12 ,
60- max_value = 10.5e-9 ))
61- self .add_parameter (name = 'amplitude' ,
62- label = 'Amplitude' ,
63- unit = 'V' ,
64- get_cmd = 'VOLT?' ,
65- set_cmd = 'VOLT {}' ,
66- get_parser = float ,
67- vals = Numbers (min_value = 0.1 ,
68- max_value = 3.3 ))
69- self .add_parameter (name = 'amplitude_offset' ,
70- label = 'Offset' ,
71- unit = 'V' ,
72- get_cmd = 'VOLT:OFFS?' ,
73- set_cmd = 'VOLT:OFFS {}' ,
74- get_parser = float ,
75- vals = Numbers (min_value = - 2.95 ,
76- max_value = 3.95 ))
77- self .add_parameter (name = 'output' ,
78- label = 'Output' ,
79- get_cmd = 'OUTP?' ,
80- set_cmd = 'OUTP {}' ,
81- val_mapping = {'OFF' : 0 ,
82- 'ON' : 1 })
83-
84- #resets amplitude and offset each time user connects
85- self .amplitude (0.1 )
86- self .amplitude_offset (0 )
87-
88-
89- self .add_function ('reset' , call_cmd = '*RST' )
90- self .connect_message ()
1+ from qcodes import VisaInstrument
2+ from qcodes .utils .validators import Numbers , Ints , Enum
3+
4+
5+ class HP8133A (VisaInstrument ):
6+ """
7+ This is the code for Hewlett Packard 8133A Pulse Generator
8+ """
9+
10+ def __init__ (self , name , address , reset = False , ** kwargs ):
11+ super ().__init__ (name , address , terminator = '\n ' , ** kwargs )
12+
13+ self .add_parameter (name = 'frequency' ,
14+ label = 'Frequency' ,
15+ unit = 'Hz' ,
16+ get_cmd = 'FREQ?' ,
17+ set_cmd = 'FREQ {}' ,
18+ get_parser = float ,
19+ vals = Numbers (min_value = 31.3e6 ,
20+ max_value = 3.5e9 ))
21+ self .add_parameter (name = 'period' ,
22+ label = 'Period' ,
23+ unit = 's' ,
24+ get_cmd = 'PER?' ,
25+ set_cmd = 'PER {}' ,
26+ get_parser = float ,
27+ vals = Numbers (min_value = 286e-12 ,
28+ max_value = 31.949e-9 ))
29+ self .add_parameter (name = 'phase' ,
30+ label = 'Phase' ,
31+ unit = 'deg' ,
32+ get_cmd = 'PHAS?' ,
33+ set_cmd = 'PHAS {}' ,
34+ get_parser = float ,
35+ vals = Numbers (min_value = - 3.6e3 ,
36+ max_value = 3.6e3 ))
37+ self .add_parameter (name = 'duty_cycle' ,
38+ label = 'Duty cycle' ,
39+ unit = '%' ,
40+ get_cmd = 'DCYC?' ,
41+ set_cmd = 'DCYC {}' ,
42+ get_parser = float ,
43+ vals = Numbers (min_value = 0 ,
44+ max_value = 100 ))
45+ self .add_parameter (name = 'delay' ,
46+ label = 'Delay' ,
47+ unit = 's' ,
48+ get_cmd = 'DEL?' ,
49+ set_cmd = 'DEL {}' ,
50+ get_parser = float ,
51+ vals = Numbers (min_value = - 5e-9 ,
52+ max_value = 5e-9 ))
53+ self .add_parameter (name = 'width' ,
54+ label = 'Width' ,
55+ unit = 's' ,
56+ get_cmd = 'WIDT?' ,
57+ set_cmd = 'WIDT {}' ,
58+ get_parser = float ,
59+ vals = Numbers (min_value = 1e-12 ,
60+ max_value = 10.5e-9 ))
61+ self .add_parameter (name = 'amplitude' ,
62+ label = 'Amplitude' ,
63+ unit = 'V' ,
64+ get_cmd = 'VOLT?' ,
65+ set_cmd = 'VOLT {}' ,
66+ get_parser = float ,
67+ vals = Numbers (min_value = 0.1 ,
68+ max_value = 3.3 ))
69+ self .add_parameter (name = 'amplitude_offset' ,
70+ label = 'Offset' ,
71+ unit = 'V' ,
72+ get_cmd = 'VOLT:OFFS?' ,
73+ set_cmd = 'VOLT:OFFS {}' ,
74+ get_parser = float ,
75+ vals = Numbers (min_value = - 2.95 ,
76+ max_value = 3.95 ))
77+ self .add_parameter (name = 'output' ,
78+ label = 'Output' ,
79+ get_cmd = 'OUTP?' ,
80+ set_cmd = 'OUTP {}' ,
81+ val_mapping = {'OFF' : 0 ,
82+ 'ON' : 1 })
83+
84+ # resets amplitude and offset each time user connects
85+ self .amplitude (0.1 )
86+ self .amplitude_offset (0 )
87+
88+ self .add_function ('reset' , call_cmd = '*RST' )
89+ self .connect_message ()
0 commit comments