1

我想gatttool在 shell 脚本中使用。

我想要实现的类似于这些:

在交互模式下,我可以这样做:

# gatttool -b xx:xx:xx:xx:xx:xx -I
[xx:xx:xx:xx:xx:xx][LE]> connect
Attempting to connect to xx:xx:xx:xx:xx:xx
Connection successful
[xx:xx:xx:xx:xx:xx][LE]> char-write-cmd 0x0025 aabbcc
Notification handle = 0x0025 value: aa bb cc

现在,如果我以非交互方式运行:

# gatttool -b xx:xx:xx:xx:xx:xx --char-write --handle=0x0025 --value=aabbcc

它只是挂起,我需要打破它,CTRL+C并且不会向设备发送任何内容。

现在,以上所有问题都建议使用--char-write-req而不是--char-write.

但这是误导,因为请求和命令意味着不同的东西。

我的设备不接受请求,只接受命令(即使在交互模式下!)。因此,尝试发送相同的数据request将失败:

# gatttool -b xx:xx:xx:xx:xx:xx -I
[xx:xx:xx:xx:xx:xx][LE]> connect
Attempting to connect to xx:xx:xx:xx:xx:xx
Connection successful
[xx:xx:xx:xx:xx:xx][LE]> char-write-req 0x0025 aabbcc
Error: Characteristic Write Request failed: Attribute can't be written

现在当然使用上述问题 ( --char-write-req) 中的建议将失败:

# gatttool -b xx:xx:xx:xx:xx:xx --char-write-req --handle=0x0025 --value=aabbcc
Characteristic Write Request failed: Attribute can't be written

那么,如果我不想为此使用任何 Python 或类似的过度杀伤力,那么编写特征命令的非交互式替代方法是什么?

4

0 回答 0