Caros amigos,
Como sempre, estou com problemas com NCURSES, ser� que algu�m resolve este
pepino?
Desenvolvi um pequeno programa (listado abaixo) que simplesmente captura a
tecla pressionada e mostra a mesma, seguida de seu c�digo ASCII. At� a� tudo
bem, funciona perfeitamente. O problema � quando eu preciso redirecionar a
sa�da, neste caso o teclado para de receber as teclas instantaneamente e s�
mostra ap�s pressionar ENTER, como se estivesse ignorando o comando
cbreak(). Tentei tamb�m com raw().
No programa abaixo, no bloco marcado como BLOCO 1, tentei usar as seguintes
op��es:
//=========== BLOCO 1 =============
freopen("/dev/ttyS0", "w", stdout);
initscr();
//=================================
ou
//=========== BLOCO 1 =============
FILE *Saida = stdout;
FILE *Entrada = stdin;
SCREEN *Terminal;
Saida = fopen("/dev/ttyS0", "a+");
Terminal = newterm((char) 0, Saida, Entrada);
set_term(Terminal);
//=================================
Listagem do programa:
/***************************************************************************
***/
#include <stdio.h>
#include <curses.h>
int main(void) {
int Tecla;
unsigned int Contador = 0;
//=========== BLOCO 1 =============
freopen("/dev/ttyS0", "w", stdout);
initscr();
//=================================
noecho();
cbreak();
keypad(stdscr, TRUE);
for (;;) {
Tecla = getch();
printw("Tecla(%u): %c ASCII: %3d\n", Contador, Tecla, Tecla);
refresh();
if (Tecla == 3) break;
} // Fim For
endwin();
} // Fim Main
/***************************************************************************
***/
O programa est� OK. Se eu comentar o BLOCO 1 funciona certinho no terminal
atual, mesmo que este terminal seja na serial. Pelo que deu pra entender os
comandos cbreak() e raw() ficam malucos com o redirecionamento.
Agrade�o qualquer ajuda,
Paulo Cesar Bonetti
Analista de Sistemas
PDI - Depto. de Projetos, Desenvolvimento e Inova��es
Cronodata Ind�stria Eletr�nica Ltda
+55 (32) 3221-3608 - R. 228
[EMAIL PROTECTED]
www.tecnibra.com.br
---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html