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:
Alguem sabe como eu faço pra ver os dados direito e não desse jeito?
"
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
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:
public static void serial(){
new Thread(){
public void run(){
PortaSerial porta = new PortaSerial();
while(true){
if(status){// se status for true então a porta está livre para leitura
try{
// System.out.print("Lendo na porta serial...");
Thread.sleep(1);
try{
porta.Leitura();
}catch(Exception e){System.out.println("Porta esta sendo usada");}
}catch(InterruptedException ex){}
}
else{System.out.println("Porta está sendo usada para gravação");//status é false, então a porta será usada para gravação
try{
Thread.sleep(1);
}catch(Exception interrompido){}
// Chama classe de porta serial com o parâmetro Ação.
ConverteOrdem converte = new ConverteOrdem();
porta.Escrita( converte.Converte(Ordem) +'\r');
status=true;
}
}
}
}.start();
}
//escuta para socket
static void roda(){
new Thread(){
public void run(){
while(true){
System.out.println("Lendo na porta socket");
ServerSocket SocketServidor = null;
Socket Socket = null;
BufferedReader Entrada = null; // Declara os objetos usados.Usamos também a ServerSocket que fará a parte de //escuta.
try{
SocketServidor = new ServerSocket(8000); // instancia serversocket e coloca a porta 8000
Socket = SocketServidor.accept(); // 1
System.out.println("Aguardando...");
Entrada = new BufferedReader(new InputStreamReader(Socket.getInputStream())); //2
String mensagem;
mensagem = Entrada.readLine(); // guarda o pacote que recebeu do cliente na variavel mensagem
System.out.println(mensagem);
status = false;
}else{
System.out.println("Mensagem recebida,mas acesso Negado!");
}
}
catch( IOException excecao){
System.out.println("Ocorreu erro para criar ou receber o socket.");
}
finally{
try{
Socket.close();
SocketServidor.close();
}
catch(IOException excecao){
}
}
}//loop eterno
}
}.start();
}//main
}//classe