diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index b4fedbc..a002e39 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,32 @@ public class Editor extends JFrame implements RunnerListener { 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); + serialScanned = true; + } + } + try { for (Enumeration enumeration = CommPortIdentifier.getPortIdentifiers(); enumeration.hasMoreElements();)