Я пытаюсь подключиться к своему LegoBoost
в Perl
на Debian 4.9.110-3+deb9u4
. Это Bluetooth-устройство с низким энергопотреблением (BLE). Я могу обнаружить и подключиться к нему с помощью утилит gatttool
и hci*
, но мне не повезло с 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
Любая идея приветствуется!
Заранее спасибо!