仍在询问BLE设备和gatttool
。
我能够以交互模式发送char-write-cmd,但我无法在非交互模式下执行相同操作。
这是我以交互模式发送的内容:
gatttool -I
[]> connect BTADDR
[BTADDR]> char-write-cmd 0x0040 01
[BTADDR]> exit
通过这种方式,我启动了Alert服务,在我的情况下会发出蜂鸣声。
理论上,非交互模式应该是:
gatttool -b BTADDR --char-write -a 0x0040 -n 01
但这不会将请求命令事件发送到电路板,我会使用开发板进行检查。
答案 0 :(得分:3)
读取或写入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节点(传感器或执行器)配置为读取和回复时,此机制才有效。 来源:: How to use gatttool non-interactive mode Bluetooth Low Energy: listening for notifications/indications in linux
所有这一切,我仍然认为最好控制或从BLE设备获取值。我的方向是继续前进并使用API(可能在python中)为你完成这项工作。
https://github.com/peplin/pygatt 此API已被证明可与Raspberry Pi Jessie destro配合使用。