bluez:与5的连接错误

bluez:与5的连接错误,bluez,bluetooth-lowenergy,Bluez,Bluetooth Lowenergy,我得到上面的errno=5表单,这意味着该命令尚未收到,并且未在主机控制器中处理 谁能告诉我哪里错了吗 我想将蓝牙智能设备与linux计算机连接,但无法正常工作。 下面是功能的参数 hci_le_create_conn(device,htobs(0x0010),htobs(0x0010),0,0, peeraddr,0,15,15,0,3200,1,1,0,1000); 在运行函数之前,我应该先运行sudo hciconfig hci0 down和su

我得到上面的
errno=5
表单,这意味着该命令尚未收到,并且未在主机控制器中处理

谁能告诉我哪里错了吗

我想将蓝牙智能设备与linux计算机连接,但无法正常工作。 下面是功能的参数

hci_le_create_conn(device,htobs(0x0010),htobs(0x0010),0,0,
                     peeraddr,0,15,15,0,3200,1,1,0,1000);

在运行函数之前,我应该先运行
sudo hciconfig hci0 down
sudo hciconfig hci0 up


无论如何,我已成功连接到我的BLE设备

使用蓝牙守护程序重置硬件:

sudobluetoothctl

关闭电源

开机


我相信BlueZ正在逐步淘汰
hciconfig
hcitool
等工具。可以找到更多信息。

您真的必须使用hci_库而不是DBUS接口吗?hci_lib不受官方支持,沿着这条路线走只是通往pain IMHO的一条途径(我之前已经对其进行了评估)。@kaylum-DBUS接口是否允许访问非标准和/或不属于概要文件的GATT属性?当我开始使用Bluez时,有人告诉我不能用DBUS实现这一点,所以我最终使用了内核调用(这就是共享库最终所做的)。@TimTisdall是的,它做到了。两三个月前。新版本现已上市。但是它在技术上仍然是实验性的,并且通过将-E传递给Bluetooth来实现。我已经用过了,而且效果很好。请查看我的附带答案,并获取有关DBus接口的更多信息!我很确定这就是
hciconfig hci0 reset
所做的。检查hciconfig hci0 reset的源代码,并在您的程序中实现类似的功能,因此每次您不需要从命令行
hciconfig
发出命令时,它都将从BlueZ中逐步淘汰,就像
hcitool
等。它利用原始套接字调用。请不要推荐这些作为答案。
int hci_le_create_conn(int dd, uint16_t interval, uint16_t window,
        uint8_t initiator_filter, uint8_t peer_bdaddr_type,
        bdaddr_t peer_bdaddr, uint8_t own_bdaddr_type,
        uint16_t min_interval, uint16_t max_interval,
        uint16_t latency, uint16_t supervision_timeout,
        uint16_t min_ce_length, uint16_t max_ce_length,
        uint16_t *handle, int to)