【发布时间】:2018-06-28 15:45:03
【问题描述】:
我使用 gatttool 与 BLE 设备建立了连接。首先,我使用sudo gatttool -t random -b FF:3C:8F:22:C9:C8 -I 和connect 连接到设备。之后,我用char-read-uuid 2d30c082-f39f-4ce6-923f-3484ea480596 读取了特定特征的值。
我想要做的是自动化整个过程并将后一个命令(查询值)放入循环中,理想情况下将每个值(附加)保存到文本文件中。我尝试了类似的东西
sudo gatttool -t random -b FF:3C:8F:22:C9:C8 -I <<EOF
connect
while[ 1 ]; do
char-read-uuid 2d30c082-f39f-4ce6-923f-3484ea480596 > output.txt
done
exit 1
EOF
但这无济于事,因为我什至无法连接到设备(理想情况下,第一个命令和第二个命令之间应该有一些延迟)。同样在连接后,交互模式被启用,并且 shell 命令在那里不起作用。我会很感激有关如何解决此问题的任何线索。
【问题讨论】:
-
如果您想坚持使用 bash 内置函数,我建议您查看 coprocesses。否则,如果您想让事情尽可能简单,
socat的EXEC:形式可以是启动脚本的简单方法,其标准输入和标准输出附加到另一个命令的输入和输出。跨度> -
...也就是说,很多细节取决于...嗯... details,例如
gattool是否将提示写入stderr 或stdout。跨度> -
好的,看看这些。非常感谢!
标签: bash shell ubuntu bluetooth gatt