【问题标题】:Bluez BLE Connection LinuxBluez BLE 连接 Linux
【发布时间】:2015-03-08 16:48:13
【问题描述】:

我对 Linux 和蓝牙开发非常陌生,我不确定 sudo hcitool lecc <bdaddr>sudo gatttool -b <dbaddr> -I 之间的区别?我不需要任何 GATT 服务;我只想要两个设备之间的连接。

我正在模糊地关注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> 部分连接,即使它超时?

非常感谢。

【问题讨论】:

    标签: c linux bluetooth-lowenergy bluez hci


    【解决方案1】:

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

    我建议查看hcitool 如何连接以编写您自己的代码,因为所有gatttool 只是围绕hcitool 使用的同一进程的包装器,但除非您复制其代码,否则它的包装器不可用。

    最后,hcitool 报告的句柄 0 是尝试连接时留下的无效句柄,因为据我所知,所有有效句柄都大于 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 2020-11-07
      • 2016-04-18
      • 2016-02-02
      • 2016-02-02
      • 2019-02-08
      • 1970-01-01
      • 2020-10-20
      相关资源
      最近更新 更多