Erro ao tentar re-ler porta serial RXTX-Win

2 respostas
P

Pessoal,

Tenho um sistema desktop, que escreve e lê na porta serial... e estou querendo criar 2 botões:

1º - Nova Consulta
Para voltar a primeira tela do sistema e reiniciar a consulta (onde seleciona porta e baudrate)

2º - Botão atualizar
Para reenviar comandos para a porta serial (escrever), e depois ler de novo para caso tenha algum campo que não conseguiu ler.

Só que me deparo com o erro:

gnu.io.PortInUseException: Unknown Application

Ao tentar refazer os processos... Na minha visão eu teria que fechar toda a comunicação da porta e começar de novo, mas não sei como fechar toda a comunicação como se fechasse e abrisse o sistema.

public void AbrirPorta() {

		try {
			porta = (SerialPort) cp.open("SerialComLeitura", timeout); // AQUI DA O ERRO
			// configurar parâmetros
			porta.setSerialPortParams(baudrate,	SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
			porta.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "Erro abrindo comunicação: " + e);
			System.out.println("Erro abrindo comunicação: " + e);

			System.exit(1);

		}

	}

2 Respostas

P

Eu vi em alguns lugares citando que deveria encerrar o programa e reiniciar para liberar a porta serial… Mas não tenho ideia de como fazer.

Outros citaram para ver permissão, só que não entendi bem:

mkdir /var/lock
chmod go+rwx /var/lock

R

Cara, não sou o mais esperto em java ainda mas tenho trabalhado em um sistema que usa portas seriais e nesse sistema toda vez que uso a porta eu abro e ao final da utilização eu fecho a porta.

Se entendi bem, você quer, ao voltar a tela inicial, reiniciar a leitura da porta. Sei sso está correto, acredito que você deve ter um comando que abre a porta, mas não esta fechando a porta ao final da execução, ou mesmo na interrupção para voltar ao inicio.

Por isso que o sistema diz que a porta está em uso (gnu.io.PortInUseException: Unknown Application ).

Procure fechar a porta onde você encerra a aplicação e testa.

Sei que pelo tempo da postagem ja deve ter resolvido, mas como o tópico está aberto…

espero ter ajudado.

Abraço.

Criado 6 de março de 2015
Ultima resposta 22 de mai. de 2015
Respostas 2
Participantes 2