Archived:Usando a API Easy
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Dados do artigo
Contents |
Usando a API Easy
Easy é uma API criada para facilitar o desenvolvimento de aplicações para a plataforma maemo. O objetivo da Easy é abstrair a complexidade envolvida no acesso aos serviços de multimídia, rede, desktop, etc., provendo uma API de alto-nível escrita em Python. Isto é possível através de uma camada de abstração que esconde a utilização de componentes como GStreamer, D-Bus, Hildon, BlueZ e etc. Easy tamb[em oferece um framework para o desenvolvimento rápido de interfaces gráficas utilizando PyGTK.
Instalando Easy
A instalação da API Easy pode ser feita seguindo os passos abaixo:
- Acesse esta página através do browser do dispositivo maemo e clique aqui.
- Siga as instruções na tela do dispositivo.
Arquitetura da API Easy
Atualmente a API Easy apresenta uma arquitetura com 7 módulos: camera, audio, radio, e-mail, contacts, bluetooth, and UI. Tais módulos utiliza ligações (bindings) Python para acessar tecnologias como GStreamer, D-Bus, BlueZ, Evolution, etc. A arquitetura da API Easy é ilustrada na figura abaixo, seguindo com uma breve descrição de cada módulo.
Audio
O módulo audio encapsula um conjunto de funções para a gravação e reprodução de arquivos de audio, provendo ainda mecanismos para verificar a duração e o tempo corrente de um arquivo em reprodução, volume e controle de seek.
O código abaixo utiliza o módulo audio para gravar um arquivo de audio e, em seguida, reproduzi-lo:
>>> from easy import audio
>>> audio.record("./hello_world.wav", 3)
>>> audio.play ("./hello_world.wav")
Neste código de exemplo a primeira linha importa o módulo de audio da API Easy, a segunda linha grava o audio capturado do microfone durante 3s e armazena ele em um arquivo com nome "hello_world". Finalmente, a linha 3 indica para reproduzir este arquivo.
Camera
Este módulo provê funções para controlar a camera do dispositivo maemo, incluindo mecanismos para a gravação e reprodução de vídeos, bem como a captura de imagens.
O exemplo abaixo inicia a câmera e grava um vídeo durante 30s. Este vídeo é armazenado no arquivo "movie.avi".
>>> from easy import camera
>>> camera.start()
>>> camera.record("./movie.avi", 30)
Um outro exemplo, apresentado abaixo, utiliza o módulo camera para capturar uma foto.
>>> from easy import camera
>>> camera.click("picture.jpg")
Contatos
O módulo de contatos (contacts) permite gerenciar os contatos armazenados no maemo. O Exemplo abaixo descreve como criar um contato setando seus atributos.
>>> from easy import contact >>> new_contact = contact.create_contact() >>> new_contact.name = "Guido" >>> new_contact.family_name = "Rossum" >>> new_contact.email = "guido@python.org" >>> new_contact.nickname = "guido" >>> new_contact.gtalk = "guido@gmail.com"
O módulo E-mail utiliza a biblioteca smtplib para enviar e-mails. Este módulo requer uma autenticação do servidor SMTP. O exemplo abaixo descreve como enviar um e-mail com anexos.
>>> from easy import e_mail
>>> my_email = e_mail.create_email()
>>> my_email.to = "guido@python.org"
>>> my_email.subject = "Easy released!"
>>> my_email.message = "Easy is up!"
>>> my_email.add_attachment("./easy.tar.gz")
>>> e_mail.connect("login", "password", "smtp_server")
>>> e_mail.send_mail(my_email)
Bluetooth
Este módulo define funções para a comunicação via bluetooth usando a biblioteca LightBlue. O exemplo abaixo envia um arquivo ("hello.txt") para um dispositivo através da rede bluetooth.
>>> from easy import bluetooth
>>> bluetooth.finddevices()
[('00:11:9F:02:94:29', u'John', 14373378), ('00:12:62:F3:44:08', u'Smith', 9392130)]
>>> mac, channel, service = bluetooth.findservices('00:11:9F:02:94:29', u'OBEX Object Push')[0]
>>> bluetooth.obex.sendfile(mac, channel, './hello.txt')
Radio
O módulo Radio provê um conjunto de funções para a reprodução de rádios FM. Estas funções permitem sintonizar em uma estação específica, bem como procurar por estações disponíveis. O código abaixo inicia o módulo Radio e sintoniza ele na frequência de 93.1 MHz.
>>> from easy import radio >>> radio.start() >>> radio.tune(93100)
UI
O módulo UI encapsula o projeto Eagle criando uma camada de abstração no topo do framework GTK+. Assim, é possível criar interfaces gráficas baseadas em GTK+ usando componentes providos pelo Eagle. O código abaixo apresenta uma pequena aplicação com interface gráfica que utiliza o módulo UI com dois destes componentes: Entry e Button.
from easy.eagle import *
def user_input( app, wid, text ):
print app, wid, text
def set_text( app, wid ):
app[ "entry" ] = "some text"
App(
title="Type something or press the button",
center=(
Entry( id="entry", label="Input:", callback=user_input ),
Button( id="button", label="Change Text", callback=set_text ),
)
)
run()
A figura acima ilustra a interface gráfica com os componentes providos pelo Eagle.
Links
Alguns link interessantes são apresentados abaixo:
- http://easy.garage.maemo.org - Página do projeto Easy com tutoriais, exemplos e aplicações
- http://easy.garage.maemo.org/doc/index.html - Especificação da API Easy
- http://pymaemo.garage.maemo.org - Página do projeto PyMaemo (Python para maemo)
- http://gustavobarbieri.com.br/eagle/docs/eagle.html - Página do projeto Eagle




(no comments yet)