From 7dd7fb3281290feaf60cdb9307e3c1f660c5c0c5 Mon Sep 17 00:00:00 2001 From: Oliver Schmidt Date: Fri, 19 Aug 2022 14:48:03 +0200 Subject: [PATCH] Adapt to the different error signatures on Linux. So far the code was only tested on Windows. --- RaspberryPi/apple2driver/a2io/cdcio.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/RaspberryPi/apple2driver/a2io/cdcio.go b/RaspberryPi/apple2driver/a2io/cdcio.go index f923ed7..b699947 100644 --- a/RaspberryPi/apple2driver/a2io/cdcio.go +++ b/RaspberryPi/apple2driver/a2io/cdcio.go @@ -11,6 +11,7 @@ import ( "bytes" "errors" "fmt" + "strings" "time" "go.bug.st/serial" @@ -28,19 +29,20 @@ func (a2 CDCio) Init() { name := "" for { portInfos, err := enumerator.GetDetailedPortsList() - if err != nil { - panic(err) - } - for _, portInfo := range portInfos { - if portInfo.IsUSB && portInfo.VID == "2E8A" && portInfo.PID == "000A" { - name = portInfo.Name - fmt.Printf("Found CDC port %s\n", name) + if err == nil { + for _, portInfo := range portInfos { + if portInfo.IsUSB && + strings.ToUpper(portInfo.VID) == "2E8A" && + strings.ToUpper(portInfo.PID) == "000A" { + name = portInfo.Name + fmt.Printf("Found CDC port %s\n", name) + break + } + } + if name != "" { break } } - if name != "" { - break - } time.Sleep(time.Millisecond) } @@ -51,7 +53,9 @@ func (a2 CDCio) Init() { break; } var portErr *serial.PortError - if !errors.As(err, &portErr) || portErr.Code() != serial.PortNotFound { + if !errors.As(err, &portErr) || + portErr.Code() != serial.PortNotFound && + portErr.Code() != serial.PermissionDenied { panic(err) } time.Sleep(time.Millisecond)