可以用hcitool而不是gatttool连接到BLE设备吗?

问题描述 投票:3回答:1

我试图在我的PC和Raspberry Pi3的QT应用程序中连接到蓝牙低能耗设备,但是在尝试连接时我收到了这个QT错误:

qt.bluetooth.bluez: Unknown l2cp socket error:  QBluetoothSocket::UnknownSocketError "Transport endpoint is not connected"
qt.bluetooth.bluez: void QBluetoothSocketPrivate::_q_readNotify() 14 error: -1 "Resource temporarily unavailable"
qt.bluetooth.bluez: Unknown l2cp socket error:  QBluetoothSocket::UnknownSocketError "Resource temporarily unavailable"

我不认为它的QT,我怀疑bluez是问题所在。我发现Linux可以找到以下设备:

sudo hcitool lescan

它可以通过以下方式连接:

sudo hcitool lecc <address>

这很好。问题是,一旦我尝试使用gatttool(它必须是QT试图做的事情的那个方面),我得到以下结果:

pi@user:~$ sudo gatttool -I 
[                 ][LE]> connect <address>
Attempting to connect to <address>
Error: connect error: Transport endpoint is not connected (107)
[<address>][LE]> 

结果是PC和Raspberry上的一些结果。 PC上的bluez版本是5.37,覆盆子5.23。

有任何想法吗? :(

linux qt bluetooth raspberry-pi bluez
1个回答
0
投票

使用Gatttool:

尝试使用random类型,如果没有问题,最有可能会有效。

sudo gatttool -I -t random

您可以在单个命令本身中绑定到蓝牙地址。

sudo gatttool -I -t random -b <mac address>

使用Hcitool:

sudo hcitool lecc --random <mac address>

执行时,您可以在另一个终端中看到详细的HCI嗅探日志

sudo hcidump -X
© www.soinside.com 2019 - 2024. All rights reserved.