Usando o seu módulo IRDA no Linux

Esse artigo descreve como usar o IRDA no Linux. Descreve a carga do sistema, configuração dos módulos e a personalização dos programas de interfaceamento.

[ Hits: 28.685 ]

Por: morvan bliasby em 14/12/2004


Usando o IRCP



Usando o ircp para receber e enviar arquivos


O ircp é o módulo que recebe e envia arquivos entre celular, Palm ou outro computador. Sua sintaxe é bastante intuitiva. Relembrando:

$ ircp <arquivo1> <arquivo2> ... <arquivoN>

para enviar e

$ ircp /r <PastaDestino>

para receber arquivos

$ ircp [put | get] <arquivo1> <arquivo2> ... <arquivoN>

Para enviar (?) para o cliente (É! Eu também estranhei. Put e Get fazendo o mesmo trabalho; aqui, não sei se foi um bug ou um problema de implementação. Sabe-se que os parâmetros Put e Get estão além do ircp - estão no OpenObex.

Problema no ircp


O ircp, na versão baixada no SourceForge há um bug, bug este que para minha surpresa é bastante conhecido. A versão ircp-0.3, de novembro de 2002, última atualização, não permite que o usuário baixe um arquivo para uma pasta em particular, ou seja, mesmo com o uso do parâmetro <:PastaDestino>, o ircp sempre copia o arquivo em / (diretório raiz). Se o usuário não é o root, escrever no / do sistema é proibido e, porque não dizer, desastroso. Daí, só estava conseguindo baixar arquivos quando me logava como superusuário. Encontrei no "bug tracker" do projeto vários Posts sobre o problema, alguns sugerindo mudanças no código dos arquivos ircp_io.c e ircp_server.c.

As mudanças sugeridas além de não resolverem o problema conduziram a mensagens de erro não mais no ircp, mas no OpenObex como um todo. Revertemos todo o processo, restaurando a pasta /temp/ircp-0.3 com os arquivos originais do site.

No site do Debian há um relato sobre o problema, com a solução. O problema é que no site só há o executável - eu desejaria os fontes para estudá-los e tentar resolver o problema. Teria, então, que partir para a depuração do problema.

Utilizando o (K)dbg, partiu-se para a depuração do programa. Monitorando a variável "inbox" percebemos que ela perde o seu conteúdo ao ser passada para o módulo ircp_io.c.

Na função ircp_open_safe esta variável era sumariamente "zerada" e às vezes teria o seu valor alterado de forma estranha. Com a alteração de uma linha - linha esta comentada no meu arquivo alterado - conseguiu-se resolver o problema.

Um problema no próprio projeto é a instabilidade. Ora funciona a contento, ora não. Mesmo depois desta depuração o programa apresentou algumas instabilidades, exibindo, com o uso do depurador, nomes estranhos no ircp_server.c. Aproveitou-se a ocasião para "aportuguesar" o módulo ircp. Com efeito, traduzimos as mensagens de evento deste programa, dando uma maior comodidade ao usuário. No código-fonte original, e mantido no meu código alterado, tem um "To Do": renomear arquivos, como fazem o Jabber, o Gaim e outros (MeuArq.zip ? MeuArq(01).zip, por exemplo). Pretendo fazê-lo, se ninguém o fizer antes e só assim darei um "UpLoad" para os mantenedores do Projeto, mas não agora - não vivo disso. Sou um mero analista de suporte.

Resumidamente, fizemos o seguinte:

Mudanças no Ircp-0.3


$ ircp -r <PastaDestino> - segundo parâmetro inoperante - consertado;

O ircp agora funciona como desejado, ou seja, se não informado parâmetro <PastaDestino>, copia para a pasta corrente do usuário; e as mensagens estão em português.

Problemas pendentes

  • Erros aleatórios (não ligados ao problema do local de cópia dos arquivos, como se depreendeu);
  • erro de link freqüente (aqui, supõe-se ser relacionado com a velocidade - estava testando o módulo a 57.600bps);
  • criação da rotina de renomear arquivos.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Carregando o módulo
   3. Usando o IRCP
   4. Conclusão / Bibliografia
Outros artigos deste autor

Dominando o BrOffice.org: Tabelas no Writer; Uso do Navegador de Objetos

Configurando o seu teclado sem fio (e, via de regra, sem LEDs indicadores de estado) no Linux

Recuperando seus dados com o "truque da geladeira"

Introdução ao gEDA - Suíte de eletrônica

Dominando o BrOffice.org: Pincel de Estilo, Sumários e Objetos OLE no Writer

Leitura recomendada

Dispositivo de Captura de Vídeo Somagic EasyCAP DC60/EasyCAP002 no GNU/Linux

Instalando o Ubuntu Linux 8.04 (Hardy heron) no MSI Wind

Wireless 2200BG Network no Slackware 11

Instalando a placa de rede Realtek 8139D

Modens PCTEL/LG/VIA sem complicação (talvez um pouquinho)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts