From cb4c3cf48076a1860ca2db42c99b9c1dec0dcb8b Mon Sep 17 00:00:00 2001 From: Huibean Date: Sun, 4 May 2025 13:58:04 +0800 Subject: [PATCH 1/2] add serial port filter to avoid display system tty port --- dronecan_gui_tool/setup_window.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dronecan_gui_tool/setup_window.py b/dronecan_gui_tool/setup_window.py index 5a3f1c1..b3432a0 100644 --- a/dronecan_gui_tool/setup_window.py +++ b/dronecan_gui_tool/setup_window.py @@ -30,7 +30,7 @@ RUNNING_ON_LINUX = 'linux' in sys.platform.lower() - +MACOS_SERIAL_PORTS_FILTER = ['/dev/tty.debug-console', '/dev/tty.wlan-debug', '/dev/tty.Bluetooth-Incoming-Port'] logger = getLogger(__name__) @@ -100,7 +100,8 @@ def list_ifaces(): for port in QtSerialPort.QSerialPortInfo.availablePorts(): if sys.platform == 'darwin': if 'tty' in port.systemLocation(): - out[port.systemLocation()] = port.systemLocation() + if port.systemLocation() not in MACOS_SERIAL_PORTS_FILTER: + out[port.systemLocation()] = port.systemLocation() else: sys_name = port.systemLocation() sys_alpha = re.sub(r'[^a-zA-Z0-9]', '', sys_name) From d0c64a4a43c546d640d0c35a3083e9a2d6293a08 Mon Sep 17 00:00:00 2001 From: Huibean Date: Sun, 4 May 2025 13:59:52 +0800 Subject: [PATCH 2/2] fix macos try to run linux ifconfig api causing looping error --- dronecan_gui_tool/setup_window.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dronecan_gui_tool/setup_window.py b/dronecan_gui_tool/setup_window.py index b3432a0..c86dbe2 100644 --- a/dronecan_gui_tool/setup_window.py +++ b/dronecan_gui_tool/setup_window.py @@ -115,10 +115,11 @@ def list_ifaces(): out[x] = x try: - from can import detect_available_configs - for interface in detect_available_configs(): - if interface['interface'] == "pcan": - out[interface['channel']] = interface['channel'] + if sys.platform != 'darwin': + from can import detect_available_configs + for interface in detect_available_configs(): + if interface['interface'] == "pcan": + out[interface['channel']] = interface['channel'] except Exception as ex: logger.warning('Could not load can interfaces: %s', ex, exc_info=True)