pygpibtoolkit/HP8904.py

changeset 81
19e4da44795e
parent 80
89e31bd2524b
child 82
550811b4c3c1
equal deleted inserted replaced
80:89e31bd2524b 81:19e4da44795e
17 import mx.DateTime as dt 17 import mx.DateTime as dt
18 18
19 from pygpibtoolkit.pygpib import Constants, Command 19 from pygpibtoolkit.pygpib import Constants, Command
20 from pygpibtoolkit.pygpib import Mode, ModeCommand 20 from pygpibtoolkit.pygpib import Mode, ModeCommand
21 from pygpibtoolkit.pygpib import VoltageValue 21 from pygpibtoolkit.pygpib import VoltageValue
22 from pygpibtoolkit.pygpib import WriteOnlyMode 22 from pygpibtoolkit.pygpib import SimpleMode
23 23
24 from pygpibtoolkit.gpibcontroller import AbstractGPIBDevice, deviceRegister 24 from pygpibtoolkit.gpibcontroller import AbstractGPIBDevice, deviceRegister
25 25
26 class _VoltageValue(VoltageValue): 26 class _VoltageValue(VoltageValue):
27 _units = "VL","MV","UV" 27 _units = "VL","MV","UV"
28 28
29 class APA(_VoltageValue): 29 class APA(_VoltageValue):
30 "CHAN A AMP - Channel A amplitude" 30 "CHAN A AMP - Channel A amplitude"
31 class APB(_VoltageValue): 31 class APB(_VoltageValue):
32 "CHAN A AMP - Channel A amplitude" 32 "CHAN B AMP - Channel B amplitude"
33 class APC(_VoltageValue): 33 class APC(_VoltageValue):
34 "CHAN A AMP - Channel A amplitude" 34 "CHAN C AMP - Channel C amplitude"
35 class APD(_VoltageValue): 35 class APD(_VoltageValue):
36 "CHAN A AMP - Channel A amplitude" 36 "CHAN D AMP - Channel D amplitude"
37 37
38 class Backlight(WriteOnlyMode): 38 class Backlight(SimpleMode):
39 "Backlight" 39 "Backlight"
40 _init_value = "BO"
41 40
42 BF = ModeCommand("Off", "OFF") 41 BF = ModeCommand("Off", "OFF")
43 BO = ModeCommand("On", "ON") 42 BO = ModeCommand("On", "ON")
44 43
45 class _PerOutputMode(WriteOnlyMode): 44
45 class _PerOutputMode(SimpleMode):
46 46
47 def __init__(self): 47 def __init__(self):
48 self._cmds = [] 48 self._cmds = []
49 for cmdname, cmd in self.__class__.__dict__.items(): 49 for cmdname, cmd in self.__class__.__dict__.items():
50 if isinstance(cmd, ModeCommand): 50 if isinstance(cmd, ModeCommand):
58 58
59 59
60 class Filter1(_PerOutputMode): 60 class Filter1(_PerOutputMode):
61 "Filter for output 1" 61 "Filter for output 1"
62 _prefix = "FS1" 62 _prefix = "FS1"
63 _init_value = "AU" 63
64 SH = ModeCommand("Elliptic (sharp cutoff)", "ELIPT.") 64 SH = ModeCommand("Elliptic (sharp cutoff)", "ELIPT.")
65 LO = ModeCommand("Gaussian (low overshoot)", "GAUSS.") 65 LO = ModeCommand("Gaussian (low overshoot)", "GAUSS.")
66 AU = ModeCommand("Automatic", "AUTO") 66 AU = ModeCommand("Automatic", "AUTO")
67 67
68 class Filter2(Filter1): 68 class Filter2(Filter1):
69 "Filter for output 2" 69 "Filter for output 2"
70 _prefix = "FS2" 70 _prefix = "FS2"
71 71
72
73 class Float1(_PerOutputMode):
74 "Float Control for output 1"
75 _prefix = "FC1"
76 ON = ModeCommand("On", "ON")
77 OF = ModeCommand("Off", "OFF")
78
79 class Float2(Float1):
80 "Float Control for output 2"
81 _prefix = "FC2"
82
83 class _FrequencyValue(FrequencyValue):
84 _units = ['HZ','KZ']
85
86 class FRA(_FrequencyValue):
87 "CHAN A FRQ - Channel A frequency"
88 class FRB(_FrequencyValue):
89 "CHAN B FRQ - Channel B frequency"
90 class FRC(_FrequencyValue):
91 "CHAN C FRQ - Channel C frequency"
92 class FRD(_FrequencyValue):
93 "CHAN D FRQ - Channel D frequency"
94
95 class OutputControl1(_PerOutputMode):
96 "Output 1"
97 _prefix = "OO1"
98 ON = ModeCommand("On", "ON")
99 OF = ModeCommand("Off", "OFF")
100
101 class OutputControl2(OutputControl1):
102 "Output 2"
103 _prefix = "OO2"
104
105 class _PhaseValue(FloatUnitValue):
106 _units = ['DG', 'RD']
107 _name = "phase"
108
109 class PHA(_PhaseValue):
110 "CHAN A PHA - Channel A phase"
111 class PHB(_PhaseValue):
112 "CHAN B PHA - Channel B phase"
113 class PHC(_PhaseValue):
114 "CHAN C PHA - Channel C phase"
115 class PHD(_PhaseValue):
116 "CHAN D PHA - Channel D phase"
117
118 class _Waveform(_PerOutputMode):
119 "waveform"
120 SI = ModeCommand('Sine', 'SINE')
121 RA = ModeCommand('Ramp', 'RAMP')
122 TR = ModeCommand('Triangle', 'TRG')
123 SQ = ModeCommand('Square', 'SQR')
124 NS = ModeCommand('Noise', 'NOIS')
125 DC = ModeCommand('DC', 'DC')
126
127 class WaveformA(_Waveform):
128 "CHAN A FORM - Channel A waveform"
129 _prefix = "WFA"
130 class WaveformB(_Waveform):
131 "CHAN B FORM - Channel B waveform"
132 _prefix = "WFB"
133 class WaveformC(_Waveform):
134 "CHAN C FORM - Channel C waveform"
135 _prefix = "WFC"
136 class WaveformD(_Waveform):
137 "CHAN D FORM - Channel D waveform"
138 _prefix = "WFD"
139
140
141 class _Destination(_PerOutputMode):
142 "Destination"
143 AM = ModeCommand('AM', 'AM')
144 FM = ModeCommand('FM', 'FM')
145 PM = ModeCommand('PM', 'PM')
146 DS = ModeCommand('DS', 'DS')
147 PU = ModeCommand('PU', 'PU')
148 OC1 = ModeCommand('OC1', 'OC1')
149 OC2 = ModeCommand('OC2', 'OC2')
150 OF = ModeCommand('OF', 'OF')
72 151
73 class HP8904Device(AbstractGPIBDevice): 152 class HP8904Device(AbstractGPIBDevice):
74 _accepts = ["^(?P<model>HP *8904A).*$",] 153 _accepts = ["^(?P<model>HP *8904A).*$",]
75 _idn = "ID" 154 _idn = "ID"
76 155

mercurial