gpt4 book ai didi

python - 访问 PyTango 属性值

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:32 26 4
gpt4 key购买 nike

我正在尝试使用 PyTango 编写设备服务器。我创建了服务器的属性列表。如何通过 set_value() 函数访问存储在属性中的值?

例如,如果我有此属性,我如何检索该值?

x_pixel_size = attribute(label = "x pixel size", dtype=float,
display_level = DispLevel.OPERATOR,
unit = 'microns', format='5.2f',
access = AttrWriteType.READ,
doc = 'Size of a single pixel along x-axis
of the detector')
self.x_pixel_size.set_value(720)

我想从属性 x_pixel_size 检索值 720。有没有一种方法可以在不使用服务器中的附加变量的情况下执行此操作?

最佳答案

当然有可能。您可以通过以下方式执行此操作:

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
>>>

如果您还有任何疑问,请尽管询问。但实际上我使用额外的变量来保存属性的值。

关于python - 访问 PyTango 属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54197537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com