RECURSOS I: RUTINA CONSOLA_IO

[Introducción]

[características]

[Autores]

[Licencia]

[Historia]

[Ejemplo]

[Download]

[Enlaces]

[Noticias]




Introducción

Consola_io son un conjunto de funciones escritas en C para acceder al teclado. En los sistemas Linux/Unix, la consola por defecto está configurada para ser “bloqueante”. Cada vez que una aplicación quiere leer información del teclado, se quedará bloqueada hasta que el usuario haya introducido los datos y pulsado la tecla Enter. Con las rutinas de Consola_io se podra acceder directamente al teclado, sin tener necesidad de “bloquearnos”.

En aplicaciones que utilizan la consola, sobre todo en programas de prueba, resulta muy útil poder leer directamente las teclas, sin esperar a la pulsación de Enter. O bien, detectar si alguna tecla (la que sea) ha sido apretada.

Yo utilizo estas rutinas para hacer programas de prueba para el manejo de robots. Por ejemplo, una aplicación de prueba que me permita mover un robot utilizando las teclas (Normalmente usando las teclas O,P,Q,A, a las que me acostumbre cuando jugaba con el Spectrum :-)


Características


Ejemplo

El ejemplo completo se encuentra en el fichero test-consola-io.c, incluido en el paquete fuente. Aquí se reproduce un fragmento (modificado por simplicidad), en el que se comprueba si hay una tecla pulsada. Si es así, se lee y se imprime en pantalla. Sino, el programa continúa.

if (consola_io_kbhit()) //-- ¿Tecla pulsada?

  { //-- Si, leerla

    c=consola_io_getch();

    printf (“Tecla: %c\n”,c);

  } //-- No, continuar

El programa test-consola_io.c muestra un menú con dos opciones (que no hacen nada). El usuario selecciona la opción apretando las teclas 1 ó 2. Mientras no haya tecla pulsada, el programa principal rotará una “barrita” (para mostrar que no está bloqueado).

Aquí se muestra un pantallazo de su funcionamiento en una consola Linux:

Exactamente el mismo programa, sin hacer ninguna modificación en el código fuente, se puede compilar directamente para Windows, utilizando Cygwin. Aquí se puede ver un pantallazo de su funcionamiento en una consola de MS-DOS, en una máquina con Windows XP:

Para compilar test-consola-io, bajar el paquete consola_io-x.x.tar.gz y hacer:

$ tar vzxf consola_io-x.x.tar.gz

$ cd consola_io-x.x

$ make

y para ejecutar:

$ ./test-consola-io

Se hace exactamente igual desde una Shell Cygwin en Windows (pero tienen que estar instaladas todas las herramientas de desarrollo: make, gcc, etc.)


Autores


Licencia

Licencia GPL. Se conceden permisos para copiar, distribuir, modificar y redistribuir las modificaciones.


Historia

Las rutinas de Consola_io las tengo escritas desde hace muchísimos años y las he estado empleando para hacer programas de pruebas, normalmente de otras rutinas. Sin embargo, siempre que las intento buscar para utilizarlas, nunca las encuentro. Al final me tengo que acordar de los programas en las que las he usado. Para que no me vuelva a ocurrir, he decidido colgarlas en la web. Así además, le pueden resultar útiles a otras personas.


Download

Software para descargar

consola_io-1.0.tar.gz

Paquete con las fuentes y el programa de ejemplo test-consola-io. Para Linux y Windows (Cygwin). Versión 1.0.





Enlaces


Noticias



Juan González

IEAROBOTICS