Friday, 7 October 2016

PyTango: Configure polling using DeviceProxy object

Getting the polling buffer values

Only for polled attributes we can get the last N read values. the polling buffer depth is managed by the admin device.
dp = PyTango.DeviceProxy('some/tango/device')
dp.attribute_history('cpustatus',10)

Get/Set polled attributes

def get_polled_attributes(dev_name):
    dp = PyTango.DeviceProxy(dev_name)
    attrs = dp.get_attribute_list()
    periods = [(a,dp.get_attribute_poll_period(a)) for a in attrs]
    return dict((a,p) for a,p in periods if p)

[plc4.poll_attribute(a,5000) for k,v in periods if v]

Modify the polling of attributes


import re,PyTango
period = 10000
devs = PyTango.Database().get_device_exported('some/tango/devices*')
for dev in devs:
  dp = PyTango.DeviceProxy(dev)
  attrs = sorted([a for a in dp.get_attribute_list() if re.match('(Output|Temperature)_[0-9]$',a)])
  [dp.poll_attribute(a,period) for a in attrs]
  print('\n'.join(dp.polling_status()))

No comments:

Post a Comment