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

Responder a