2011-06-20 4 views
7


J'ai d'abord essayé d'utiliser javax.comm pour se connecter au port série (COM4). Il n'a même pas ouvert le port série.serialport écrire et lire sur les fenêtres ne fonctionne pas

Ensuite, j'ai essayé d'utiliser les bibliothèques rxtx (rxtx-2.2pre2) pour me connecter. Il connecte et écrit les données mais ne lit aucune donnée du port série.

Existe-t-il une dépendance JDK/plateforme pour utiliser les bibliothèques javax.comm ou rxtx?

J'utilise:
Windows XP SP3,
1.6.0_22 JDK,
rxtx-2.2pre2,
USB adaptateur série,
Portmon (par Microsoft) - pour surveiller l'activité sur série ports
Hyperterminal - pour vérifier si le port COM fonctionne vraiment.
http://goo.gl/mNLNE - exemple de code utilisé pour vérifier lecture et d'écriture

S'il vous plaît laissez-moi savoir si vous avez eu des problèmes similaires comme le mien.

Toute aide est appréciée!

Merci, J

+0

Avoir le même problème ici. J'ai aussi essayé avec purejavacomm. Je vais essayer de commencer une prime. – HRJ

Répondre

1

Après quelques recherches, j'ai pu résoudre moi-même, en réglant explicitement le mode de contrôle de flux. Même si vous n'avez pas besoin de contrôle de flux, la configuration explicite à FLOWCONTROL_NONE aide.

Le même appel n'était pas requis sous Linux.

Si vous définissez le contrôle de flux sur Hardware, je pense qu'il est également nécessaire de définir explicitement RTS afin d'obtenir des notifications dans ce mode. (Non vérifié).

1

J'ai essayé ce code et j'ai réussi. Vous devez avoir trois fichiers avec vous:

comm.jar 
javax.comm.properties 
win32com.dll 

et vous avez besoin de mettre ces fichiers dans des répertoires spécifiques:

comm.jar 
in /java/jre6/lib/ext , /java/jdk_1.6.0.20/jre6/lib/ext , java/jdk_1.6.0.20/lib 

win32com.dll 
in /java/jre6/bin, /java/jdk_1.6.0.20/bin, /windwos/System32 

javax.comm.properties 
in /java/jdk_1.6.0.20/lib, java/jre/lib , /java/jdk_1.6.0.20/jre/lib 
+0

S'il vous plaît essayez d'écrire vos réponses dans un bon anglais, pas de parler de texte. Nous recherchons un contenu de qualité sur SO. –

1

je recommande d'essayer purejavacomm: http://www.sparetimelabs.com/purejavacomm/index.html

Il est une implémentation de javax.comm écrit en Java pur + JNA, qui a complètement résolu le problème de la portabilité entre Windows et Linux pour moi. Il devrait également fonctionner sur OSX ou FreeBSD (ne pas avoir essayé), et devrait être facile à porter sur d'autres OS supportés par JNA, tels que Solaris. Un autre avantage est que vous n'avez pas besoin d'installer une DLL comme vous le faites avec rxtx, et qu'il ne semble pas y avoir un certain bug mangeur de CPU à 100% que rxtx a parfois sur Windows.

Questions connexes