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: 29.011 ]

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 Writer com o uso de estilos

Como Instalar Seu Adaptador WiFi RTL8821 No GNU-Linux

Recuperando seus dados com o "truque da geladeira"

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

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

Leitura recomendada

Netbook Positivo Mobo White 1020 com Mandriva

Cabos de rede e conectorização

Conexão wireless ad-hoc no Ubuntu - relato de experiência

Configuração da função de webcam para a famosa Breeze Cam

Como gravar o som da sua Zoom G2.1u

  
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