gpt4 book ai didi

linux - Net::Bluetooth 不发现设备

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:16 27 4
gpt4 key购买 nike

我尝试在 Debian 4.9.110-3+deb9u4 上使用 Perl 连接到我的 LegoBoost。它是一种低功耗蓝牙 (BLE) 设备。我可以使用 gatttoolhci* 实用程序发现并连接到它,但我不喜欢 Perl。我尝试了以下代码:

use Net::Bluetooth;
use Data::Dumper;

print "Get remote devices...\n";
my $rDevice = get_remote_devices();
print Dumper $rDevice;

my $addr = "00:16:53:A5:3E:50";
print "SDP search...\n";
my @spd = sdp_search($addr, "", ""); # LegoBoost
print Dumper \@spd;

返回 undef[undef]。我什至以 root 身份尝试过,但没有成功。

我也尝试连接到这个设备:

print "Connect to device...\n";
my $obj = Net::Bluetooth->newsocket("RFCOMM");
defined($obj) or die "socket error $!\n";
print "Socket got ", Dumper $obj;
system 'lsof', '-p', $$;

my $port = 14;
if($obj->connect($addr, $port) != 0) { die "connect error: $!\n";}
print "Connected...\n";
sleep 5;

#### create a Perl filehandle for reading and writing
my $fd = $obj->perlfh();
print Dumper $fd;
close $fd or die;

输出:

Connect to device...
Socket got $VAR1 = bless( {
'PROTO' => 'RFCOMM',
'SOCK_FD' => 4
}, 'Net::Bluetooth' );
connect error: Host is down

任何想法都会受到赞赏!

提前致谢!

最佳答案

Net::Bluetooth 似乎是用于普通蓝牙设备,不适用于 BLE。我阅读了 Perl 包 Net-Bluetooth-0.41 的源代码。该模块的 get_remote_devices sub 在 Bluetooth.c 中定义为 C 函数。它首先调用hci_get_route(在libbluetooth.so中)然后调用hci_inquiry,它查询蓝牙设备,但不查询BLE设备。 :(

关于linux - Net::Bluetooth 不发现设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52172830/

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