From a49963d0ad5ad8356591c1c111d1152378cb06d5 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Wed, 11 Feb 2015 11:11:58 +0100 Subject: [PATCH] Filter out /dev/cu* ports, can be re-enabled manually adding "serial.ports.showall=true" into preferences.txt file Closes #2624 --- app/src/processing/app/Editor.java | 2 ++ arduino-core/src/processing/app/Platform.java | 5 +++++ .../src/processing/app/macosx/Platform.java | 20 ++++++++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 3794c0f2a..76f5ca055 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1000,6 +1000,8 @@ public class Editor extends JFrame implements RunnerListener { List ports = Base.getDiscoveryManager().discovery(); + ports = Base.getPlatform().filterPorts(ports, Preferences.getBoolean("serial.ports.showall")); + Collections.sort(ports, new Comparator() { @Override public int compare(BoardPort o1, BoardPort o2) { diff --git a/arduino-core/src/processing/app/Platform.java b/arduino-core/src/processing/app/Platform.java index 0ee14fe69..97f25aae6 100644 --- a/arduino-core/src/processing/app/Platform.java +++ b/arduino-core/src/processing/app/Platform.java @@ -30,6 +30,7 @@ import java.util.Map; import javax.swing.UIManager; +import cc.arduino.packages.BoardPort; import com.sun.jna.Library; import com.sun.jna.Native; import processing.app.debug.TargetBoard; @@ -217,4 +218,8 @@ public class Platform { _("Unspecified platform, no launcher available.\nTo enable opening URLs or folders, add a \n\"launcher=/path/to/app\" line to preferences.txt"), null); } + + public List filterPorts(List ports, boolean aBoolean) { + return new LinkedList(ports); + } } diff --git a/arduino-core/src/processing/app/macosx/Platform.java b/arduino-core/src/processing/app/macosx/Platform.java index 486a986ad..21ee82e08 100644 --- a/arduino-core/src/processing/app/macosx/Platform.java +++ b/arduino-core/src/processing/app/macosx/Platform.java @@ -22,6 +22,7 @@ package processing.app.macosx; +import cc.arduino.packages.BoardPort; import com.apple.eio.FileManager; import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.Executor; @@ -35,7 +36,8 @@ import java.awt.*; import java.io.*; import java.lang.reflect.Method; import java.net.URI; -import java.util.Map; +import java.util.*; +import java.util.List; /** @@ -239,4 +241,20 @@ public class Platform extends processing.app.Platform { return super.preListAllCandidateDevices(); } } + + @Override + public java.util.List filterPorts(java.util.List ports, boolean showAll) { + if (showAll) { + return super.filterPorts(ports, true); + } + + List filteredPorts = new LinkedList(); + for (BoardPort port : ports) { + if (!port.getAddress().startsWith("/dev/cu.")) { + filteredPorts.add(port); + } + } + + return filteredPorts; + } }