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

0 投票
1 回答
1174 浏览

c - dbus - 在接口 NULL 上将对象注册到远程

我必须处理我需要通过 dbus(会话)连接到的二进制 blob dbus 服务/服务器。

接口的自省如下(通过 获取gdbus-codegen)。我们向远程注册了一个函数,以便在远程接收到被调用的消息时收到通知message_handler。这发生在send_message我通过 dbus 传递的命令的响应中,但这有效(因此未显示)。

在 java 示例中,它是通过

并显示bustle(no interface) message_handler,一切都按预期工作。


忙碌的图形图像


在裸日志中说<none>而不是(no interface).

根据gdbus-monitor - interface `<none>`,这是由于gdbus-monitor检测到interface正在NULL

如何使用等于 NULL 的接口注册/导出对象GDBus

到目前为止尝试的事情在代码中标记为注释:

代码块:

无论我注释了什么,我什至都没有输入vtable.

提前感谢您的任何提示。

附加信息:据我所知,遥控器使用 qtdbus 是否重要。

0 投票
2 回答
717 浏览

glib - gdbus-monitor - 接口``

<none>输出中的接口gdbus-monitor有什么特殊含义吗?

GDbus使用(g_dbus_connection_register_object不允许传递NULLasGDBusInterfaceInfo *并且这似乎是唯一将对象注册到路径的方法)创建这样的消息需要什么 API 调用

相关:dbus - 在接口 NULL 上将对象注册到远程

0 投票
1 回答
1308 浏览

gnome - 在gjs中使用GDBus调用DBus方法,没有输出?

我想编写一个 gnome-shell 扩展,其中涉及在 gjs 中调用一些 dbus。

我了解到 Gio.DBus 是正确使用的模块,但我未能使其正确运行。为了说明我的意思,我准备了以下“不正确”的代码,它试图调用 org.freedesktop.DBus 接口中的 ListNames 方法。当我运行这个不正确的代码时,我没有看到任何输出。

不正确的代码:

为了比较,以下代码有效。我所做的不同之处在于定义了一个扩展 Gio.Application 的 TestApp 类,该类在 main() 函数中被实例化。

正确代码:

所以我的猜测是让 GDBus 工作,你需要一个 Gio.Application 来运行吗?这可能是一个非常愚蠢的问题,因为我对 GNOME 的编程经验为零。谢谢。

0 投票
1 回答
428 浏览

memory-leaks - GLib 和 GDBus 的静态分析工具

有谁知道在使用 GLib 和 GDBus 时检测内存泄漏的任何工具或技术?我对使用这两个库都比较陌生,并且相信我正确使用了 API,但是如果有一个工具可以用来确认我正在正确清理我的资源,那就太好了。我已经通过各种 lint 类型的程序运行了我的代码,但这些程序可能没有检测到任何抽象到库中的东西。

我正在寻找专门针对 GLib 或 GDBus 的工具,还是我可以针对这些库进行检测的工具?也许我什至可以为 GLib 或 GDBus 设置一些编译时标志?

0 投票
2 回答
381 浏览

c - gdbus:在信号发射后立即释放信号参数是否安全

我创建了简单的 dbus 服务,它使用动态分配的数据参数发出信号:

在这种情况下,信号监听器可能会收到file_name已经被销毁的字符串。

file_name那么在通话后立即释放是否安全,g_signal_emit_by_name或者我应该等待几秒钟?或者在这种情况下还有其他释放内存的机制吗?

0 投票
4 回答
10040 浏览

c - 使用 GDBus 通过 D-Bus 发送字节数组(类型为 `ay`)

我正在尝试使用 GDBus 绑定在 D-Bus 上创建一个字节数组。你能告诉我我怎么能做到这一点。我尝试谷歌搜索但没有帮助。

字节数组包含图像文件,因此无法转换为 charbytearray

任何帮助都会得到帮助

0 投票
2 回答
4204 浏览

c - 没有主循环的 GLIB 用法

我在使用 Glib 时遇到问题。我想订阅 dbus 信号而不用 g_main_loop_run 启动主循环

我创建到正确总线的连接并调用函数g_dbus_connection_signal_subscribe

我用while(1) 替换了 main 函数中对g_main_loop_run的调用。

不幸的是,它不起作用。如果我正确理解 GLib,则无需启动 mainloop 进行此类处理。

请帮忙。

示例代码:

0 投票
5 回答
1993 浏览

c - 在 GLIB 主循环中添加 fds

我需要将文件描述符附加到 GLIB 主循环。我的问题是文件描述符列表在执行期间没有固定。

根据 GLIB 文档,我可以:

  • 使用 g_io_channel_unix_new为每个 FD创建一个GIOChannel并使用g_io_add_watch将其附加到上下文
  • 使用通过g_io_create_watch创建的Gsource并设置回调g_source_set_callback

我的问题是:是否可以动态修改源或上下文。我该怎么做?我发现 GSourceFuncs 能力,但这不适合我的问题。

谢谢你的帮助。

0 投票
1 回答
1216 浏览

c - How to marshal dbus string array (ao) type?

I'm using gdbus bindings. Here is part of my interface:

I failed to extract device list get from this interface to a string array. Can anyone tell the correct marshalling for dbus string array?

My assumption for dbus string array structure is as follows:

And also internal structure for string is as follows:

And below is my code:

This piece of code runs into segmentation fault when calling "usbmanager_set_devices".

0 投票
1 回答
432 浏览

bluetooth - 什么是 gdbus API,我可以从 c 应用程序调用它来发送命令并从使用蓝牙 HDP 配置文件的脉搏血氧仪接收数据

我正在尝试与使用蓝牙 HDP 配置文件的脉搏血氧仪通信。我正在编写一个使用 gdbus API 与 BLUEZ 堆栈通信的 C 应用程序。谁能告诉我我可以使用哪个 gdbus API 来发送命令和接收数据。我已经在树莓派上移植了 Bluez。