gpt4 book ai didi

python - 您如何使用 Python 与自定义 DBUS 对象对话?

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:39 27 4
gpt4 key购买 nike

我有一些使用 dbus 进行通信的自定义应用程序...

import dbus
bus = dbus.SystemBus()
obj = bus.get_object(
"org.freedesktop.DBus",
"/org/freedesktop/DBus"
)

def listNames(names):
for name in names:
print "%s" % name

listNames(obj.ListNames());

我收到类似这样的信息,例如:

org.freedesktop.DBus
:1.7
test.helloworld
test.blahblah
test.customapp

在这一点上,我如何听取或与那些 test.* 应用程序交谈?事实上,DBus 的 get_object 返回的任何应用程序。

我读了 https://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html但对我正在尝试做的事情没有帮助...

最佳答案

dbus-python 已弃用,pydbus 是 DBus 的现代 Python 绑定(bind)。使用 pydbus:

获取代理对象:

from pydbus import SystemBus
bus = SystemBus()
dev = bus.get('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/0')

查看特定代理对象的 API:

help(dev)

调用方法:

dev.Disconnect()

读取属性:

print(dev.Autoconnect)

设置属性:

dev.Autoconnect = True

订阅信号:

dev.StateChanged.connect(print)
loop.run()

更多信息:https://github.com/LEW21/pydbus/blob/master/doc/tutorial.rst

免责声明:我是 pydbus 的作者。

关于python - 您如何使用 Python 与自定义 DBUS 对象对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36989977/

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