2010-11-24 16 views
1

Je souhaite créer une application Terminal qui se connecte à un périphérique Bluetooth et affiche toutes les commandes envoyées par le périphérique Bluetooth. Jusqu'à présent, je suis capable de numériser et de sortir une liste des périphériques disponibles.Créer un moniteur Bluetooth basé sur le terminal dans XCode?

Toute direction serait grandement appréciée - est-ce encore possible? Que devrais-je regarder maintenant? J'ai essayé d'utiliser BluetoothDeviceAddress et IOBluetoothL2CAPChannelGetDevice mais je n'ai pas encore eu de succès.

Voici mon code à ce jour:

#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

Quel est le périphérique Bluetooth auquel il doit se connecter? Quel profil envisagez-vous d'utiliser? –

+0

En ce moment, je teste avec une télécommande Wii. – Chris

Répondre

0

L'étape suivante sera: 1. Découvrez les services disponibles sur l'appareil via SDP 2. Se connecter au service et lire les données.

Vous pouvez utiliser le profil SPP pour l'envoi/la réception de données, en supposant que le périphérique auquel vous vous connectez utilise ce profil pour envoyer les données.

+0

Merci pour la direction. J'ai commencé à lire la documentation Apple Bluetooth, j'espère que cela éclairera les sujets. Tous les autres conseils seraient grandement appréciés. – Chris