[Rxtx] RXTX Development

Bruce Griffith Bruce.Griffith at se-eng.com
Fri Oct 28 13:03:25 MDT 2011


> The Serial port users have a few bug fixes on the mail-list. ...
> What is missing for your use case?

Here's my list, not necessarily in order of importance:

1. Metadata about enumerated ports

   RXTX should provide extended metadata about discovered ports when 
   available, specifically device and vendor IDs.  Serial and parallel 
   ports provided by chipsets are getting rare.  USB and Bluetooth
   ports are getting much more common.

2. Port locking on LINUX

   Most newer LINUX distros provide a port locking mechanism and/or 
   change the path where port locks are supposed to be held.

3. Exceptions, error handling, and reporting 

   Most errors report "port in use", even when that isn't the problem.
   Some native code errors are unhandled and can lead to downstream
   issues that are hard to diagnose.  I can't even count the number of 
   "RXTX bugs" that were really caused by application errors, but
   attributed to RXTX because of misleading exception handling or
   unhandled native code errors.

   We've found RXTX to be pretty stable when things are working, but 
   not very good at attributing errors to their source (i.e. bad at 
   self-defense).

4. Port name nomenclature / prefixes 

   If you end up with Java calling into a CYGWIN shell, port names 
   need to be prefixed with "/dev/" (e.g. "/dev/com15"), and there 
   can be issues using ports higher than COM16 (a CYGWIN build
   option).  Otherwise, Windows ports need to be prefixed with
   "\\.\" for ports numbered COM10 or higher (e.g. \\.\COM21).  

   On LINUX there are myriad prefixes for ports provided by add-on 
   cards, USB, and other adapters.  It would be nice if RXTX did not 
   limit prefixes to the ones hardcoded into the native code.

   Since port prefixes are unique to the platform, it would be really
   nice if the native code handled the problem in an OS-specific way
   so that Java application code doesn't need to know about the 
   underlying OS.

5. Dynamic ports

   Bluetooth and USB ports can be dynamically added and removed while
   RXTX is active.  It would be nice to have better support for these.
   In our implementation, we explicitly look for and ignore Bluetooth
   ports because they cause problems.

I have code I can contribute for Windows for some of these things ...   

Bruce Griffith
Sage Electronic Engineering, LLC





More information about the Rxtx mailing list