in realta' non e' proprio nuova
come gia' detto i cartelloni pubblicitari della microsoft lo facevano, inoltre anche al mi ami festival di milano dell'anno scorso lo facevano.
comunque, sono forse arrivato ad una conclusione, ecco il codice:
#!/usr/bin/python
import os
import string
import time
start_bluetooth="echo 1 > /sys/bus/platform/devices/neo1973-pm-bt.0/power_on; echo 0 > /sys/bus/platform/devices/neo1973-pm-bt.0/reset; /etc/init.d/bluetooth start"
os.system(start_bluetooth)
while 1>0:
dev_scan = "hcitool scan"
list_dev=os.popen(dev_scan)
tot= list_dev.read()
tot= tot.split("\n")
tot.pop(0)
tot.reverse()
tot.pop(0)
for dev in tot:
dev=dev.split("\t")
get_channel = "sdptool search --bdaddr " + dev[1] + " OPUSH | sed 's/ //g' | grep Channel | cut -d: -f 2"
channel_scan=os.popen(get_channel)
channel=channel_scan.read()
print "!" + channel[:-1] + "!"
if channel != "":
send_file="obextool push file.txt " + dev[1] + " " + channel
print "sending file to \"" + dev[2] + "\""
send=os.system(send_file)
time.sleep(5)
ho trovato, almeno credo, la soluzio ai problemi di
timeout o di
resource busy (soluzione posticcia ma pare funzionare)
ho cambiato
os.popen in
os.system perche', almeno pare, che la
os.system aspetti che il comando che ha lanciato finisca prima di continuare alla riga successiva del codice python, mentre la
os.popen lancia il comando e poi continua senza aspettare.
inoltre ho aggiunto una verifica che se trova il
device con
opexpush attivo ma non il canale non fa nulla.
lavorare in una scuola mi permette di avere tanti cellulari bluetooth attivi e di testare la scansioni su dispositivi diversi (senza che nessuno se ne accorga tra l'altro) e ne ho trovati alcuni senza il canale specificato.
siccome, vabbe', mi diverti si ma non mi diverto a mandare realmente file a tutti i malcapitati, non ho testato cosa succede a mandare un file ad un dispositivo senza canale, per cui ho preferito evitare. (poi mi sbizzarrisco quando torno a casa

)
ma perche' ho usato
obextool e non
obexftp che serve, appunto, a trasferire i file?
inanzitutto pare che il pacchetto
obexftp non ci sia compilato per openmoko (almeno io non l'ho trovato e comunque non ho assolutamente voglia di compilarlo), e poi pare che con
obexftp bisogna inserire il
pin, mentre con
obextool no (comunque nel
device "vittima" l'utente deve comunque confermare se accettare il file o meno)