Python per S60: ascolta un socket in thread separato
Domanda
Sto sviluppando un gioco Bluetooth in Python per dispositivi Nokia basati su S60. Le prese Bluetooth dell'S60 si stanno rivelando piuttosto complicate. Per due motivi:
-
Non riesco a fare il master su più socket slave in Python, ho sentito che non può essere fatto in Python, quindi l'ho già lasciato e non lo faccio comunque.
-
L'altra parte è che non posso semplicemente ascoltare un socket in un thread separato e andare via con la normale esecuzione della mia applicazione. Ho provato un codice di esempio qui:
Nota che uso ao_callgate () mentre condivido socket tra thread.
Il post (ancora senza risposta :-() può essere trovato qui: http://discussion.forum.nokia.com/forum/showthread. php? t = 162260
Soluzione
Ho imparato qualcosa sugli oggetti attivi. Le richieste di lettura e scrittura vengono inviate al server Blutooth. Ma esiste una limitazione di una sola richiesta alla volta.
Creo un nuovo thread (diciamo t1) e lo chiamo nel contesto del thread principale usando ao_e32.callgate (). In questo aspetto il messaggio in arrivo. Quando voglio inviare un mesaage tramite bluetooth dovrei interrompere questo thread, inviare il messaggio e ricominciare il thread. Ma ora il problema è come interrompere un thread in Python.
P.S. il modulo thread è disponibile in Python per S60 e il threding può essere installato su di esso usando threading.py dalla versione PC di Python