gpt4 book ai didi

javascript - Nodejs 查找已知蓝牙设备

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:11 24 4
gpt4 key购买 nike

是否可以在 Nodejs 脚本中查找给定地址的蓝牙设备?

有一些软件包,主要的是 Noble。然而,他们都专注于扫描,而不是查找已知地址(据我所知!)。

我想要实现的是查找已知地址,看看是否可以找到设备。就像 PyBluez 对 Python 所做的那样:bluetooth.lookup_name('CC:20:E8:8F:3A:1D', timeout=5)

在 Python 中,即使无法发现设备,这也可以找到设备,这与典型的查询扫描不同。

最佳答案

我遇到了同样的问题,刚刚找到了 btwatch 库,但它在最新的 raspbian 上不适用于我。但源代码只是调用 l2ping 并寻找一个字符串,我猜测该字符串在成功时不再打印,因此一旦安装了 l2ping(我认为 npm bluetooth 或 pybluez 有它),下面修改后的代码就会起作用,类似于lookup_name方法。

var Spawn = require('child_process').spawn;

function detectMacAddress(macAddress, callback)
{
//var macAddress = '72:44:56:05:79:A0';
var ls = Spawn('l2ping', ['-c', '1', '-t', '5', macAddress]);

ls.stdout.on('data', function (data) {
console.log("Found device in Range! " + macAddress);
callback(true);
});

ls.on('close', function () {
console.log("Could not find: " + macAddress);
callback(false);
});
}

或者,同步方式,

var execSync = require('child_process').execSync;

function detectMacAddressSync(macAddress)
{
var cmd = 'l2ping -c 1 -t 5 ' + macAddress;
try
{
var output = execSync(cmd );
console.log("output : "+ output );
return true;
}
catch(e)
{
console.log("caught: " + e);
return false;
}
}

关于javascript - Nodejs 查找已知蓝牙设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com