Librería CelerCOM para Java

 

CelerCOM es una librería Java minimalista, la cual se puede usar para interactuar con dispositivos externos por medio de puertos COM, por ejemplo: USB, COM virtual. También se puede usar para interactuar con ficheros TTY y FIFO.

CelerCOM

Características principales:

  • El driver nativo para Linux no utiliza dependencias, ni siquiera libc. Esto hace posible utilizar CelerCOM en entornos minimalistas, como sistemas embebidos. Por ejemplo, se ha probado con éxito en Raspberry Pi.
  • El driver nativo para Windows es compatible con todas las versiones de Windows.
  • Si no se cuenta con un driver nativo para el Sistema Operativo (SO) y arquitectura de CPU, entonces CelerCOM utiliza un driver Java, el cual se basa en la API RandomAccessFile (RAF). El driver RAF ofrece compatibilidad limitada con dispositivos externos. Las ventajas del driver nativo se presentan a continuación.
  • Tanto la librería Java como los driver nativos se distribuyen como un único JAR. CelerCOM selecciona el driver nativo apropiado, lo extrae y utiliza automáticamente.

Un driver nativo es usado en los siguientes SO y CPU:

WindowsLinux
x86 (32 bit)
AMD64 (64 bit)
ARM (32 bit)
 

El driver RAF es usado como segunda opción. El driver nativo tiene las siguientes ventajas:

  • El driver nativo permite reestablecer la comunicación automáticamente en caso de errores y desconexiones.
  • En modo nativo el cache del SO para las operaciones de lectura y escritura se deshabilita, lo cual mejora la compatibilidad con algunos dispositivos de comunicación.
  • Las operaciones de lectura generan bloqueo por no más de 200ms en modo nativo. El driver RAF produce bloqueo de manera indefinida en espera de respuesta del dispositivo.

 

¿Cómo se usa?

Simplemente agregue CelerCOM.jar en el classpath. La API se describe en la documentación javadoc.

Contenido de CelerCOM

La librería CelerCOM también se puede usar como terminal TTY. Simplemente ejecute CelerCOM.bat en Windows o CelerCOM.sh en Linux/Unix para abrir la terminal TTY. El puerto COM se puede especificar dentro del script como su único parámetro: COM_PORT.

En Windows el nombre del puerto COM requiere prefijo "\\.\" si el número del puerto es mayor que 9. Ejemplos de puertos válidos en Windows:

COM9
\\.\COM10

En Linux el nombre típico del puerto USB es:

/dev/ttyUSB0

Nótese que puede ser necesario ser miembro del grupo dialout o root para tener acceso al puerto USB o cualquier otro puerto serial en Linux. Esto no es necesario al interactuar con ficheros TTY y FIFO.

La terminal TTY intentará abrir el puerto COM indicado y comenzará a enviar y recibir comandos de texto. Por ejemplo, si el dispositivo soporta comandos AT, estos comandos podrán ser enviados por medio de la terminal TTY.

 

Ejemplos

GitHubPor favor, refiérase a nuestro repositorio en GitHub.