问题标签 [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“PropertiesChanged”信号?
我正在使用gdbus- codegen 工具自动生成的 GDBus 工具为 C 中的应用程序构建MPRIS D-Bus 接口。
当一个属性被改变时,会自动生成一个“PropertiesChanged”信号,这在大多数情况下都很好,但是在 MPRIS 规范中,它规定当“Position”属性发生变化时,不应该发出“PropertiesChanged”信号。
有什么好的方法可以防止信号被发送吗?
dbus - 使用 dbus-send 设置/获取属性
我已经制作了下面的示例 xml,需要一些帮助来形成 dbus-send 命令来设置/获取属性“状态”。我知道如何调用方法,但无法使用 dbus-send 读取/写入属性。
xml:
bluetooth - 无法通过 DBus 在 Bluez 中设置 SSP 模式
我需要以编程方式更改安全简单配对模式,但我不知道如何使用 DBus 命令在 Bluez 中打开或关闭 SSP 模式。
使用btmgmt
实用程序,我只是这样做:
好的,但我需要的是可以包含在我的应用程序中的DBus 方法调用。
但是Bluez 文档似乎没有提到任何改变 SSP 模式的 DBus 方法。
有谁知道这是怎么做到的吗?(一个gdbus call
或一个dbus-send
例子会很棒)。
或者这是不可能的?
c++ - 如何链接 glib-2.0 库以供 c/c++ 程序编译
我是使用 DBUS 的新手,想编译一个使用 glib-2.0 的程序。
但是我得到一个错误。这是我调用 make 的输出:
make: *** [main.o] 错误 1
我尝试按照 gnome.org https://developer.gnome.org/glib/stable/glib-compiling.html上的说明进行操作
这是我的制作文件:
这是我的主要内容:
为什么我会得到对这些调用的未定义引用?
bluez - 基本 Bluez BLE 客户端
为 Bluez BLE 编写 gdbus 客户端(5.48 版)
使用 gdbus-codegen 工具生成代理和骨架。XML 内容具有以下详细信息。
以上所有属性都从我的客户端分配给默认值。当我使用 d-feet 进行反省时。
但是 bluetoothctl 这些值没有分配给默认值。
我调试了
但是使用自动生成的代码,即使没有设置任何属性。g_dbus_proxy_get_property 能够获取其解析的所有属性和默认值。由于上述在启动广告时面临以下问题。1)超时默认值为零,它立即超时。2) 当设置了 include 属性时,即使没有设置 name 属性也会被解析。bluez 抛出错误“已包含本地名称”。
我们如何使用 gdbus 自动生成的代码做出与 bluetoothctl 相同的行为?
linux - 使用 gdbus-codegen 进行 dbus 方法调用,服务器端可以工作,但客户端的响应字符串始终为 NULL
使用 gdbus-codegen 进行 dbus 方法调用,服务器端可以工作,但客户端的响应字符串始终为 NULL。特别是调用中的缓冲区 new_cfg_gdbus_call_receive_new_config_sync(proxy, "new_cfg", buf, NULL, &error); 是 NULL,我不确定如何在服务器端填充它。
命令行:
XML:
客户:
服务器:
服务器端循环:
dbus - dbus 中的上下文切换
想了解发送 dbus 消息时发生的上下文切换吗?
linux - 无法从 ubuntu 中的服务连接到会话 dbus
我必须在 ubuntu 16.04 中将我的应用程序作为服务运行。我正在使用 systemd 使其在启动时作为服务运行。我的应用程序必须连接到会话 dbus 和系统 dbus。连接系统dbus成功。但是连接到会话 dbus 失败了。我尝试使用“systemctl start Myapplication”将我的应用程序作为服务运行,这一次它也没有连接到会话总线。但是,如果我从终端运行我的应用程序 "./Myapplication"
,它会成功连接到会话和系统 dbus。谁能帮我这个?
下面的代码是我的 .service 文件内容。
我正在使用GDBUS
.
c - Qtcreator 错误添加符号:命令行中缺少 DSO
我的具体错误是尝试从此处运行 GDBus 示例代码时:https ://developer.gnome.org/gio/2.30/GDBusConnection.html
错误如下所示:
c - 用于控制防火墙的 D-Bus API 或 C 库
我正在做一个项目,用 C 语言实现一切。作为项目的一部分,我们需要能够控制和配置firewalld
当前系统的防火墙。
firewalld
是用 Python 实现的,并且有一个接口可用。但是,我们不想从 C 进行 Python 调用,反之亦然。- 有命令行工具可以配置
firewalld
(例如firewall-cmd
),但我们也不想从 C 中进行此类调用。
我最近开始工作firewalld
,我不太了解它的内部结构。我读过它使用 D-Bus,我对 D-Bus 也不太了解。
- Thomas Woerner 开发了一个 C 库:
libfirewall
. 但是,距离上次提交已经超过一年半,因此没有维护。除此之外libfirewall
,我不知道 C 中的任何防火墙接口。- 我试
libfirewall
了一下。在编译和运行示例时,它给我带来了一些问题,我仍然有问题需要解决。值得继续libfirewall
吗?我应该使用它吗? - 还有其他我不知道的界面吗?
- 我试
- 由于对 D-Bus 缺乏了解,可能是一个幼稚的问题:我想,也许,通过 D-Bus 接口,我可以向 firewalld 发出命令。可以做到吗?(即 D-Bus 是否像那样工作?)我们可以编写一个程序来模仿,比如说
firewall-cmd
,并以相同的方式与 D-Bus 交互并最终允许我们控制 firewalld 吗?- 如果这是可能的,该怎么做以及使用什么?
libdbus
并且GDBus
有相对较好的文档,虽然libdbus
需要大量的努力。他们甚至说“如果你直接使用这个低级 API,你注册会有些痛苦。” 在文档中。在任何情况下,我都需要示例或任何类型的文本来展示它们的用法。
- 如果这是可能的,该怎么做以及使用什么?
我应该如何解决这个问题?