Bluetooth BlueZ远程设备存在
使用,哪个 是正式的Linux蓝牙协议栈 我想知道以下两种方法中哪一种更适合检测附近设备的存在。 更确切地说,我想定期扫描蓝牙设备(不是BLE=>不发送广告包) 我发现了两种检测方法: 1.)使用l2pingBluetooth BlueZ远程设备存在,bluetooth,bluez,Bluetooth,Bluez,使用,哪个 是正式的Linux蓝牙协议栈 我想知道以下两种方法中哪一种更适合检测附近设备的存在。 更确切地说,我想定期扫描蓝牙设备(不是BLE=>不发送广告包) 我发现了两种检测方法: 1.)使用l2ping # l2ping BTMAC 2.)使用hcitool # hcitool name BTMAC 这两种方法都有效 我想知道,哪种方法会消耗扫描设备的更多电池 查看解决方案#1(): 它使用标准套接字connect调用连接到远程设备,然后使用send命令向其发送数据: send(sk,
# l2ping BTMAC
2.)使用hcitool
# hcitool name BTMAC
这两种方法都有效
我想知道,哪种方法会消耗扫描设备的更多电池
查看解决方案#1():
它使用标准套接字connect
调用连接到远程设备,然后使用send
命令向其发送数据:
send(sk, send_buf, L2CAP_CMD_HDR_SIZE + size, 0)
现在,L2CAP\u CMD\u HDR\u SIZE
为4,默认值SIZE
为44,因此总共发送48个字节,并通过L2CAP\u ECHO\u REQ
接收回来
对于hcitool,我刚刚找到了入口点:
int hci_read_remote_name(int dd, const bdaddr_t *bdaddr, int len, char *name, int to);
我的问题是:
- 以下哪种方法对远程设备更好(功耗更低)?如果有什么区别的话
- 我要缩小L2平的尺寸吗?最低限度是多少
- 我的假设正确吗?
也连接到远程设备并向其发送某种请求以获取其名称hci\u read\u remote\u name
我希望这有帮助。总结得很好,谢谢。减小l2ping的大小不需要重新编译,它有一个命令行选项:
-s
,但默认为44。