2010-11-24 3 views
1

Ich möchte eine Terminal-Anwendung erstellen, die eine Verbindung zu einem Bluetooth-Gerät herstellt und alle Befehle ausgibt, die vom Bluetooth-Gerät gesendet werden. Bis jetzt kann ich eine Liste der verfügbaren Geräte scannen und ausgeben.Erstellen Sie einen Terminal-basierten Bluetooth-Monitor in XCode?

Jede Richtung würde sehr geschätzt werden - ist das überhaupt möglich? Was soll ich jetzt ansehen? Ich habe versucht, BluetoothDeviceAddress und IOBluetoothL2CAPChannelGetDevice zu verwenden, hatte aber noch keinen Erfolg.

Hier ist mein Code so weit:

#include <Foundation/Foundation.h> 
#include <Cocoa/Cocoa.h> 
#include <IOBluetooth/objc/IOBluetoothDeviceInquiry.h> 
#include <IOBluetoothUI/IOBluetoothUI.h> 

int main (int argc, const char * argv[]) { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    NSLog(@"start bluetooth search"); 

    IOBluetoothDeviceInquiry *d = [[IOBluetoothDeviceInquiry new] init]; 
     [d setInquiryLength: 5]; 
     [d setUpdateNewDeviceNames: TRUE]; 
     [d start]; 

    [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 7]]; 
     [d stop]; 
     NSArray *deviceList = [d foundDevices]; 

    NSLog(@"found %d devices", [deviceList count]); 

    for(int i=0;i < [deviceList count]; i++) { 

     NSScanner *theScanner = [NSScanner scannerWithString:[NSString stringWithFormat:@"%@", [deviceList objectAtIndex:i]]]; 


     NSString *tagDeviceName = @"mName - "; 
     NSString *tagEndLine = @"\n";  

     NSString *currentDeviceName; 

     // extract the mName from the current array value 
     while ([theScanner isAtEnd] == NO) { 
      [theScanner scanUpToString:tagDeviceName intoString:NULL]; 
      [theScanner scanString:tagDeviceName intoString:NULL]; 
      [theScanner scanUpToString:tagEndLine intoString:&currentDeviceName];   
     } // end [theScanner isAtEnd] 

     NSLog(@"device name: %@", currentDeviceName); 

    } 


    [pool release]; 
    return 0; 
} 
+0

Mit welchem ​​Bluetooth-Gerät muss es verbunden werden? Welches Profil möchten Sie verwenden? –

+0

Ich teste gerade mit einer Wii-Fernbedienung. – Chris

Antwort

0

Der nächste Schritt sein wird: 1. Entdecken Sie die verfügbaren Dienste auf dem Gerät über SDP 2. Verbinden Sie den Service und die Daten lesen.

Sie können das SPP-Profil für Daten senden/empfangen verwenden - vorausgesetzt, das Gerät, mit dem Sie eine Verbindung herstellen, verwendet dieses Profil zum Senden der Daten.

+0

Danke für die Richtung. Ich habe angefangen, die Apple Bluetooth Dokumentation zu lesen, hoffentlich wird das die Themen beleuchten. Alle anderen Tipps würden sehr geschätzt werden. – Chris

Verwandte Themen