web-dev-qa-db-fra.com

Alternative stable au RXTX

Après avoir utilisé RXTX pour un certain nombre de projets différents, je suis tombé sur de nombreuses anomalies et problèmes gênants qui ne peuvent être raisonnablement imputables qu'aux bogues de la bibliothèque - les blocages, les risques de course et les threads de surveillance profondément dans la bibliothèque RXTX restent ouverts empêchant le programme de la fermeture (même si tous les ports que j'utilisais ont été fermés!) L'exécution de la dernière version "instable" a un peu aidé, mais c'est encore loin de ce que je qualifierais de fiable, et l'activité sur le projet semble plutôt faible maintenant.

Cependant, la recherche d'alternatives multiplateformes gratuites à RXTX ne semble pas trouver grand-chose d'autre.

Y a-t-il une autre bibliothèque que quelqu'un a essayé avec plus de chance? Je n'ai pas besoin de prise en charge de port parallèle, juste série, et il ne doit pas nécessairement être compatible avec RXTX ou le javax.comm API.

49
Michael Berry

Nous sommes passés à Java-simple-serial-connector qui semble être très stable et confortable dans la version actuelle 0.9.0. Pour l'instant, cela fonctionne sur les systèmes Windows et Linux. Nous l'utilisons pour les interactions par modem.

44
sebastian

Il y a aussi serial-comm .

La communication série en Java est un gâchis. J'ai eu des problèmes avec jSSC avec une série USB virtuelle sur Linux, mais avec une communication série, il est connecté.

RXTX est un gâchis.

Au moins, je pense que maintenant cette question SO a toutes les mérites de mentionner la communication série Java bibliothèques.

14
miguelcobain

Il y en a quelques-uns maintenant, maintenant que Arduino est assez populaire.

Il y a Serialio

et PureJavaComm , mais c'est assez tôt dans le développement d'après ce que je peux voir.

cela dépend vraiment de vos besoins. RXTX a été porté à peu près partout, il est donc largement disponible.

5
Mike

L'un des problèmes rencontrés par RXTX que j'ai rencontré était le délai de fermeture du port. Lors de la vérification avec setserial de la configuration du port, j'ai découvert un paramètre fermeture_delay = 30. Cela signifie que le port se ferme 3 secondes après l'exécution de la méthode close (). La réinitialisation de la valeur de fermeture_delay à toute valeur est ignorée par RXTX. RXTX insiste sur un délai de 3 secondes.

la bibliothèque JSSC exécutée à notre satisfaction

2
sjpapa

Serialio lib coûte 49 $/plateforme/siège développeur, ce qui vous permet une distribution illimitée dans des applications illimitées, donc pas trop cher. La bibliothèque Mac a été stable et fiable pour nous dans une application peu exigeante et la disponibilité/compatibilité a été bonne tout au long des différentes plates-formes Mac et des versions OS/X.

1
user3284703

J'utilise socat configuré pour servir de socket pour un port série. L'inconvénient est que le débit en bauds, etc. est donné à l'invocation socat, ce n'est pas quelque chose que vous pouvez facilement modifier à partir de votre programme. L'avantage est que je peux me connecter sur un réseau sans rien de plus que de changer l'adresse IP à laquelle je me connecte.

1
user2543191