如何在脚本中执行BLE命令?

问题描述 投票:0回答:1

我想在嵌入式 Linux 上设置蓝牙设备。我可以手动执行以下命令来启用我的 BT 设备,并可以从 BLE 扫描仪扫描它。

#bluetoothctl
#menu advertise
#manufacturer 0xffff 0x12 0x34
#name myAX564
#discoverable on
#back
#advertise on
#menu gatt
#register-service e2d36f99-8909-4136-9a49-d825508b297b
#register-characteristic 0x1234 read
#register-characteristic 0x4567 read,write
#register-application
#back
#power on

但是,当我尝试在脚本中运行它时,运行“register-application”后我总是遇到“org.bluex.Error.Failed”。

下面是我的脚本,有人可以帮忙吗?

#!/usr/bin/expect -f
spawn bluetoothctl
expect "Agent registered"
sleep 1
send -- "menu advertise\r"
expect "Menu advertise:"
sleep 2
send -- "manufacturer 0xffff 0x12 0x34\r"
send -- "name myAX564\r"
send -- "discoverable on\r"
send -- "back\r"
expect "Menu main:"
sleep 2
send -- "advertise on\r"
expect "Advertising object registered "
sleep 4
send -- "menu gatt\r"
expect "Menu gatt:"
sleep 4
send -- "register-service e2d36f99-8909-4136-9a49-d825508b297b\r"
expect "Primary (yes/no):"
sleep 2
send -- "yes\r"
sleep 4
send -- "register-characteristic 0x1234 read\r"
expect "Enter value:"
sleep 2
send -- "0xFA\r"
sleep 4
send -- "register-characteristic 0x4567 read, write\r"
expect "Enter value:"
sleep 2
send -- "0xFE\r"
sleep 4
send -- "register-application\r"
sleep 5
expect "Application registered"
send -- "back\r"
expect "Menu main:"
send -- "power on\r"
expect "Changeing power on succeed"
send -- "exit\r"
bluetooth-lowenergy expect bluetoothctl
1个回答
0
投票

终于找到原因了。

应该是“register-characteristic 0x4567 read,write”,“write”之前没有空格。

© www.soinside.com 2019 - 2024. All rights reserved.