我正在为嵌入式 Linux 设备开发蓝牙应用程序。在硬件上我有一个IMX 6 MCU
和EMMY W161
通信模块。操作系统是 Yocto Project 发行版(Poky
)。我的主要目的是从像工业设备这样的智能手表发送和接收数据。裸机嵌入式 C 固件在该设备上运行,我没有源代码。为了测试我的代码,我在手机上下载了一个应用程序并将其用作服务器。在我的手机上一切都运行良好。但是,当我尝试将原始设备用作服务器时,客户端无法发现服务器特性,并且在一段时间后我会看到连接超时错误。当我将手机设置为客户端时,我会看到这些特性。我已经将监督超时和延迟设置为最大值。我使用 QT 库和 bluez 堆栈。
简单来说,嵌入式 Linux 设备能够向手机发送数据。手机能够发现目标服务器设备的特征。嵌入式 Linux 设备连接到目标服务器设备并发现服务,但未发现特征。我不明白为什么嵌入式 Linux 客户端没有发现目标服务器的特征。
答案1
请参阅 QT 中的示例,它称为蓝牙低功耗扫描仪。
请发布一些代码,以便能够跟踪您的问题。将此行作为主程序的第一行,它将向您显示一些调试日志。
QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true"));