No primeiro momento eu falei sobre python, nokia, symbian, a implemetação do python para o Series 60.
Após isto iniciei a parte dinâmica (slides 22 e 23) da palestra onde eu abria um console remoto (meu computador conectado no console python do celular) e fazia pequenos scripts para usar as funcionalidades do celular usando apenas python. O meu roteiro desta parte segue abaixo:
############################
# Abrir tres terminais
# Ligar o rfcomm
sdptool add --channel=2 SP
sudo rfcomm listen rfcomm2 2
####
# ir no celular e ativar o console bluetooth
#####
# Abrir o minicom em outro terminal
minicom
#######################
# no terceiro terminal
# procurar dispositivos
sudo hcitool scan
######################################
# DENTRO DO MINICOM
######################################
# PYTHON
# Coisas basicas
import os
# nome do os
os.name
# diretorio atual
os.getcwd()
os.listdir(u"e:\\")
# mostrar a hora atual
import time
time.ctime()
################################3
# SMS
# enviar um sms
import messaging
messaging.sms_send('08584166618', u'Somente um teste')
# receber um sms
import inbox
i = inbox.Inbox()
# receber sms
def my(msgid):
print msgid
i.bind(my)
########
# Aqui vai aparecer uma mensagem com o numero (copiar para abaixo)
# entao mostrar a mensagem
i.content(1049305)
i.address(1049305)
i.time(1049305)
# formatar para o tempo correto
from e32db import format_time
format_time(i.time(1049305))
#########
# Ligar para alguem
import telephone
telephone.dial('88752334')
telephone.hang_up()
#########################
# Agenda
import contacts
# mostrar contatos:
db = contacts.open()
for i in db:
print db[i].title
# adicionar um contato
c = db.add_contact()
c.add_field(u"first_name", value=u"CESOL")
c.add_field(u"last_name", value=u"UFC")
c.add_field(type=u"mobile_number", value=u"2008")
c.commit()
# Mostrar os contatos
for i in db:
print db[i].title
# Mostrar meu contato
c
c.id
db[c.id]
for e in c:
print e.type, e.value
# exportar um vcard
vcards = db.export_vcards([c.id])
# gravar o arquivo
filename = u"e:\\test.vcf"
f = open(filename, "w")
f.write(vcards)
f.close()
# PEDIR PARA LIGAR O BLUETOOTH
# enviar para alguem da plateia
# sudo hcitool scan
from e32socket import *
cel1 = "00:17:E3:F9:D6:D3"
#cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# apagar o contato
del db[c.id]
# Mostrar os contatos
for i in db:
print db[i].title
# reimportar o contato
db.import_vcards(vcards)
###########################
# Parte grafica (fazer um aplicativo)
# mexer no celular
# fazer um hello world
from appuifw import *
# desenhar o hello world
t = Text()
t.set(u"Hello python")
app.body = t
# como ninguem ta vendo, vamos tirar um screenshot da tela e enviar para alguem
import graphics
pc = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(pc)
image = graphics.screenshot()
filename =(u'e:\\pic001.jpg')
image.save(filename)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# enviar para eu mesmo
# ligar o bluetooth obex server
# fazer funcao para realizar screenshot e enviar para alguem
def ss(to='00:09:DD:50:0C:C5'):
phone = bt_obex_discover(to)
image = graphics.screenshot()
file =(u'e:\\pic001.jpg')
image.save(file)
bt_obex_send_file(phone[0], phone[1].values()[0], file)
#ss()
###
# Desenhar um retangulo
# mexer no celular
from random import randrange
app.body = canvas = Canvas()
color = randrange(0xffffff)
canvas.rectangle((0, 0, 100, 100), fill=color)
# enviar para eu mesmo
ss()
# desenhar uma seta de mouse
x,y = 20,20
arrow = [(0,0), (0,10), (2,8), (4,12), (6,11), (4,7), (7,7)]
canvas.polygon([(x+dx,y+dy) for dx,dy in arrow], 0, 0xffffff)
# enviar para mim mesmo
ss()
###################
# Camera
import camera
image = camera.take_photo()
# enviar para alguem
filename =(u'e:\\pic001.jpg')
image.save(filename)
cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# fazer um sistema de monitoramento?
# usar gprs/internet
#################
# Arquivo de audio?
import audio
filename = u"e:\\audio.wav"
s = audio.Sound.open(filename)
# gravar
s.record()
# parar
s.stop()
# tocar
s.play()
# fechar
s.close()
enviar para alguem
cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# apagar o arquivo
os.unlink(filename)
# Fazer um Servico jornalistico?