Comunicação serial (MS)¶
A comunicação serial é dividida em algumas partes:
- Inicialização da porta serial: Criar um
SerialPortManagere definir seus parâmetros (porta e baudrate) - Acesso ao input stream: Ler os dados recebidos da porta serial
- Acesso ao output stream: Enviar dados para a porta serial
- Processamento de dados e visualização: Manipular e exibir os dados recebidos
Iniciando e configurando o SerialPortManager¶
A classe SerialPortManager é responsável por gerenciar toda a comunicação serial e integrá-la com seu aplicativo.
Crie uma instância do SerialPortManager, com o código a seguir:
1 | |
Habilitando uma Porta Serial¶
Para abrir uma porta de comunicação serial, use o método SerialPortManager.startSerialPort().
Parâmetros: porta, a codificação dos dados enviados, e uma instância da classe baseReader.
Dica
Cada porta serial pode ter uma implementação diferente de baseReader.
Exemplo:
1 2 3 | |
A instanciação da classe baseReader é demonstrada na seção Lendo os dados de entrada serial, abaixo.
Dica
Verifique as portas disponíveis no datasheet do seu Display.
Desabilitando uma Porta Serial¶
Para fechar (desabilitar) uma porta e comunicação serial previamente aberta, use o método SerialPortManager.stopSerialPort().
Parâmetro: porta.
Exemplo:
1 | |
Enviando dados através da porta serial¶
Para enviar dados pela porta serial, use o método SerialPortManager.send().
Parâmetros: dados e porta.
O método retorna estes valores:
| Valor | Descrição |
|---|---|
| 0 | O nome da porta serial está vazio |
| 1 | A mensagem a ser enviada está vazia |
| 2 | Enviado com sucesso |
| 3 | A porta solicitada não está aberta |
1 | |
Lendo os dados de entrada serial¶
Para ler os dados recebidos da porta serial, crie um objeto da classe BaseReader e sobrescreva a implementação do método BaseReader.onParse():
1 2 3 4 5 6 | |
O parâmetro read contém os dados recebidos. Por exemplo, o código abaixo atualiza um TextView do UI do Android:
1 2 3 4 5 6 7 8 9 10 11 | |
Interceptando o log dos objetos da classe SerialPortManager¶
Para acessar o log interno das instâncias da classe SerialPortManager use o método SerialPortManager.setLogInterceptor(), instanciando a classe LogInterceptorSerialPort e sobrescrevendo o método LogInterceptorSerialPort.log():
1 2 3 4 5 6 7 | |
O parâmetro log contém os dados do log. Por exemplo, o código abaixo atualiza um TextView do UI do Android:
1 2 3 4 5 6 7 8 9 10 11 12 | |