我一直在使用BLE设备来处理物联网解决方案。断开BLE节点后,我遇到了将BLE节点重新连接到SBC的问题。
案例:我总是要使用$sudo hcitool lescan
进行扫描,然后运行我的bluepy python应用程序来通过BLE请求数据。
此时我可以断开BLE节点并在15秒内重新连接。但是,如果我再等一下,我再次必须运行lescan cmd,然后运行我的bluepy应用程序进行连接和通信。
我只是想在每次运行blupy app之前消除扫描部分。
我可以知道当我执行lescan
cmd之后究竟会发生什么,之后bluepy app开始与我的ble节点通信吗?
我认为lescan cmd会将加密狗切换到ble模式并尝试通过设置标志使用
保持默认模式
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 16 1a
(根据帖子How to set bluez mode?将1a更改为16)
我想要的只是使用ble设备mac ID运行blupy应用程序并开始通信,而无需传感器。
提前致谢
答案 0 :(得分:0)
我找到了一个解决方案,我正在努力寻找R& D的努力。以下脚本用于模拟hcitool lescan
命令。请注意,必须对最后一个cmd进行注释,以便hci0(BT 4.0设备)不会退出le模式。
=============================================== ================
回声" hci0 up"sudo hciconfig hci0 up
echo" *****将hci0设置为主人*****"
sudo hciconfig hci0 lm MASTER
echo" *****设置lescan状态*****"
sudo hcitool -i hci0 cmd 0x08 0x000b 01 10 00 10 00 00 00
sudo hcitool -i hci0 cmd 0x08 0x000c 01 01
echo" *****禁用lescan *****" sudo hcitool -i hci0 cmd 0x08 0x000c 00 00
(您可以评论上述命令以保持LE模式,从而禁用经典BT模式)
=============================================== =============
您可以使用hcidump -R验证上述cmd值,以便在2个不同的终端上扫描已发送的割扫命令。