From 802b37b3f6fd834a6c2f9c7d6867f92e8c029cf4 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 7 Oct 2010 17:43:56 +0100 Subject: [PATCH 1/2] Override rxtx's default set of scanned serial ports on Linux to include /dev/ttyACM* required for Uno. --- app/src/processing/app/Editor.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index b4fedbc74ac..856c5293ae0 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -98,6 +98,7 @@ public class Editor extends JFrame implements RunnerListener { static SerialMenuListener serialMenuListener; static SerialMonitor serialMonitor; + boolean serialScanned; EditorHeader header; EditorStatus status; @@ -940,6 +941,31 @@ protected void populateSerialMenu() { serialMenu.removeAll(); boolean empty = true; + if ( System.getProperty("os.name").equals("Linux") + && ( serialScanned + || System.getProperty("gnu.io.rxtx.SerialPorts") == null ) ) { + String[] prefixes = { + "ttyS", "ttyUSB", "ttyACM" + }; + String SerialPorts = null; + File devicesDir = new File("/dev/"); + for ( String device : devicesDir.list() ) { + for ( String prefix : prefixes ) { + if ( device.startsWith(prefix) ) { + if ( SerialPorts == null ) { + SerialPorts = "/dev/" + device; + } + else { + SerialPorts += ":/dev/" + device; + } + } + } + } + if ( SerialPorts != null ) { + System.setProperty("gnu.io.rxtx.SerialPorts", SerialPorts); + } + } + try { for (Enumeration enumeration = CommPortIdentifier.getPortIdentifiers(); enumeration.hasMoreElements();) From d1c9afda9ffecd1337f8be6adc918a774ae76736 Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Thu, 7 Oct 2010 17:49:07 +0100 Subject: [PATCH 2/2] Detect USB devices that are plugged in after the first scan. --- app/src/processing/app/Editor.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 856c5293ae0..a002e39fe2b 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -963,6 +963,7 @@ protected void populateSerialMenu() { } if ( SerialPorts != null ) { System.setProperty("gnu.io.rxtx.SerialPorts", SerialPorts); + serialScanned = true; } }