From 5d69e732d811d7772a71ea31628f91ca644d3137 Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Fri, 6 Nov 2015 16:25:51 +0100 Subject: [PATCH] Fix serial port detection on Windows --- lib/Slic3r/GUI.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm index b1f2d8f6b4..eff6efd38c 100644 --- a/lib/Slic3r/GUI.pm +++ b/lib/Slic3r/GUI.pm @@ -320,16 +320,18 @@ sub scan_serial_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"}}; + if (eval "use Win32::TieRegistry qw(KEY_READ); 1") { + my $ts = Win32::TieRegistry->new("HKEY_CURRENT_USER\\HARDWARE\\DEVICEMAP\\SERIALCOMM", + { Access => KEY_READ }); + $ts->Tie(\my %reg); + push @ports, sort values %$reg; } } else { # UNIX and OS X push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*'; } - return @ports; + return grep !/Bluetooth|FireFly/, @ports; } 1;