Slave! Estou tentando fazer comunicação serial pela api rxtx. Quando mando ler, mesmo que não envie nada, a resposta sai um treco aleatório desse aqui:
Alguemsabecomoeufaçopraverosdadosdireitoenãodessejeito?"Observação: quando eu mando escrever , ele para de ler, escreve e logo em seguida lê. é possivel eu ler o que escrevi da forma:escrevo na porta serial;meu cabo está com a porta de escuta/fala em curto, o useja eu mando a informação e ela volta;leio na porta serial"???
Obrigado a todos! To meio apertado em tempo ( a apresentação do projeto é sabado), agradeço de coração a colaboração
provavelmente voce esta imprimindo o InputStream ao inves do conteudo
de uma lida com calma na API de IO do java e na API do RXTX
S
shamanpyro
putz, é pior do que eu pensava. Eu depurei o programa e pra minha surpresa: nem está lendo!
Eu mando escrever, ele interrompe a leitura na boa. Mas depois que escreve, ele lê e não pega nada…
eu fiz assim a rotina p gerenciar leitura/escrita:
publicstaticvoidserial(){newThread(){publicvoidrun(){PortaSerialporta=newPortaSerial();while(true){if(status){// se status for true então a porta está livre para leituratry{// System.out.print("Lendo na porta serial...");Thread.sleep(1);try{porta.Leitura();}catch(Exceptione){System.out.println("Porta esta sendo usada");}}catch(InterruptedExceptionex){}}else{System.out.println("Porta está sendo usada para gravação");//status é false, então a porta será usada para gravaçãotry{Thread.sleep(1);}catch(Exceptioninterrompido){}// Chama classe de porta serial com o parâmetro Ação.ConverteOrdemconverte=newConverteOrdem();porta.Escrita(converte.Converte(Ordem)+'\r');status=true;}}}}.start();}//escuta para socketstaticvoidroda(){newThread(){publicvoidrun(){while(true){System.out.println("Lendo na porta socket");ServerSocketSocketServidor=null;SocketSocket=null;BufferedReaderEntrada=null;// Declara os objetos usados.Usamos também a ServerSocket que fará a parte de //escuta.try{SocketServidor=newServerSocket(8000);// instancia serversocket e coloca a porta 8000Socket=SocketServidor.accept();// 1System.out.println("Aguardando...");Entrada=newBufferedReader(newInputStreamReader(Socket.getInputStream()));//2Stringmensagem;mensagem=Entrada.readLine();// guarda o pacote que recebeu do cliente na variavel mensagemSystem.out.println(mensagem);status=false;}else{System.out.println("Mensagem recebida,mas acesso Negado!");}}catch(IOExceptionexcecao){System.out.println("Ocorreu erro para criar ou receber o socket.");}finally{try{Socket.close();SocketServidor.close();}catch(IOExceptionexcecao){}}}//loop eterno}}.start();}//main}//classe
Spool
Esta é uma representação da referência de memória de um objeto alocado.