2015-01-10 256 views
3

我很新的Linux和蓝牙开发,我不确定sudo hcitool lecc <bdaddr>sudo gatttool -b <dbaddr> -I之间的区别?我不需要任何关贸总协定的服务;我只是想要两个设备之间的连接。Bluez BLE连接Linux

我看隐约以下this widely referred to tutorial,并期待在适应在配合bluez /tools/hcitool.c的cmd_lecc方法,但我无法连接到使用hcitool lecc我的BLE装置。

当我使用gatttool进行连接时,我可以成功连接,但使用hcitool lecc会返回错误“无法创建连接:连接超时”,并且没有连接到BLE设备。但是,运行sudo hcitool con以显示活动连接表明存在一个:'未知的句柄0状态2 lm SLAVE'。如果它没有建立连接,为什么在hcitool中将连接注册为活动连接?因此

我的问题有三个方面:

  1. 两者有什么命令之间的区别?
  2. gatttool适合我的目的,或者我应该制定出什么不hcitool工作(以下类似this
  3. 为什么sudo hcitool lecc <bdaddr>部分连接,即使超时?

非常感谢

回答

1

hcitool lecc <bdaddr>创建一个连接并返回一个句柄,而gatttool -b <bdaddr> -I只打开一个交互式终端,其中一个接口绑定到该地址但尚未连接使用gatttool命令,您必须输入connect,这很可能也会失败。

我建议寻找如何hcitool连接编写自己的代码,因为所有的gatttool简单地说就是大约在同一过程hcitool用途的包装,但除非你复制其代码包装中不可用。

最后,手柄0表示hcitool的报告是从尝试连接留下了一个无效的句柄,因为据我所见过的所有有效句柄是大于0