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