问题标签 [qtdbus]

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 回答
1712 浏览

qt - QDBusAbstractAdaptor 对象不导出实现的 dbus 接口

我正在尝试使用 Qt 及其 DBus 功能为 BlueZ v5.5 实现配对代理。

我有一个由我称为 PairingAgentAdaptor 的 qdbusxml2cpp 工具生成的适配器类和一个具有实现方法 (PairingAgent) 的类,我在适配器类的实例化时作为参数给出。

我可以将对象注册为新代理,BlueZ 守护进程说我的代理已注册。如果我尝试将手机与计算机配对,BlueZ 守护程序会显示:“对象路径 '/pairing/agent' 中没有这样的接口 'org.bluez.Agent1'。”

我不知道我做错了什么。你能给我一些提示吗?

亲切的问候迈克尔


代码:

主文件

配对代理适配器.h

0 投票
1 回答
688 浏览

android - 在 Android 上使用 QtDBus 移植 Qt 应用程序

我有一个用 Qt 编写的应用程序,它使用 QtDBus。我需要将它移植到android上。对这两种技术都没有太多经验。

当我尝试为 android 编译我的 Qt 应用程序时,我得到一个错误:

排队

桌面编译正常进行

我发现android不支持dbus的信息(或者它是过时的信息?)。有什么办法吗?

0 投票
1 回答
1707 浏览

c++ - 如何使用 D-Bus 获取设备名称?

我在 Linux 上用 C++ 开发了一个应用程序,它与蓝牙设备(例如蓝牙插座或扬声器)交互。我使用 D-Bus 命令获取配对设备列表:

dbus-send --system --dest=org.bluez --print-reply $BTADAPTER org.bluez.Adapter.ListDevices

它返回:

这很棒,但我不仅需要 MAC,还需要设备名称(例如“linvor”或“GT-I9300”)。

请帮助我以正确的方式获取这些名称。

0 投票
2 回答
2098 浏览

c++ - QtDBUS:通过 DBUS 发送枚举

我在 C++ 中使用 qt dbus 绑定。

目前我可以通过 dbus 发送任何自定义类型(例如:类、结构),但我无法发送枚举。

我在这里也试过这个链接,但我不明白

0 投票
1 回答
1840 浏览

c++ - 连接到不同计算机上的会话 DBus

我可以通过连接到会话总线来运行我的 Qt DBus 测试:

但是我可以从另一台计算机连接到这个 DBus 吗?我知道我可以做这样的事情:

但是我将如何获得端口?无论我尝试过什么,似乎都没有联系。还是我在这里走错了路,需要使用 Peer 2 Peer DBus 而不是会话总线?

正如我所见,我几乎可以肯定服务名称是正确的qdbusviewer。当我使用dbus-monitor输出时,对我来说意义不大,我看不到任何端口等。

知道如何从另一台计算机连接吗?

PS:我知道有类似 gabriel 的东西可以通过 SSH 进行隧道传输(http://gabriel.sourceforge.net/howto.html)。这不是我要做的,我正在寻找“直接联系”。

0 投票
3 回答
8502 浏览

c++ - 如何在 Qt DBus 调用中从 QDBusMessage 中提取返回的数据?

我正在尝试使用 Qt 的 QDBus 类库调用 WPA 请求者的 DBus 接口。特别是,我正在尝试使用“Get”属性调用来检索“Interfaces”属性值。

“Get”的 DBus 规范(通过自省)是:

看起来很简单。两个字符串输入和输出是一个变体(这些是 DBus 类型)。对于“接口”属性,我期望变体是对象路径数组(DBus 类型“ao”)。

QDBusInterface::call()用来调用 DBus 方法,它返回 a QDBusMessage,但我不知道如何从中提取我的数据。

QDBusMessage::arguments()返回一个QList<QVariant>。我已经尝试过对这个列表中的项目进行各种转换,以试图找到我的对象路径数组,但我似乎最终得到了一个空字符串。

QVariant::type()似乎它应该有所帮助,但它似乎只返回 type QDBusMessage,这显然是错误的。例如:

印刷:

如何提取实际的消息数据?

0 投票
1 回答
354 浏览

qt - 如何通过 qdbusxml2cpp 在自动生成的绑定代码中添加标头?

$qdbusxml2cpp -v -c CustomIf -p customif.h:customif.cpp org.item.custom.xml

org.item.custom.xml

如何在生成的适配器customif.h中添加标头-message.h?我不想手动将其添加为#include "message.h",但实际上希望 qdbusxml2cpp 添加包含。

0 投票
1 回答
2075 浏览

qt - 使用 QtDBus 支持构建 Qt 4.8

我尝试从源代码编译 Qt,一切正常(或多或少),除了 dbus 部分。

./configure -v -opensource -dbus-linked -arch i386

配置显示此错误:

产生 1 个错误。make: * [dbus.o] 错误 1 ​​D-Bus 已禁用。无法启用 QtDBus 模块,因为找不到 libdbus-1 版本 0.93。打开详细消息 (-v) 到 ./configure 以查看最终报告。如果您认为此消息有误,您可以使用继续开关 (-continue) 到 ./configure 继续。

我用 Homebrew 安装了 dbus 1.6,但配置工具看不到它。Lib 和头文件位于 /usr/local/Cellar/d-bus/1.6.18。如何将配置指向此位置?

平台是 OS X。

0 投票
1 回答
1236 浏览

qt - 意外回复签名:得到“oa{sv}”,预期“(oa{sv})”

使用 C++/QtDBus。我正在尝试从 DBus 调用中获得回复,该函数描述为:

我注册了(qDBusRegisterMetaType)一个定义为的类型:typedef QPair< QDBusObjectPath, QVariantMap > Transfer;QDBusPendingCallWatcher我正在做的处理程序中:

我收到一个错误:

意外的回复签名:得到"oa{sv}",预期"(oa{sv})"

怎么了?“(oa{sv})”中的括号是什么?

0 投票
1 回答
1125 浏览

qt - dbus 示例中名为“D-Bus 遥控车示例”的“car.xml”文件是如何生成的?

我正在尝试创建利用 D-Bus 的程序。我已经研究了 Qt 提供的示例。在其中一个名为“D-Bus 遥控车示例”的文件中,有一个名为“car.xml”的文件,其内容如下:

如果我没记错的话,应该使用名为“qdbuscpp2xml”的工具生成此文件。当我使用此命令生成 xml 时:

我在生成的 XML 文件中得到以下内容:

这与 car.xml 的不同之处在于以下几行:

为什么我得到一个不同的文件?包含的文件 (car.xml) 是手动创建的示例吗?