Question

Je dois vous connecter à un périphérique Bluetooth via le port COM virtuel créé dans Windows. Il est facile quand le port a déjà été créé au cours de la procédure d'appariement manuel. Mais je voudrais que ma demande pour soulager un utilisateur du couplage manuel d'un appareil. Je voudrais présenter tous les appareils de la gamme, permettre à l'utilisateur de choisir un, puis créer port COM virtuel connecté à l'appareil sélectionné. Je ne suis pas en essayant d'éviter la procédure d'appariement lui-même, mais je voudrais invoquer par ma demande.

J'ai commencé à se familiariser avec API Microsoft Bluetooth . Et puis quelques doutes ont surgi. Je me demandais ce qui se passe si un utilisateur utiliserait différents (que Microsoft de) la pile Bluetooth? Est-ce que l'API de Microsoft la véritable API Bluetooth, qui doivent être mis en œuvre par tout autre fournisseur de la pile Bluetooth? Ou plutôt chaque fournisseur a son propre API, et Microsoft est seulement l'un des nombreux autres?

Était-ce utile?

La solution

Merci à tous pour une contribution précieuse. Je voudrais résumer ce que je l'ai trouvé à ce jour. L'API système API Microsoft Bluetooth ne fonctionne. Demande écrite contre elle ne coopère pas correctement avec toute autre pile Bluetooth . Il semble que les applications qui sont destinées à coopérer avec plusieurs piles doivent fournir une couche d'abstraction de la pile et la pile code spécifique pour tous them.The autre solution est de permettre à l'utilisateur pour le couplage manuel du périphérique Bluetooth, ce qui crée finalement un certain dispositif virtuel dans le système d'exploitation (par exemple, port COM). Ensuite, l'application peut utiliser l'interface standard d'un tel dispositif.

Autres conseils

Je ne peux pas parler pour l'API Microsoft Bluetooth, mais il y a multiples piles Bluetooth disponible pour la plate-forme PC (encore plus pour les appareils mobiles).

L'API sous-jacente est définie par le Bluetooth de base Spec si toutes les piles doivent être en mesure d'interagir, en fait, il est obligatoire qu'ils Interop ou ils ne peuvent pas utiliser le nom et le logo Bluetooth.

En ce qui concerne le jumelage, vous allez avoir du mal à obtenir des dispositifs de paire s'ils ont la sécurité par défaut, ce qui nécessite un code PIN.

Les choses pourraient être plus simples dans la (proche) futur, comme la norme Bluetooth a mis en place un nouveau modèle de sécurité, simple liaison sécurisée , qui dispose d'un mode 'juste marche' qui ne nécessite pas le code Pin. Ceci est encore plus fort que la sécurité actuelle, sauf contre l'homme dans les attaques du milieu. Toutefois, il pourrait être un certain temps avant de voir les puces avec cette fonctionnalité dans les PC.

Si vous pouvez modifier à l'aide de .NET: - / Je peux recommander la bibliothèque 32feet.NET . Pour appariement explicite il y a BluetoothSecurity.PairDevice. Nous pouvons également créer le port virtuel pour vous, par exemple:

   BluetoothClient cli = new BluetoothClient();
   BluetoothDeviceInfo[] list = cli.DiscoverDevices();
   BluetoothDeviceInfo selected = GetUserToSelectOne(list);
   BluetoothSecurity.PairDevice(selected, pin);
   // Ask Win32 to create a virtual serial port
   selected.SetServiceState(BluetoothService.SerialPort);

Cependant, je n'aime vraiment pas de ports série virtuels, donc je suggère toujours que les gens utilisent une connexion sockets normale en utilisant notre classe BluetoothClient, il se chargera automatiquement une demande d'appariement si nécessaire.

Sur Win32 nous soutenons les piles de Microsoft, Widcomm / Broadcom et BlueSoleil. Sur Widcomm il n'y a pas de support pour SetServiceState encore là, et leur API n'a pas de support pour répondre aux demandes appairage . BlueSoleil devrait soutenir les deux.

Un guide de l'utilisateur est bref 32feet.NET - Guide de l'utilisateur, et toute la documentation de classe est disponible sur le site principal http://32feet.net , la documentation Widcomm est seulement dans notre dépôt de code au moment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top