问题标签 [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.

0 投票
0 回答
281 浏览

dbus - 如何使用 busctl 设置属性来设置 D-Bus 对象?

使用 busctl 设置 D-Bus 属性时,它会抛出错误消息

0 投票
1 回答
446 浏览

linux - 如何使用 busctl 命令行工具调用需要字节数组的 D-Bus 方法

我正在尝试busctl call一种将字节数组作为参数(签名ay)的方法。我该怎么做呢?

这是我迄今为止尝试过的:

那么,它想要什么?

0 投票
1 回答
316 浏览

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 的适当方式是什么?

0 投票
1 回答
66 浏览

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