BlueZ远程设备存在

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

使用BlueZ,其中>>

是官方的Linux蓝牙堆栈

我想知道以下两种方法中的哪一种更适合检测附近设备的存在。更确切地说,我想定期扫描蓝牙设备(不是BLE =>没有发送广告包)。

我发现了两种检测方法:

1。)使用l2ping

# l2ping BTMAC

2。)使用hcitool

# hcitool name BTMAC

两种方法都起作用。

我想知道,哪种方法会耗尽扫描设备的更多电池?

查看解决方案#1(l2ping's source):

它使用标准套接字connect调用连接到远程设备,然后使用send命令向其发送数据:

send(sk, send_buf, L2CAP_CMD_HDR_SIZE + size, 0)

现在,L2CAP_CMD_HDR_SIZE为4,默认size为44,因此总共发送了48个字节,并以L2CAP_ECHO_REQ接收回来。

对于hcitool,我刚刚找到了入口点:

int hci_read_remote_name(int dd, const bdaddr_t *bdaddr, int len, char *name, int to);

我的问题:

  • 这些方法中的哪一种对远程设备更好(功耗更低)?如果有任何区别。
  • 我是否应该减小l2ping的大小?最低值是多少?
  • 我的假设是正确的,hci_read_remote_name也连接到远程设备并向其发送某种请求以获取其名称?

使用BlueZ,这是官方的Linux蓝牙堆栈,我想知道以下两种方法中的哪一种更适合检测附近设备的存在。更确切地说,我要...

bluetooth bluez
1个回答
0
投票

要回答您的问题:-

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