11:46h.
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?
Bueno ...
(Puntos:2)( http://barrapunto.com/ )
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!
Configuración de teclado
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Diciembre de 2005, 12:49h )
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)( Última bitácora: Jueves, 27 Febrero de 2014, 09:39h )
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.