问题标签 [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.
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 是否重要。
glib - gdbus-monitor - 接口``
<none>
输出中的接口gdbus-monitor
有什么特殊含义吗?
GDbus
使用(g_dbus_connection_register_object
不允许传递NULL
asGDBusInterfaceInfo *
并且这似乎是唯一将对象注册到路径的方法)创建这样的消息需要什么 API 调用
gnome - 在gjs中使用GDBus调用DBus方法,没有输出?
我想编写一个 gnome-shell 扩展,其中涉及在 gjs 中调用一些 dbus。
我了解到 Gio.DBus 是正确使用的模块,但我未能使其正确运行。为了说明我的意思,我准备了以下“不正确”的代码,它试图调用 org.freedesktop.DBus 接口中的 ListNames 方法。当我运行这个不正确的代码时,我没有看到任何输出。
不正确的代码:
为了比较,以下代码有效。我所做的不同之处在于定义了一个扩展 Gio.Application 的 TestApp 类,该类在 main() 函数中被实例化。
正确代码:
所以我的猜测是让 GDBus 工作,你需要一个 Gio.Application 来运行吗?这可能是一个非常愚蠢的问题,因为我对 GNOME 的编程经验为零。谢谢。
memory-leaks - GLib 和 GDBus 的静态分析工具
有谁知道在使用 GLib 和 GDBus 时检测内存泄漏的任何工具或技术?我对使用这两个库都比较陌生,并且相信我正确使用了 API,但是如果有一个工具可以用来确认我正在正确清理我的资源,那就太好了。我已经通过各种 lint 类型的程序运行了我的代码,但这些程序可能没有检测到任何抽象到库中的东西。
我正在寻找专门针对 GLib 或 GDBus 的工具,还是我可以针对这些库进行检测的工具?也许我什至可以为 GLib 或 GDBus 设置一些编译时标志?
c - gdbus:在信号发射后立即释放信号参数是否安全
我创建了简单的 dbus 服务,它使用动态分配的数据参数发出信号:
在这种情况下,信号监听器可能会收到file_name
已经被销毁的字符串。
file_name
那么在通话后立即释放是否安全,g_signal_emit_by_name
或者我应该等待几秒钟?或者在这种情况下还有其他释放内存的机制吗?
c - 使用 GDBus 通过 D-Bus 发送字节数组(类型为 `ay`)
我正在尝试使用 GDBus 绑定在 D-Bus 上创建一个字节数组。你能告诉我我怎么能做到这一点。我尝试谷歌搜索但没有帮助。
字节数组包含图像文件,因此无法转换为 charbytearray
任何帮助都会得到帮助
c - 没有主循环的 GLIB 用法
我在使用 Glib 时遇到问题。我想订阅 dbus 信号而不用 g_main_loop_run 启动主循环。
我创建到正确总线的连接并调用函数g_dbus_connection_signal_subscribe。
我用while(1) 替换了 main 函数中对g_main_loop_run的调用。
不幸的是,它不起作用。如果我正确理解 GLib,则无需启动 mainloop 进行此类处理。
请帮忙。
示例代码:
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 能力,但这不适合我的问题。
谢谢你的帮助。
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".
bluetooth - 什么是 gdbus API,我可以从 c 应用程序调用它来发送命令并从使用蓝牙 HDP 配置文件的脉搏血氧仪接收数据
我正在尝试与使用蓝牙 HDP 配置文件的脉搏血氧仪通信。我正在编写一个使用 gdbus API 与 BLUEZ 堆栈通信的 C 应用程序。谁能告诉我我可以使用哪个 gdbus API 来发送命令和接收数据。我已经在树莓派上移植了 Bluez。