Serial ports detection on Win32

This commit is contained in:
Alessandro Ranellucci 2015-01-04 23:53:59 +01:00
parent 9af43bee52
commit 9507fb91f0
2 changed files with 13 additions and 4 deletions

View File

@ -46,6 +46,9 @@ if ($gui) {
Wx::GLCanvas 0 Wx::GLCanvas 0
OpenGL 0 OpenGL 0
); );
if ($^O eq 'MSWin32') {
$recommends{Win32::TieRegistry} = 0;
}
} elsif ($xs_only) { } elsif ($xs_only) {
%prereqs = %recommends = (); %prereqs = %recommends = ();
} }

View File

@ -300,10 +300,16 @@ sub scan_serial_ports {
my @ports = (); my @ports = ();
# TODO: Windows ports if ($^O eq 'MSWin32') {
# Windows
my %reg;
if (eval "use Win32::TieRegistry (TiedHash => \\%reg); 1") {
push @ports, sort values %{$reg{"HKEY_CURRENT_USER\\HARDWARE\\DEVICEMAP\\SERIALCOMM"}};
}
} else {
# UNIX and OS X # UNIX and OS X
push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*'; push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*';
}
return @ports; return @ports;
} }