Alternativa estable a RXTX


Después de usar RXTX para varios proyectos diferentes, me he encontrado con muchas discrepancias y problemas molestos que solo se pueden achacar a errores en la biblioteca : bloqueos, riesgos de carrera y subprocesos de monitoreo en lo profundo de la biblioteca RXTX que se dejan abiertos evitando que el programa se cierre (¡a pesar de que todos los puertos que estaba usando se han cerrado!) Ejecutar la última versión "inestable" ha ayudado un poco, pero todavía está lejos de donde yo lo llamaría confiable, y la actividad en el proyecto parece bastante bajo en la actualidad.

Sin embargo, la búsqueda de alternativas multiplataforma gratuitas a RXTX no parece tener mucho más.

¿Hay otra biblioteca que alguien haya probado con más suerte? No necesito soporte de puerto paralelo, solo serial, y no necesariamente tiene que ser compatible con RXTX o la API javax.comm.

Author: Michael Berry, 2012-09-07

6 answers

Nos hemos movido a java-simple-serial-connector que parece ser muy estable y cómodo en la versión actual 0.9.0. Por ahora, funciona en sistemas windows y linux. Lo usamos para las interacciones del módem.

 40
Author: sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-16 16:26:31

También hay serial-comm.

La comunicación serial en Java es un desastre. He tenido problemas con jSSC con un serial usb virtual en linux, pero con serial-comm conectado.

RXTX es un desastre.

Al menos creo que ahora esta pregunta tiene todos los vale la pena mencionar serial communication java libraries.

 13
Author: miguelcobain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-14 07:58:15

Hay algunos de ellos por ahí ahora, ahora que Arduino es bastante popular.

Hay Serialio

Y PureJavaComm, pero es bastante temprano en el desarrollo de lo que puedo ver.

Realmente depende de cuáles sean sus necesidades. RXTX se ha portado prácticamente en todas partes, por lo que está ampliamente disponible.

 4
Author: Mike,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-07 14:01:53

Uno de los problemas de RXTX I fue el retraso en el cierre del puerto. Al comprobar con setserial la configuración del puerto descubrí un parámetro closing_delay=3000. Esto significa que el puerto se cierra 3 segundos después de que se ejecutó el método close (). El restablecimiento del valor closing_delay toany es ignorado por RXTX. RXTX insiste en un retraso de 3 segundos.

La biblioteca JSSC realizada a nuestra satisfacción

 2
Author: sjpapa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-17 13:56:54

Serialo lib es $49/plataforma/desarrollador seat que le consigue distribución ilimitada en aplicaciones ilimitadas por lo que no es demasiado caro. La biblioteca de Mac ha sido estable y confiable para nosotros en una aplicación poco exigente y la disponibilidad/compatibilidad ha sido buena en todas las plataformas de Mac y versiones de OS/X.

 1
Author: user3284703,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-07 18:30:05

Uso socat configurado para servir un socket para un puerto serie. La desventaja es que la tasa de baudios, etc. se da a la invocación socat, no es algo que se puede alterar fácilmente de su programa. La ventaja es que puedo conectarme a través de una red sin nada más que cambiar la dirección IP a la que me conecto.

 1
Author: user2543191,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-22 21:53:18