[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