Discovering available comm ports
From Rxtx
(Difference between revisions)
m (Added a description describing the difference between both examples) |
m |
||
Line 19: | Line 19: | ||
} catch (PortInUseException e) { | } catch (PortInUseException e) { | ||
if (log.isInfoEnabled()) { | if (log.isInfoEnabled()) { | ||
- | log.info("Port, " | + | log.info("Port, " com.getName() ", is in use."); |
} | } | ||
} catch (Exception e) { | } catch (Exception e) { | ||
if (log.isErrorEnabled()) { | if (log.isErrorEnabled()) { | ||
- | log.error("Failed to open port " | + | log.error("Failed to open port " com.getName(), e); |
} | } | ||
} | } | ||
Line 50: | Line 50: | ||
} catch (PortInUseException e) { | } catch (PortInUseException e) { | ||
if (log.isInfoEnabled()) { | if (log.isInfoEnabled()) { | ||
- | log.info("Port, " | + | log.info("Port, " com.getName() ", is in use."); |
} | } | ||
} catch (Exception e) { | } catch (Exception e) { | ||
if (log.isErrorEnabled()) { | if (log.isErrorEnabled()) { | ||
- | log.error("Failed to open port " | + | log.error("Failed to open port " com.getName(), e); |
} | } | ||
} | } |
Revision as of 07:21, 12 April 2007
This code snippet shows how to iretrive the available comms ports on your computer. A CommPort is available if it is not being used by another application. Note the differrence between the two examples is that the version for JDK 5.0 up uses generics:
JDK <= 1.4
/** * @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; }
JDK >= 5.0
/** * @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used. */ public static HashSet<CommPortIdentifier> getAvailableSerialPorts() { HashSet<CommPortIdentifier> h = new HashSet<CommPortIdentifier>(); 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; }