2013-04-17 22 views
8

Sto provando a connettermi a un Raspberry Pi tramite iPhone utilizzando CoreBluetooth (bluetooth 4.0). Ho scoperto il dispositivo e inviare una richiesta di connessione utilizzando questo codice:Connessione Raspberry Pi Bluetooth 4.0

if (peripheral != self.foundPeripheral) { 
    NSLog(@"Try to connect to %@", peripheral.name); 
    self.foundPeripheral = peripheral; 
    [self.centralManager stopScan]; 
    [self.centralManager connectPeripheral:peripheral options:nil]; 

} 

Né il didConnectPeripheral o didFailedToConnectPeripheral sono chiamati. Ho anche fatto in modo di impostare l'RPI per pubblicizzare bluetooth a basso consumo energetico utilizzando

sudo hciconfig hci0 leadv 

ma quando controllo le connessioni attive con

hcitool con 

Non ci sono connessioni attive. Mi mancano alcuni set up per il RPi? Anche la variabile name sulla periferica è vuota, è perché non mi sono ancora connesso?

+1

Avete una sorta di server GATT in esecuzione per rispondere alle richieste? Penso che hciconfig possa semplicemente capovolgere l'interruttore per attivare la pubblicità, ma in realtà non c'è nulla che risponda alle richieste di connessione. –

+0

Al momento non ho un server GATT in esecuzione, ma ha senso che qualcosa debba essere in esecuzione per elaborare tutto. Lo esaminerò e commenterò più tardi. Grazie! – Jacobcr

+0

Ho pensato che esistesse un server GATT di prova che fa parte del codice sorgente di Bluez, ma non sono riuscito a trovarlo. C'è un file chiamato "attrib_server.c" che sembra contribuire a quel tipo di ruolo. –

risposta

3

Prova bleno, è una libreria node.js che può essere utilizzata per creare una periferica BLE su entrambi OS X e Linux. Funziona bene sul mio Raspberry Pi che esegue Raspbian.