Problema ao ler dados da serial

0 respostas
jessetsilva

Bom dia.

Estou com um problema na leitura de dados da porta serial que consiste no seguinte:

eu envio para a porta serial um short que varia de 0 a 7, sendo assim, meu PIC deve me enviar os dados que estao dispniveis na porta de 0 a 7, conforme solicitado.

A parte do pic ta blza, mas notei que no java , toda vez que eu rodo, ele acaba pegando valores repetidos, como se a porta estivesse suja. Gostaria de saber de uma maneira de a cada vez que eu ler o dado disponivel poder limpar o “buffer” para que o dado se renove sempre, nao correndo o risco de ficar pegando dados antigos.

Estou usando SerialComm.

Segue trecho do codigo:

public void serialEvent(SerialPortEvent event) {

       switch (event.getEventType()) {
		case SerialPortEvent.BI:
		case SerialPortEvent.OE:
		case SerialPortEvent.FE:
		case SerialPortEvent.PE:
		case SerialPortEvent.CD:
		case SerialPortEvent.CTS:
		case SerialPortEvent.DSR:
		case SerialPortEvent.RI:
		case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
			break;
		case SerialPortEvent.DATA_AVAILABLE:
			byte[] readBuffer = new byte[20];
			try {
				int numBytes = 0;
				while (inputStream.available() > 0) {
					numBytes = inputStream.read(readBuffer);
				}
				String result = new String(readBuffer);
				result = result.substring(1, numBytes);
				short dadoLido = (short)(inputStream.read()); // peguei o valor aqui
                                                               inputStream.close();



                } catch (IOException e) {
                }

               
        }
        
    }

Alguem sabe como me ajudar com isso?

Criado 11 de agosto de 2009
Respostas 0
Participantes 1