问题标签 [busctl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dbus - 如何使用 busctl 设置属性来设置 D-Bus 对象?
使用 busctl 设置 D-Bus 属性时,它会抛出错误消息
linux - 如何使用 busctl 命令行工具调用需要字节数组的 D-Bus 方法
我正在尝试busctl call
一种将字节数组作为参数(签名ay
)的方法。我该怎么做呢?
这是我迄今为止尝试过的:
那么,它想要什么?
dbus - 如何将映射字符串到结构的字典传递给带有busctl的d-bus方法?
我有一个 D-Bus 方法,它接收将字符串映射到结构的字典作为输入:
我试图使用 busctl 调用这种方法但没有成功。到目前为止,我已经尝试使用以下参数:
根据通话,我收到不同的错误:
因此,我的问题是:使用 busctl 时如何将参数传递给 myMethod?
编辑
感谢ukBaz的回答,我得到了洞察力。我也有一个 getter 方法,我之前调用过,我得到的结果与 ukBaz 的有点不同:
运行 busctl 命令它给了我这个:
注意与预期解决方案的区别(a(s(ss))
而不是a{s(ss)}
,括号而不是大括号)。如果我做对了,那么输出应该被解释为一个包含一个字符串的结构数组,以及另一个包含两个字符串的结构。
我不太确定为什么结果不同,但我已经克服了使用 getter 的输出直接作为另一种方法的输入的问题:
同样,如果我“按原样”使用 myGetMethod 的输出,该方法也可以工作:
所以剩下的唯一问题是为什么 D-bus 方法返回一个结构数组,即使它被声明为返回一个字典。
编辑 2
如果我运行 dbusctl introspect,这就是我得到的:
作为一个问题,我也尝试过使用 D-Feet,但没有更好的结果。我调用了一个返回 a{s(ss)} 类型值的方法,D-Feet 返回以下结构:
如果我然后使用相同的结构在 D-Feet 上调用 myMethod,我得到一个 DBus.Error.UnknownMethod:
但是,如果我使用参数、大括号等,我会收到不同的错误消息,但我无法让该方法正常工作。那么,在使用 D-Feet 时,将这种参数传递给 myMethod 的适当方式是什么?
bluetooth - 在涉及蓝牙时,通过 busctl 注册的对象名称可以与地址属性不同吗?
问题的背景
因此,我正在开发一个小型 posix shell 脚本,该脚本旨在围绕蓝牙进行,并且由于我正在考虑将其“发布”给公众,因此我正在优化它并稍后与其他人共享代码,以便我可以对其进行审查。
问题
我获取与主机配对的每个蓝牙设备(即运行此 shell 脚本的设备)的方式是:
然后在循环中使用对象名称,我只是使用它们来返回它们的地址,以及其他我不会详细介绍的属性,就像这样
这在很大程度上是无用的,因为从我所看到的 busctl 树给出的对象名称,格式化后,对应于它将从属性回复的内容address
事情是我害怕由于 busctl 部分或设备部分的某种损坏,它们可能不匹配,两者仍然可以正常工作,但前提是我将对象名称视为别名而不是固定的通用固定命名约定
exe:在执行 busctl 树时,它会回复其中一行:├─/org/bluez/hci0/dev_00_00_00_00_B5_C8
但 get-property 将返回s 22:33:21:25:AA:B4