Como ativar / desativar uma porta serial?

3

Eu preciso desativar e ativar uma porta serial para fins de teste em um programa Java.

Como a página man de setserial está dizendo: " Usando o tipo UART nenhum desativará a porta. ", eu uso sudo setserial /dev/ttyS4 uart none para desabilitar a porta. Isso desativa a porta serial com sucesso. Para ativar a porta serial novamente, uso sudo setserial /dev/ttyS4 -a autoconfig e a porta está ativa como esperado.

Depois de desabilitar a porta, tento abrir a porta usando o Java gnu.io.CommPortIdentifier . Quando tento habilitar a porta após a execução da função gnu.io.CommPortIdentifier , recebo esta saída:

$ sudo setserial /dev/ttyS4 -a autoconfig
Cannot autoconfigure port: Device or resource busy

Como posso contornar esse problema? Existe uma maneira melhor de ativar / desativar a porta serial? Ou posso limpar a lista de solicitações feitas à porta?

Eu obviamente não posso simplesmente matar o processo, já que meu teste está sendo executado nele.

    
por MarcioB 07.08.2014 / 22:28

2 respostas

1

Suponho que o Java gnu.io.CommPortIdentifier terá problemas maiores se você excluir / dev / ttySx aftes desativar a porta serial.

Quando você precisar ativá-lo novamente, primeiro crie o nó com o script MAKEDEV ou o comando mknod. Aqui estão algumas informações sobre a criação de dispositivos seriais.

    
por 08.08.2014 / 17:28
-1

Você pode tentar excluir /var/lock/LCK..ttyS4 usando rm . Pelo que entendi, você precisa desbloquear o dispositivo de uma maneira assim.

    
por 28.06.2015 / 08:21