Конечно, это возможно. Вы можете сделать это следующим образом:
from PyTango.server import run
from PyTango.server import Device, DeviceMeta
from PyTango.server import attribute, command, device_property
from PyTango import AttrQuality, AttrWriteType, DispLevel
class DeviceClass(Device):
__metaclass__ = DeviceMeta
def init_device(self):
self.x_pixel_size.set_write_value(720)
x_pixel_size = attribute(label = "x pixel size", dtype=float,
display_level = DispLevel.OPERATOR,
unit = 'microns', format='5.2f',
access = AttrWriteType.READ_WRITE,
doc = 'Size of a single pixel along x-axis of the detector')
def write_x_pixel_size(self, value):
pass
def read_x_pixel_size(self):
return self.x_pixel_size.get_write_value()
def main():
run((DeviceClass,))
if __name__ == "__main__":
main()
И вы можете проверить это с помощью консоли Python:
>>> from PyTango import DeviceProxy
>>> dev = DeviceProxy('test/device/1')
>>> dev.x_pixel_size
720.0
>>> dev.x_pixel_size = 550
>>> dev.x_pixel_size
550.0
>>>
Если у вас есть еще вопросы, просто спросите. Но на самом деле я использую дополнительные переменные для хранения значения атрибута для меня.