usando a biblioteca QBluetooth com Symbian S60 5th Edition

recentemente, comecei a estudar desenvolvimento pra Symbian com Qt. até desenvolvi alguns pequenos aplicativos e, em comparação com o Symbian C++, devo dizer, é muito mais fácil. as idiossincrasias do Symbian C++ são uma dor de cabeça se você não tiver uma boa base. e eu ainda não tenho. ou, como diz o artigo da wikipedia:

Infelizmente, a programação em Symbian C++ tem uma elevada curva de aprendizado, já que o Symbian C++ requer o uso de técnicas especiais tais como descriptors, active objects e a cleanup stack. Isto pode fazer com que programas relativamente simples sejam mais difíceis de implementar do que em outros ambientes. (tradução livre)

a própria comunidade recomenda utilizar o Qt para desenvolvimento de aplicações mais simples, e o Symbian C++ para aplicações mais baixo nível no sistema. até mesmo a Nokia tem dado cada vez mais apoio ao Qt como plataforma de desenvolvimento para Symbian; uma prova disso é o lançamento da Nokia Qt SDK, uma suíte dedicada ao desenvolvimento para Symbian em Qt. muito mais simples do que o Symbian C++ cru, na minha opinião.

nas minhas brincadeiras, eu quis desenvolver um aplicativo pro meu telefone Symbian que utilizasse bluetooth para comunicação com um outro equipamento. tal não foi minha surpresa ao descobrir que ainda não havia um projeto oficial que unisse bluetooth, Qt e Symbian; normalmente, pelo que eu pesquisei, o pessoal usava mais o Symbian C++ mesmo pra esse tipo de aplicação.

após alguma pesquisa, encontrei a página do projeto QBluetooth, que se propõe à criação de uma biblioteca bluetooth em Qt para Symbian. depois de um tempinho brigando com a configuração dela, eu vou postar aqui o passo-a-passo que segui para conseguir fazer as coisas funcionarem.

ferramentas necessárias

se você quiser adiantar os downloads, segue a lista:

algumas considerações devem ser feitas sobre as escolhas dessas ferramentas:

  • eu estou desenvolvendo pra Symbian S60v5 então as coisas mudarão se você estiver usando uma versão diferente;
  • eu testei a configuração postada aqui, mas problemas podem ocorrer a depender do seu ambiente;
  • estou num Windows XP SP3;
  • sempre que possível, dei preferência às configurações padrão das instalações; configurações adicionais serão informadas; entretanto, sempre leia eventuais informações exibidas;
  • utilizei consideravelmente informações disponíveis na página oficial da página oficial da QBluetooth. em caso de dúvidas, utilize a seção de comentários daqui e o fórum do projeto.

instalando as ferramentas

1) comece com o ActivePerl-5.6.1.635-MSWin32-x86.msi. apenas executar e seguir os passos padrão do assistente de instalação;

2) extraia o conteúdo do arquivo MinGW-gcc440_1.zip na pasta C:\

3) extraia o conteúdo do arquivo S60_5th_Edition_SDK_v1_0_en.zip e execute o arquivo S60_5th_Edition_SDK_v1_0_en\setup.exe . execute a instalação, sem alterar as configurações. vai demorar um pouco, mas depois ele algum momento o assistente vai pedir pra instalar o CSL ARM Toolchain; aceite e instale o toolchain também.

4) instale o Qt 4.7.1 para Symbian, executando o arquivo qt-symbian-opensource-4.7.1-s60.exe .  o assistente deve exibir uma mensagem referenciando a instalação do S60 5th Edition SDK.

5) instale o Qt Creator 2.0.1, executando o arquivo qt-creator-win-opensource-2.0.1.exe . ele deve exibir algumas informações relacionadas a debugging. ignore-as e faça a instalação padrão.

6) abra o arquivo S60_3rd_Ed_SDK_FP2_API_Plug-In_Pack_LLA_1_3.zip . nele, você irá localizar um outro arquivo de nome BluetoothEngineAPI.zip . você vai abrir esse arquivo; dentro dele, há duas pastas: epoc32 e plugins. você irá colocar estas pastas no diretório C:\S60\devices\S60_5th_Edition_SDK_v1.0\ (note que essas pastas já existem lá originalmente; você irá mesclar os conteúdos delas).

compilando a QBluetooth

o arquivo QBluetooth_lib.zip (28 dec 2010) já possui uma versão pré-compilada da QBluetooth, que encontra-se no arquivo no arquivo QBluetooth_lib.zip, na pasta \QBluetooth\bin\epoc32\InstallToDevice\QBluetooth_selfsigned.sisx . entretanto, se você deseja compilar sua versão da QBluetooth:

  1. extraia o conteúdo da QBluetooth_lib.zip para uma pasta cujo endereço completo não possua caracteres especiais;
  2. abra o projeto QBluetooth\source\QBluetooth.pro com o Qt Creator;
  3. compile; não devem ser exibidos erros (mas alguns warnings podem aparecer)

o resultado da compilação é um pacote de nome QBluetooth_0x2003328D.sis, e deverá aparecer na pasta QBluetooth\source\ . para maiores configurações a respeito da compilação da QBluetooth, consulte a página da biblioteca.

instalando a QBluetooth no seu sistema de desenvolvimento

neste contexto, instalar refere-se somente a tornar a QBluetooth os seus projetos em Qt para Symbian. a forma mais fácil de fazer isso é copiando o conteúdo da pasta \QBluetooth\bin\epoc32\ para C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\ . note que, dentro da pasta \QBluetooth\bin\epoc32\ existem três outras pastas: includeInstallToDevice e release. as pastas include e release já existem no diretório C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\ , então você irá somente mesclar seus conteúdos.

compilando um projeto de exemplo

por fim, vamos compilar o projeto QuteMessenger, fornecido como exemplo pelo pessoal da QBluetooth. para isso:

  1. extraia o conteúdo do arquivo QuteMessenger.zip para uma pasta cujo endereço completo não possua caracteres especiais;
  2. abra o projeto QuteMessenger.pro no Qt Creator;
  3. vá até a linha 37 do arquivo QuteMessenger.pro; aparentemente, há um pequeno erro; nela, está escrito:
     "@\"$(EPOCROOT)Epoc32/InstallToDevice/QBluetooth_selfsigned.sisx\",(0xA003328D)"\

    quando deveria ser

    "@\"$$(EPOCROOT)Epoc32/InstallToDevice/QBluetooth_selfsigned.sisx\",(0xA003328D)"\

    (note o “$$” antes de “(EPOCROOT)” )

  4. compile o projeto

e pronto! instale no seu celular a aplicação QuteMessenger.sis, localizada na pasta do projeto QuteMessenger e realize alguns testes de visibilidade com outros dispositivos bluetooth!


3 Comentários on “usando a biblioteca QBluetooth com Symbian S60 5th Edition”

  1. Salomão disse:

    Parabéns Caco! Vou tentar fazer isso hoje!! Me parece ser tudo muito simples, principalmente após sua explicação bem metódica! =)

    abraço

  2. Leandro B. disse:

    Amigo, por favor me esclareça uma dúvida: existe alguma versão do Carbide.ui pra desenvolver temas para o nokia 5800 e 5230?


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s