|
|
@ -55,15 +55,24 @@ sub try_for_raw_serialnum {
|
|
|
|
# High Sierra sometimes has a mismatch between the serial number and the device
|
|
|
|
# High Sierra sometimes has a mismatch between the serial number and the device
|
|
|
|
# filename. I'm not sure why, but system_profiler has a serial number ending in "E",
|
|
|
|
# filename. I'm not sure why, but system_profiler has a serial number ending in "E",
|
|
|
|
# whereas the device filename ends in "1". In fact, when I change HID.getShortName()
|
|
|
|
# whereas the device filename ends in "1". In fact, when I change HID.getShortName()
|
|
|
|
# to return "kbio02", the final character is replaced with a "1", so we should do the
|
|
|
|
# to return "kbio02", the final character is replaced with a "1".
|
|
|
|
# same here. If the serial number doesn't end in a digit, however, we may want to append
|
|
|
|
|
|
|
|
# rather than replace the last character with a 1.
|
|
|
|
|
|
|
|
if ($serial_port_name =~ /\d$/) {
|
|
|
|
if ($serial_port_name =~ /\d$/) {
|
|
|
|
$serial_port_name =~ s/.$/1/;
|
|
|
|
chop $serial_port_name;
|
|
|
|
|
|
|
|
exit_with_port_if_exists($serial_port_name . "1");
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
$serial_port_name .= "1";
|
|
|
|
# If the serial port name doesn't end with a digit, try -appending- rather than replacing
|
|
|
|
|
|
|
|
# the last character of the port name
|
|
|
|
|
|
|
|
exit_with_port_if_exists($serial_port_name . "1");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# and if that didn't work, try replacing the last character with a "1" anyway.
|
|
|
|
|
|
|
|
# Jason Koh reports that he saw this behavior as required on Catalina in May 2020.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chop $serial_port_name;
|
|
|
|
|
|
|
|
exit_with_port_if_exists($serial_port_name . "1");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
exit_with_port_if_exists($serial_port_name);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
sub try_for_location_id {
|
|
|
|
sub try_for_location_id {
|
|
|
|