De Santis Luca wrote:
> Buongiorno a tutti
>
> Ho un problema con uno script python per S60 su un nokia 6630. Sto
> facendo un applicazione che comunica con il pc tramite bluetooth per
> telefonare e ricevere messaggi tramite il bluetooth del telefono. Ho
> fatto questo script (postato di seguito e funziona tutto bene. Solo
> che al primo invio di un messgiio dal telefono al pc questo funziona
> bene, appena prova a fare il secondo invio rimane bloccato
> l'interprete python e devo spegnrere il cellulare. Credo sia un
> problema di comunicazione perché se all'interno dello script
> sostituisce i comandi di invio al telefono con dei semplici print va
> tutto a meraviglia.
Ciao ... mi è capitato di voler fare una cosa simile ed il mio n-gage
impazziva i crash li ho risolti evitando di condividere il socket
tra più thread, che anche se solo referenziato mi faceva crashare tutto
ma ancora non ho avuto tempo di cercare il reale motivo di questa
cosa... possibile pys60 simuli i thread?
ciao Saverio
>
> Grazie
>
> Luca
>
> import socket
> import appuifw
> import thread
> import e32
> import inbox
> import location
> import sysinfo
> #Assegnazione variabili globali
> DebugMode=1
> conn= None
> i = 0
> LastBattery=0
> LastSignal=0
> LastOperator=""
> LastPhoneStatus=0
> lock = e32.Ao_lock()
> lockTHR = thread.allocate_lock()
> #Definzione Classe telefono
> class JesterPhone:
> PhoneModel = ""
> PhoneBrand = ""
> #Marca
> def GetBrand(self):
> return "Nokia"
> #Modello
> def GetModel(self):
> try:
> PhoneResp=sysinfo.sw_version()
> firmware = PhoneResp.split(' ')[3]
> mapping = {
> 'RM-51': '3230',
> 'RM-38': '3250',
> 'NHM-10': '3600',
> 'NHM-10X': '3620',
> 'NHL-8': '3650',
> 'NHL-8X': '3660',
> 'RM-25': '6260',
> 'RM-29': '6260b',
> 'NHL-10': '6600',
> 'NHL-12': '6620',
> 'NHL-12X': '6620',
> 'RM-1': '6630',
> 'RH-67': '6670',
> 'RH-68': '6670b',
> 'RM-36': '6680',
> 'RM-57': '6681',
> 'RM-58': '6682',
> 'RH-51': '7610',
> 'RH-52': '7610b',
> 'NHL-2NA': '7650',
> 'RM-49': 'E60-1',
> 'RM-89': 'E61-1',
> 'RM-10': 'E70-1',
> 'RM-24': 'E70-?',
> 'NEM-4': 'N-Gage',
> 'RH-29': 'N-Gage QD (asia/europe)',
> 'RH-47': 'N-Gage QD (americas)',
> 'RM-84': 'N70-1',
> 'RM-99': 'N70-5',
> 'RM-67': 'N71-1',
> 'RM-112': 'N71-5',
> 'RM-91': 'N80-3',
> 'RM-92': 'N80-1',
> 'RM-42': 'N90-1',
> 'RM-43': 'N91-1',
> 'RM-158': 'N91-5' }
> return "Nokia "+mapping[firmware]
> except:
> return "notfound"
> #Inizializzazione classe telefono
> def InitMe(self):
> self.PhoneBrand=self.GetBrand()
> self.PhoneModel=self.GetModel()
>
> #Avvio del server RFCOMM
> def StartServer():
> global conn
> server = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
> channel = socket.bt_rfcomm_get_available_server_channel(server)
> server.bind(("", channel))
> server.listen(1)
> socket.bt_advertise_service(u"JesterPlugIn", server, True,
> socket.RFCOMM)
> socket.set_security(server, socket.AUTH | socket.AUTHOR)
> print "- Waiting for clients..."
> conn, client_addr = server.accept()
> print "- Jester connected with phone"
>
> #Aggiorna ststo telefono
> def GetPhoneInfo():
> RefFlag=0
> RefState=0
> RetOper=location.gsm_location()
> SignalDisp=sysinfo.signal()
> BatteryDisp=sysinfo.battery()
> Operator=str(RetOper[0])+str(RetOper[1])
> global LastBattery
> global LastSignal
> global LastOperator
> if LastBattery != BatteryDisp:
> LastBattery=BatteryDisp
> RefFlag=1
> if LastSignal != SignalDisp:
> LastSignal=SignalDis