×
Namespaces

Variants
Actions

Archived:Usando a API Easy

From Nokia Developer Wiki
Jump to: navigation, search

Archived.pngAquivado: Este artigo foi arquivado, pois o conteúdo não é mais considerado relevante para se criar soluções comerciais atuais. Se você achar que este artigo ainda é importante, inclua o template {{ForArchiveReview|escreva a sua justificativa}}.

Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)


Article Metadata

Artigo
Criado por hozano em 29 May 2008
Última alteração feita por hamishwillee em 07 May 2013

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:

  1. Acesse esta página através do browser do dispositivo maemo e clique aqui.
  2. 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.

Arquitetura da API Easy

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"

E-Mail

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

Interface gráfica com o módulo UI

A figura acima ilustra a interface gráfica com os componentes providos pelo Eagle.

Links

Alguns link interessantes são apresentados abaixo:

This page was last modified on 7 May 2013, at 14:19.
192 page views in the last 30 days.