Gatttool非交互模式--char-write。

4

关于BLE设备和gatttool的问题。

我可以在交互模式下发送char-write-cmd,但在非交互模式下无法执行相同操作。

以下是我在交互模式下发送的内容:

gatttool -I

[]> connect BTADDR

[BTADDR]> char-write-cmd 0x0040 01

[BTADDR]> exit

我这样启动了警报服务,在我的情况下会有蜂鸣器声响起。

理论上,非交互模式应该是:

gatttool -b BTADDR --char-write -a 0x0040 -n 01

但这并没有向板发送请求命令事件,我正在使用开发板进行检查。

我有完全相同的问题。交互模式可以工作,但非交互模式不行。我可以在非交互模式下发送写请求,但无法发送写命令。我已查看了gatttool的源代码,但没有发现任何明显的错误。你能让它正常工作吗? - Mr Stinky
1个回答

5

手动(非交互式)读写BLE外设的方法:

一次性写入并接收回复:(取决于您如何配置BLE设备)

sudo gatttool -i hci0 -b xx:xx:xx:xx:xx:xx --char-write-req -a 0x0025 -n ff

持续写入和接收回复:(直到您断开与BLE设备的连接或停止蓝牙客户端)

sudo gatttool -i hci0 -b xx:xx:xx:xx:xx:xx --char-write-req -a 0x0025 -n ff --listen

注意,我只在末尾添加了--listen选项。此机制仅在您配置BLE节点(传感器或执行器)以读取和回复时才起作用。
来源: 如何使用gatttool非交互模式 低功耗蓝牙:在linux中监听通知/指示 话虽如此,我仍认为最好不要控制或获取BLE设备的值。我的方向是向前发展并使用API(可能是Python)为您完成工作。 https://github.com/peplin/pygatt 这个API已经被证明可以与Raspberry Pi Jessie destro一起使用。

我仍然认为控制或获取BLE设备的值不是最好的选择--为什么?pyGATT在其内部实现中使用gatttool CLI方法。如果您不喜欢使用CLI方法,我建议使用BlueZ Libs实现本地库。 - ABHIJITH KINI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接