7 febbraio 2011

IOBluetoothDeviceInquiry - Ora funziona!

Nonostante avessi richiesto una mano per del codice nel post PyobjC e Cocoa API, sono riuscita in breve a scovare nei meandri della rete qualcuno che come me ha avuto qualche difficoltà a capire il funzionamento della classe IOBluetoothDeviceInquiry e che per questo ha messo a disposizione un esempio corretto. L'esempio originale (lo trovate qui) è stato scritto in objective-c e comprende anche qualche manipolazione dei dispositivi trovati.
Quello che ho fatto è stato semplicemente "tradurre" l'esempio in Python tramite le regole di conversione di PyObjC, eliminare le parti che non mi servivano e personalizzarlo un po':

# Setup the inquiry to search for available devices
inquiry = IOBluetoothDeviceInquiry.alloc().init()
inquiry.start()
NSThread.sleepUntilDate_(NSDate.dateWithTimeIntervalSinceNow_(7))
inquiry.stop()

# Create an array of foundDevices
deviceList = inquiry.foundDevices()
print deviceList.count()

Effettivamente, mi ero già accorta che il mio codice precedente terminava troppo rapidamente, di certo non i 10 secondi cui dovrebbe durare la ricerca, ma non avevo trovato il modo di risolvere la questione e così foundDevices() veniva chiamato troppo presto. Quello che invece non mi è ben chiaro, è perché sia necessario chiamare anche stop(): la ricerca non dovrebbe terminare da sola dopo massimo 10 secondi? C'è ancora qualcosa che mi sfugge?

Nessun commento:

Posta un commento