Discovering available comm ports
From Rxtx
(Difference between revisions)
Revision as of 16:59, 27 November 2006
/** * @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used. */ public static HashSet getAvailableSerialPorts() { HashSet h = new HashSet(); Enumeration thePorts = CommPortIdentifier.getPortIdentifiers(); while (thePorts.hasMoreElements()) { CommPortIdentifier com = (CommPortIdentifier) thePorts.nextElement(); switch (com.getPortType()) { case CommPortIdentifier.PORT_SERIAL: try { CommPort thePort = com.open("CommUtil", 50); thePort.close(); h.add(com); } catch (PortInUseException e) { if (log.isInfoEnabled()) { log.info("Port, " + com.getName() + ", is in use."); } } catch (Exception e) { if (log.isErrorEnabled()) { log.error("Failed to open port " + com.getName(), e); } } } } return h; }