Ir para o conteúdo

Comunicação serial (MTK)

Etapas necessárias para a comunicação serial

Para realizar a comunicação serial são realizadas as seguintes etapas

  • Inicialização da porta serial: Criar um Serial Port e definir seus parâmetros (caminho e baud rate)
  • Acessar input stream: Ler os dados recebidos da comunicação serial.
  • Acessar output stream: Enviar dados para a porta serial
  • Processamento de dados e visualização

Iniciando e configurando a Serial Port

A classe Serial Port será responsável por gerenciar toda a comunicação serial com determinada porta, e integrá-la com seu aplicativo.

Primeiro obtenha uma instância já pré configurada, como o código a seguir, passando como parâmetro a porta, o baudrate, e 0.

1
SerialPort SerialPortttyMT1 = new SerialPort("/dev/ttyMT1", 9600, 0);

Dica

Verifique as portas disponíveis no datasheet do seu Display.


Após isso defina o que será feito com os dados provenientes da leitura da comunicação serial com determinada porta. Isso se dá implementando o método log, de um objeto LogInterceptorSerialPort, e o definindo como o logInterceptor do objeto Serial Port.

Na implementação do método run, utilize da forma que desejar a entrada de dados, contida na variável log, neste caso ela é inserida dentro de um textView.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SerialPortttyMT1.setReadThread(new LogInterceptorSerialPort() {
        @Override
        public void log(final String port, final String log) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    textView.setText(log +"\n");
                }
            });
        }
    },200);

Enviando dados através da porta serial

Caso a comunicação seja por ttl/CMOS ou RS232, basta desabilitar o modo RS485, e chamar o método write, passando como parâmetro a mensagem e o delay após a mensagem ser enviada.

1
2
3
String str = "test";
rootShellCmd.setRs485RevMode();
SerialPortttyMT1.write(str,200);

Caso a comunicação seja via RS485, é necessário habilitar esse modo, e desabilitá-lo ao final, como a seguir.

1
2
3
4
String str = "test";
rootShellCmd.setRs485SendMode();
SerialPortttyMT1.write(str,200);
rootShellCmd.setRs485RevMode();