Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

toptnc (541)

toptnc
  toptncNO@SPAMgmail.com
Jabber: toptnc@gmail.com

Down Kill Up Publicidad

Bitácora de toptnc (541)

Lunes, 07 de Noviembre 2005

[Pregunta a BP] Xterm en modo raw

11:46h.
Kernel Linux
Ya no se a quien mas recurrir.

El caso es que tengo un problema con las terminales X. una aplicación requiere leer un código de un lector de tarjetas de banda magnética. Este lector va conectado al puerto del teclado y la lectura se envía al buffer de teclado, de manera que para la aplicación la lectura de la tarjeta es una lectura de teclado normal.

El código que hay que leer esta entre dos caracteres ^ es decir podria ser algo como esto:

RUIDORUIDO^SE10243212334FG31^RUIDORUIDO

El problema esta en el caracter ^. Si este caractere va seguido de una letra (S por ejemplo), en vez de aparecer la secuencia ^S, el terminal emite un pitido y no imprime nada, o en el mejor de los casos, imprime la S con el acento circunflejo encima.

Lo curioso del asunto es que si hago esto mismo desde una consola de texto si funciona bien. Lo malo es que el programa que tengo que usar utiliza Java Web Start para arrancar, o sea, que necesita las X.

He estado trasteando con stty para intentar emular las condiciones de un terminal de texto, pero no he logrado que se solucione el problema.

¿Alguna sugerencia?
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Bueno ...

    (Puntos:2)
    por Tom Bomba (3108) el Lunes, 07 Noviembre de 2005, 14:01h (#633859)
    ( http://barrapunto.com/ )
    ... de alguna manera se están interpretando 2 caracteres como uno solo ¿estás seguro de que ^S no es la visualización de un código de control?.

    Yo no he conseguido reproducirlo usando xterm. ¿ Has jugado con la configuración del xterm (los menús que aparecen "pinchando" con los botones del ratón ?.

    Por otra parte, quizás sea el bash. Creo que das pocos datos.

    Suerte!
  • por pax01 (10710) el Lunes, 07 Noviembre de 2005, 14:16h (#633882)
    ( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
    Me parece que el problema puede venir de que las X te traducen las pulsaciones raw ^S a Ŝ, igual que 'a traducen a á. A lo mejor podrías cambiar la configuración de teclado a alguno que no haga esta traducción, o incluso crearte una a medida.

    Si no, y si no necesitas el teclado para otra cosa, podrías intentar leer directamente desde /dev/console, pero ahí vas a tener los códigos de escaneo directamente así que tendrías que traducirlos dentro de la aplicación.
  • Mas datos

    (Puntos:2)
    por toptnc (541) <toptncNO@SPAMgmail.com> el Lunes, 07 Noviembre de 2005, 17:12h (#634093)
    ( Última bitácora: Jueves, 27 Febrero de 2014, 09:39h )
    Gracias a los dos por haber dado alguna sugerencia.

    Tom Bomba. Siento dar pocos datos, pero es lo poco que he podido averiguar. Igual hasta estoy equivocado y no es un problema del terminal, pero es el primer sitio y el más lógico que se me ocurre mirar.

    pax01. Sobre lo de cambiar el mapa de teclado, dudo que sea eso, pero lo probaré. El problema es que si lo cambio puedo estropear el resto de la aplicación, que necesita de la interacción del usuario para introducir muchos mas datos, así que no puedo dejar el teclado en un estado inservible.

    Sobre lo de leer directamente de /dev/console, dudo mucho que desde Java se pueda, y si se puede, dudo de que sea muy portable.

    Aun así, gracias a los dos por aportar algo.

    Voy a mirar por inputrc por si hubiese manera de redefinir esas secuencias a mano, quizá sea una posible solución.