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)