Comunicação serial (MS)¶
A comunicação serial é dividida em algumas partes:
- Inicialização da porta serial: Criar um
SerialPortManager
e 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 |
|