问题标签 [gdbus]
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.
gdbus - 结构的 gdbus 类型命名
使用 gdbus codegen,结构/对象在 xml 中定义为完整类型,如下所示
但是,如果在多个地方使用相同的结构,重复类型定义会有点痛苦,尤其是当签名稍后更改时。
那么,有没有办法为结构定义别名或其他东西,我们不必在多个地方维护相同的东西?哦,不幸的是,在这种情况下使用 Qt 绑定不是一个选项。
问候,
linux - 如何在 DBus 中显示特定对象路径内的接口
我需要使用终端命令。我也可以使用 gdbus。我有总线名称对象路径我需要显示对象路径内的所有接口
c++ - 无法使用迭代器迭代具有数组类型的 GVariant
我正在尝试使用 GDBus 通过 DBus 调用远程方法。我的问题是方法调用成功,但是作为 GVariant 可用的方法的返回值包含一个数组作为其元素。当我尝试使用 GVariantIter 迭代它时,它会导致分段错误。但是,如果我使用 g_variant_print() 将其打印到标准输出,则它会成功打印数据。我究竟做错了什么 ?指定的格式字符串是正确的,我已经使用 g_variant_get_type_string() 对其进行了检查。我的代码片段如下所示。
dbus - 错误设置BLE温度计的间隔属性
我正在尝试设置 BLE 温度计的 Interval 属性,并遇到了一些问题。
我已经测试了设置属性,例如 NetworkManager 中的 WimaxEnabled 属性:
我可以验证这些功能确实像宣传的那样工作。当我尝试设置间隔的属性时,事情变得很奇怪。我可以毫无问题地清除间隔
但尝试将间隔设置为任何其他值会导致错误。我已经尝试了所有可能的 uint16 值,结果相同。
Interval 属性设置为读/写
我还编写了一个 C 程序来执行此操作,结果完全相同,0 有效,其他所有值都失败。有人见过这个吗?有什么建议吗?
编辑:
正如总是会发生的那样,我在发布后不久就意识到了这个问题。我认为最小值和最大值属性是区间的范围。由于两者都设置为 0,我显然无法将 Interval 属性设置为 0 以外的任何值。
dbus - systemd 资源控制 SetProperties 在运行时使用 gdbus
我有一个foo.slice
带有 cgroup 设置的 systemd CPUShares
。我的想法是在系统启动期间的某个时刻更改设置,这将由 systemd 服务触发。
我做了一些测试工作来检查如何在运行时更改设置。
在foo.slice
我定义的CPUShares=256
. 这会导致cat /sys/fs/cgroup/cpu/foo.slice/cpu.shares 256
.
并会得到以下几行gdbus introspect
:
我尝试CPUShares
通过调用方法来更改:
使用:
我会得到
但我还是得到了cat /sys/fs/cgroup/cpu/foo.slice/cpu.shares 256
。
重新启动切片后:
我会得到
cat /sys/fs/cgroup/cpu/foo.slice/cpu.shares 2048
我用systemd 211
.
我希望了解有关此行为的更多详细信息,或者是否有更好的解决方案,即希望获得一些提示以CPUShares
在运行时使用 systemd 更改。
api - 如何通过 gdbus 获取“属性”
谁能告诉我在哪里可以找到有关如何使用 gdbus 调用从系统获取信息的文档?
我想阅读例如:
Model
Revision
State
PowerState
等等
我想知道如何创建一个调用以通过 gdbus 将“属性”从调制解调器中取出
谢谢
c - 从 shell dbus-send 在 C 中调用 dbus
我有一个 dbus-send 调用: dbus-send --system --print-reply --dest=org.freedesktop.ModemManager1 "/org/freedesktop/ModemManager1/Modem/0" org.freedesktop.DBus.Properties.Get string :org.freedesktop.ModemManager1.Modem 字符串:"SignalQuality"
而且我想编写一个简单的 C 代码来做完全相同的事情,嗯,C 方式。
我找不到足够的信息或任何对我有意义的信息来帮助我弄清楚将其转换为 C 需要什么。
我尝试了 g_dbus_proxy 调用,但成功有限。
我努力了:
但它不断失败并出现错误失败:路径/org/freedesktop/ModemManager1/Modem/0 处的对象上没有此类接口`org.freedesktop.DBus.Properties.Get'
有什么想法可以让这一切顺利进行吗?
c - 从 g_varient_new () 获取结果 ...
我正在学习如何使用这个 g_varient_new() ,这真的让我很困惑。我已经阅读了https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-new但我不能轻易理解。
我有一个代码:
它编译得很好,但是当它运行时我得到 seg_fault。测试印刷
打印分段错误
我期望从这个电话中得到的结果是:
如何从调用中获取变体数据结构和其中的数据?我应该如何形成 g_variat_new() 调用来完成这个?
谢谢
c - 使用 wpa_supplicant p2p DBus 接口注册信号处理程序
我在尝试注册以使用gdbus
C 中的库从 wpa_supplicant 的 p2p dbus 接口接收“InvitationReceived”信号时遇到问题。
我可以很好地创建到 P2P dbus 接口的代理连接并在其上调用方法,但是当我尝试将信号处理程序连接到代理时,我只是收到以下错误消息,指出信号无效(代码中的相关输出样本):
(进程:6764):GLib-GObject-WARNING **:/tmp/buildd/glib2.0-2.42.1/./gobject/gsignal.c:2461:信号'InvitationReceived'对于类型的实例'0x909ae0'无效'GDBusProxy'
这很奇怪,因为“InvitationReceived”是wpa_supplicant dbus api定义的信号名称。
代码示例:
是否有一些特殊的路径需要附加到信号名称中?还是我应该使用与用于调用方法的代理不同的代理来注册信号处理程序?
dbus - 尽管存在方法,但在对象路径中找不到 D-Bus 方法
我用这个 com.example.appname.desktop 文件实现了一个应用程序,如下所示:
自省 XML 如下所示:
但是当我尝试启动该方法时,它给了我一个错误:
“annotation name=..” XML 标签(见 introspection XML)是找不到这个方法的原因吗?通过浏览itmm://192.168.1.1/query?version=1.0
器浏览使用命令行参数启动应用程序,但它不是通过 D-Bus 服务启动的,这就是我的要求。有没有办法通过 firefox 或 google chrome 浏览器进行调试?