Discovering available comm ports
From Rxtx
(Difference between revisions)
TrbocCacel (Talk | contribs) |
|||
(78 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | + | http://www.textraccale.com | |
+ | This code snippet shows how to retrieve the available comms ports on your computer. A CommPort is available if it is not being used by another application. Note the difference between the two examples is that the version for JDK 5.0 up uses [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html generics]: | ||
+ | <b>JDK <= 1.4</b> | ||
+ | <pre> | ||
/** | /** | ||
* @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used. | * @return A HashSet containing the CommPortIdentifier for all serial ports that are not currently being used. | ||
Line 16: | Line 19: | ||
h.add(com); | h.add(com); | ||
} catch (PortInUseException e) { | } catch (PortInUseException e) { | ||
- | + | System.out.println("Port, " + com.getName() + ", is in use."); | |
- | + | ||
- | + | ||
} catch (Exception e) { | } catch (Exception e) { | ||
- | + | System.err.println("Failed to open port " + com.getName()); | |
- | + | e.printStackTrace(); | |
- | + | ||
} | } | ||
} | } | ||
Line 28: | Line 28: | ||
return h; | return h; | ||
} | } | ||
+ | </pre> | ||
+ | |||
+ | <b>JDK >= 5.0</b> | ||
+ | <pre> | ||
+ | /** | ||
+ | * @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) { | ||
+ | System.out.println("Port, " + com.getName() + ", is in use."); | ||
+ | } catch (Exception e) { | ||
+ | System.err.println("Failed to open port " + com.getName()); | ||
+ | e.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | return h; | ||
+ | } | ||
+ | </pre> |
Latest revision as of 01:23, 10 July 2009
http://www.textraccale.com This code snippet shows how to retrieve the available comms ports on your computer. A CommPort is available if it is not being used by another application. Note the difference 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) { System.out.println("Port, " + com.getName() + ", is in use."); } catch (Exception e) { System.err.println("Failed to open port " + com.getName()); e.printStackTrace(); } } } 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) { System.out.println("Port, " + com.getName() + ", is in use."); } catch (Exception e) { System.err.println("Failed to open port " + com.getName()); e.printStackTrace(); } } } return h; }