libubus的Python绑定
项目描述
此目录中的代码使libubus函数的一部分可以直接从python使用。
安装
要安装这些绑定,您需要安装以下库和头文件
libubox
libubus
python/python3
示例
连接和断开连接
要连接,您需要
import ubus ubus.connect("/var/run/ubus/ubus.sock")
要断开连接,您可以简单地
ubus.disconnect()
请注意,在打开/关闭连接上调用connect()/disconnect()将抛出异常。
添加
要将对象添加到ubus,您可以在(您需要先成为root)
def callback(handler, data): handler.reply(data) # this should return exactly the same data to the caller ubus.add( "my_object", { "my_method": {"method": callback, "signature": { "first": ubus.BLOBMSG_TYPE_STRING, "second": ubus.BLOBMSG_TYPE_BOOL, "third": ubus.BLOBMSG_TYPE_INT32, }}, }, )
您需要进入循环以在之后提供对象方法
ubus.loop()
请注意,递归调用回调函数可能不是一个好主意。
对象
要列出当前连接到ubus的对象,您可以调用
ubus.objects() -> {u'my_object': {u'my_method': {u'first': 3, u'second': 7, u'third': 5}}}
调用
要调用对象上的实际方法,您可以使用
ubus.call("my_object", "my_method", {"first": "my_string", "second": True, "third": 42}) -> [{"first": "my_string", "second": True, "third": 42}]
监听
要监听事件,您可以
def callback(event, data): print(event, data) # just print event name and data to stdout ubus.listen(("my_event", callback))
您需要进入循环以开始监听
ubus.loop()
请注意,递归调用回调函数可能不是一个好主意。
发送
这将向ubus发送一个事件
ubus.send("my_event", {"some": "data"})
注意
有一些测试(“tests/”目录)。因此,请随意检查它以获取更多复杂示例。要运行测试,您需要安装ubus并成为root
sudo python setup.py test
项目详情
关闭
ubus-0.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4dc4ef0fbcc8abb7a2354691475a58ff3eb015f1bab3150750729f7f657dd440 |
|
MD5 | fb3711b0f4e71bc2fd013b3233f2ab45 |
|
BLAKE2b-256 | a001af1d382ac0e031cd67773bb70cd8ada0a6af040c4d4a28bd35c851d59f23 |