2011-06-20 32 views
7


Primero traté de usar javax.comm para conectarme al puerto serie (COM4). Ni siquiera abrió el puerto serie.serialport escribir y leer en ventanas que no funcionan

Luego traté de usar bibliotecas rxtx (rxtx-2.2pre2) para conectarme. Conecta y escribe los datos, pero no lee ningún dato del puerto serie.

¿Existe alguna dependencia de JDK/plataforma para usar bibliotecas javax.comm o rxtx?

estoy usando:
Windows XP SP3,
JDK 1.6.0_22,
rxtx-2.2pre2,
adaptador de USB a Serial,
Portmon (Microsoft) - para monitorear la actividad en serie puertos
Hiperterminal - para comprobar si el puerto COM realmente funciona.
http://goo.gl/mNLNE - código de ejemplo utiliza para comprobar leer y escribir

Por favor, hágamelo saber si usted ha experimentado ningún problemas similares como la mía.

¡Se agradece cualquier ayuda!

Gracias, J

+0

Tiene el mismo problema aquí. Intenté con purejavacomm también. Intentaré comenzar una recompensa. – HRJ

Respuesta

1

Después de algo de investigación, que fue capaz de resolver esto por mí mismo, estableciendo explícitamente el modo de control de flujo. Incluso si no requiere control de flujo, configurarlo explícitamente a FLOWCONTROL_NONE ayuda.

La misma llamada no era necesaria en Linux.

Si está configurando el control de flujo en Hardware, creo que también es necesario establecer el STR explícitamente para poder recibir notificaciones en este modo. (No verificado).

1

He intentado este código y se ha realizado correctamente. Es necesario tener tres archivos con usted:

comm.jar 
javax.comm.properties 
win32com.dll 

y hay que poner estos archivos en directorios específicos:

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

Intente escribir sus respuestas en inglés correcto, no en texto. Estamos buscando contenido de calidad en SO. –

1

recomendaría probar purejavacomm: http://www.sparetimelabs.com/purejavacomm/index.html

Es una implementación de javax.comm escrito en pure java + JNA, que resolvió completamente el problema de la portabilidad entre Windows y Linux para mí. También debería funcionar en OSX o FreeBSD (no lo ha intentado), y debería ser fácil de transferir a otros OS-es compatibles con JNA, como Solaris.

Otra ventaja es que no necesita instalar una DLL como lo hace con rxtx, y que no parece tener un cierto 100% de error en la CPU que rxtx a veces tiene en Windows.