Discovering available comm ports

From Rxtx

(Difference between revisions)
Jump to: navigation, search
(x8aba60)
 
(68 intermediate revisions not shown)
Line 1: Line 1:
-
<a href="http://e46ea4.com">1025f3</a> | [url=http://cb4c8b.com]cc97f3[/url] | [link=http://3c8010.com]31f652[/link] | http://1f0341.com | 5d8eb3 | [http://cf85b8.com 03d710]
+
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.
 +
    */
 +
    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;
 +
    }
 +
</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;
    }
Personal tools