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
OpenGL 0
);
if ($^O eq 'MSWin32') {
$recommends{Win32::TieRegistry} = 0;
}
} elsif ($xs_only) {
%prereqs = %recommends = ();
}

View File

@ -300,10 +300,16 @@ sub scan_serial_ports {
my @ports = ();
# TODO: Windows ports
# UNIX and OS X
push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*';
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
push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*';
}
return @ports;
}