264 alt=capa10.JPG src="/imagens/webmobile/edicoes/10/capa10.JPG" width=201 border=0>

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).

 

image002.jpg

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.

 

image004.jpg

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). Para isto, executamos o simulador uma vez. Mas antes de tudo, devemos configurar o simulador para utilizar uma determinada porta serial que usaremos em nossa simulação. Para isso, na tela inicial, após a execução do simulador, devemos clicar sobre ela com o botão direito do mouse. No menu que aparece vá em Settings ? Communication ? Communication Ports (Figura 3).

 

image006.jpg

Figura 3. Acessando o menu de configuração das portas.

 

Ao se clicar na opção Comunication Ports, uma nova tela se abrirá (Figura 4).

 

image008.jpg

Figura 4. Configurando as portas de comunicação.

 

Observe que temos pelo menos quatro portas, sendo: Cradle, Infrared, 68K debugger e Virtual Phone.

·          Cradle ou base, seria a porta serial utilizada pelo simulador para sincronismo com o computador ou comunicação com outros dispositivos;

·          Infrared serve para simular a porta de infravermelho do simulador;

·          68K debugger serve para que utilizemos um depurador externo que receberá as informações de debug de aplicações desenvolvidas para o PalmOS;

·          Virtual Phone simula opções de telefone virtual.

 

...

Quer ler esse conteúdo completo? Tenha acesso completo