pygpibtoolkit/HP3562A/HP356X.py

changeset 54
5c1a312830e7
parent 53
8e32c806fcdd
child 55
d400eaa4b048
equal deleted inserted replaced
53:8e32c806fcdd 54:5c1a312830e7
1 # 1 #
2 from pygpibtoolkit.pygpib import CommandRegister, Constants, Command 2 from pygpibtoolkit.pygpib import CommandRegister, Constants, Command
3 from pygpibtoolkit.pygpib import BoolValue, IntValue, FloatValue 3 from pygpibtoolkit.pygpib import BoolValue, IntValue, FloatValue
4 from pygpibtoolkit.pygpib import PercentageValue, FrequencyValue, DurationValue 4 from pygpibtoolkit.pygpib import PercentageValue, FrequencyValue, DurationValue
5 from pygpibtoolkit.pygpib import EnumValue, StringValue 5 from pygpibtoolkit.pygpib import EnumValue, StringValue
6 from pygpibtoolkit.pygpib import Mode, ModeCommand 6 from pygpibtoolkit.pygpib import Mode, ModeCommand
7 7
8 from pygpibtoolkit.gpibcontroller import AbstractGPIBDevice, deviceRegister 8 from pygpibtoolkit.gpibcontroller import AbstractGPIBDevice, deviceRegister
9 9
10 class Register(CommandRegister): 10 class Register(CommandRegister):
11 """ 11 """
231 231
232 232
233 class HP356XDevice(AbstractGPIBDevice): 233 class HP356XDevice(AbstractGPIBDevice):
234 _accepts = ["HP3562A", "HP3563A"] 234 _accepts = ["HP3562A", "HP3563A"]
235 _idn = "ID?" 235 _idn = "ID?"
236 236 _cmd_register = Register
237 def __init__(self, idn, address, controller): 237
238 super(HP356XDevice, self).__init__(idn, address, controller)
239 self._registry = Register() # singleton
240 self._cache = dict([(k, None) for k, v in self._registry.items() if isinstance(v, Mode)])
241 for k in self._registry.keys():
242 setattr(self,
243
244 def _get(self, name):
245 print "get ", name
246 assert name in self._registry
247 if name in self._cache:
248 if self._cache[name] is None:
249 # where to get the info?
250 # ... compute value
251 self._cache[name] = value
252 return self._cache[name]
253 self._registry[name].get_value(self._cnx)
254 def _set(self, name, value):
255 assert name in self._registry
256 self._registry[name].set_value(self._cnx, value)
257 deviceRegister.register_manager(HP356XDevice) 238 deviceRegister.register_manager(HP356XDevice)

mercurial