Artigo da WebMobile 10 - Comunicação serial com J2ME

Artigo Originalmente publicado na WebMobile 10.

Clique aqui para ler este artigo em pdf

Clique aqui para ler todos os artigos desta edição

 

Comunicação serial com J2ME

Acessando a porta serial de PDAs usando J2ME

Dentre as várias formas de comunicação entre dispositivos distintos, destacamos a comunicação serial (RS-232), a comunicação por infravermelho (infrared), a comunicação por Bluetooth, a comunicação por redes sem fio (Wi-Fi), a comunicação celular (GSM, CDMA) e outras mais.

Destas citadas, a mais simples de se implementar é a comunicação serial (RS-232) (Figura 1), que é feita interligando-se os dispositivos através de um cabo de pelo menos três fios, onde um dos fios é utilizado para transmissão (RX), o outro para recepção (TX) e o terceiro fio é o de referência ou terra (GND).

 

Figura 1. Conectando dois PDAs através de um cabo serial.

 

E é através desta comunicação serial que podemos coletar dados de diversos equipamentos, tais como, coletores de dados diversos, receptores GPS, centrais de alarme, modems.

Neste artigo, falaremos sobre o uso da comunicação serial em PDAs utilizando a plataforma J2ME. Para demonstrar o uso desta tecnologia, utilizaremos um exemplo de comunicação entre dois simuladores, onde pretendemos mostrar como implementar aplicações que acessem a porta serial destes dispositivos.

Comunicação serial (RS-232)

A RS-232 é uma abreviação de Recommended Standard-232, um padrão de interface para conexão entre dispositivos seriais. Como exemplos de dispositivos que podem ser conectados à uma porta serial RS-232 temos, impressoras seriais, mouses e modems.

A vantagem da comunicação serial se dá pelo fato de que não necessitamos de mais que três fios para que possamos trocar dados entre dois dispositivos diferentes, ou seja, é uma solução barata. Além disso, também temos uma comunicação que é full-duplex, ou seja, pode-se tanto transmitir quanto receber dados ao mesmo tempo.

Como desvantagens, têm-se sua taxa de transmissão mais baixa que as tecnologias atuais e o fato de ter de se usar um cabo físico para a troca de dados entre os dispositivos.

Mas, como este artigo se destina a demonstração do uso da porta serial, não levaremos em consideração estas desvantagens.

O perfil MIDP implementa o uso de comunicação serial através da interface CommConnection. Esta interface estabelece uma porta serial lógica, ou seja, uma conexão lógica na qual os bits trafegam serialmente por ela. Assim, as portas seriais lógicas são definidas dentro do sistema operacional e podem, não necessariamente, corresponder a uma porta serial RS-232. Por exemplo, a porta infravermelho pode ser configurada para ser uma porta serial lógica pelo sistema operacional. Maiores informações sobre a interface CommConnection podem ser encontradas na documentação que acompanha o Sun Java Wireless ToolKit 2.5 for CLDC, Beta (SJWTK) da Sun (Nota 1).

Na Figura 2, temos o conector físico de um PDA da Palm, conhecido como multi-connector. Neste conector temos pinos que são a porta USB, que utilizamos para conectar o PDA a um computador, para sincronismo e pinos da porta serial, além, é claro, dos pinos da fonte de alimentação, utilizados para carregar a bateria interna do aparelho.

 

Figura 2. Multi-connector.

 

Nota 1. Sun Java Wireless ToolKit 2.5 for CLDC, Beta

Durante a escrita deste artigo, a Sun disponibilizou uma nova ferramenta de seu kit de desenvolvimento Java para o perfil CLDC. Agora temos o Sun Java Wireless ToolKit 2.5 for CLDC Beta, que pode ser baixado gratuitamente do site da Sun em http://java.sun.com/products/sjwtoolkit/download-2_5.html. Informações sobre instalação, configuração e uso podem ser vistas no artigo Desenvolvendo Aplicações J2ME para PDAs, edição WebMobile 5.

 

Nesta versão do SJWTK, temos de novidade as seguintes APIs: Mobile Service Architecture 1.0 (JSR 248); SIP API for J2ME (JSR 180); Scalable 2D Vector Graphics API for J2ME (JSR 226); Payment API (JSR 229); Advanced Multimedia Supplements (JSR 234); Mobile Internationalization API (JSR 238).

 

Até aqui tudo certo. Mas para qual finalidade podemos utilizar a comunicação serial? Ainda se usa hoje em dia? Claro que sim. Um bom exemplo do uso de comunicação serial é a captura de dados de um receptor GPS. Resumindo, receptores GPS recebem dados de satélites na órbita terrestre que nos informam nossa posição sobre o globo. A maioria dos receptores GPS possui uma porta serial que serve para transferir estes dados para outros dispositivos. Capturando-se estes dados podemos manipulá-los de modo a mostrar nossa posição num mapa digital, por exemplo.

Um outro exemplo é o uso de dispositivos portáteis para a captura de dados de carros computadorizados ou seu uso no chão de fábrica, na configuração de centrais de alarmes, dentre outras possíveis aplicações.

Caso de uso

Antes de começarmos a mostrar como desenvolver a aplicação, explicaremos como será nosso caso de uso a ser utilizado.

Desenvolveremos um programa que serve para enviar e receber caracteres de texto através da porta serial. Assim, poderemos mandar mensagens de texto entre dispositivos como numa espécie de chat. Para facilitar, ilustraremos a comunicação através de dois simuladores que estarão sendo executados ao mesmo tempo no computador. Neste caso, para utilizarmos dois simuladores em um mesmo computador basta que executemos o simulador duas vezes. Isso faz com que tenhamos dois simuladores distintos.

Configurando o simulador

Começaremos com a configuração do simulador de PalmOS para que possamos trabalhar com a porta serial (para melhor acompanhamento deste artigo, faz-se necessária a leitura do artigo Desenvolvendo Aplicações J2ME para PDAs, na edição 5 da WebMobile, pois neste artigo ensinamos os passos básicos para o uso do simulador)" [...] continue lendo...

Artigos relacionados