diff options
author | Cristian Maglie <c.maglie@arduino.cc> | 2020-03-23 19:31:12 +0300 |
---|---|---|
committer | Cristian Maglie <c.maglie@bug.st> | 2020-03-23 20:37:59 +0300 |
commit | 8208376507a787b19b716610108df5d2aeac29b0 (patch) | |
tree | 5c585981818ff2a6d6b21998b7b2bd19a3efb88f /arduino-core | |
parent | bb629d1ba026ab76e1521357cd1f1a148f5e5585 (diff) |
SerialDiscovery: refactor search loop
Diffstat (limited to 'arduino-core')
-rw-r--r-- | arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java b/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java index 3eade2aa0..d1be2b390 100644 --- a/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java +++ b/arduino-core/src/cc/arduino/packages/discoverers/serial/SerialDiscovery.java @@ -148,29 +148,20 @@ public class SerialDiscovery implements Discovery, Runnable { Map<String, Object> boardData = platform.resolveDeviceByVendorIdProductId(port, BaseNoGui.packages); - BoardPort boardPort = null; - int i = 0; - - // create new board if in ports but not in boardPorts - for (BoardPort board : boardPorts) { - if (board.toCompleteString().equalsIgnoreCase(newPort)) { - boardPort = boardPorts.get(i); - boardPorts.get(i).setOnlineStatus(true); - break; - } - i++; - } - - if (boardPort != null) { + // if port has been already discovered bring it back online + BoardPort oldBoardPort = boardPorts.stream() // + .filter(bp -> bp.toCompleteString().equalsIgnoreCase(newPort)) // + .findAny().orElse(null); + if (oldBoardPort != null) { + oldBoardPort.setOnlineStatus(true); continue; } - boardPort = new BoardPort(); + BoardPort boardPort = new BoardPort(); boardPorts.add(boardPort); boardPort.setAddress(port); boardPort.setProtocol("serial"); boardPort.setOnlineStatus(true); - boardPort.setLabel(port); if (boardData != null) { |