【问题标题】:Setting up GATT server using bluetoothctl tool使用 bluetoothctl 工具设置 GATT 服务器
【发布时间】:2019-11-18 07:22:23
【问题描述】:

我可以设置 GATT 服务和特性 使用以下命令的最新 bluetoothctl 工具:

注册服务, 寄存器特性, 注册申请

我只是想知道是否有一种方法可以定义基于 GATT 的服务 仅用于 BR/EDR 传输或 LE 传输,使用 bluetoothctl 工具或任何 Bluez 实用工具?任何人都可以摆脱一些 点亮这个?

【问题讨论】:

    标签: bluez bluetooth-gatt pybluez


    【解决方案1】:

    从理论上讲,GATT 层应该不知道使用的是 BLE 还是 BR/EDR。您可以通过以下命令禁用 BLE 来测试这一点:-

    #btmgmt power off
    #btmgmt le off
    #btmgmt power on
    

    之后,您可以使用远程设备上的 gatttool 之类的工具来检查您是否可以看到您使用之前列出的 bluetoothctl 命令创建的服务/特征。

    我希望这会有所帮助。

    【讨论】:

    • 感谢您的回复优素福。目前,我正在进行蓝牙 SIG 认证,有两个测试用例 /TP/GAR/CL/BI-34-C 和 /TP/GAR/CL/BI-35-C 需要基于 GATT 的服务才能使用分别是 LE 传输和 BR/EDR 传输。我尝试了您的建议,但无法通过关闭 BR/EDR 或 LE 的测试用例。我想我需要修改 Bluez 代码才能通过这些测试用例。如果您能指出正确的方向,那就太好了。谢谢!
    • 嘿,爱德华。我相信您正在运行的测试是客户端测试而不是服务器测试,但我知道您仍然需要服务器部分才能使测试通过。我自己从事过 BlueZ 的 SIG 认证工作,如果可能的话,我的建议是放弃 GATT 对经典的支持。 GATT over classic 是一个几乎从未使用过的功能,我相信它是资格的可选部分,所以你可以放弃它。如果您仍然想通过它,那么您是对的,您可能需要修改现有工具。
    • 此外,请查看这些链接,这些链接可能会让您了解这些测试和其他 BlueZ 测试:- 1) git.kernel.org/pub/scm/bluetooth/bluez.git/tree/android/…。 2)git.kernel.org/pub/scm/bluetooth/bluez.git/tree/android。它们已经过时了,但在通过资格认证时仍然是有用的资源。
    • 你好 Youssif,我没有意识到这两个测试用例是可选的。感谢您的提示!我已经放弃了对蓝牙经典的 GATT 支持。
    • 你好 Youssif,还有一个小问题,你成功通过了测试用例“GATT/SR/UNS/BI-01-C”吗?这是一个相对较新的测试用例,于 2017 年推出。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 2020-02-23
    • 1970-01-01
    • 2014-11-16
    • 2016-04-15
    • 2020-05-19
    • 2019-08-08
    相关资源
    最近更新 更多