Bluetooth avec C++ et winsock
Je trouve qu'il est très difficile d'obtenir des informations sur la communication Bluetooth en C++. Plus précisément, je veux éviter d'utiliser des bibliothèques tierces et je veux simplement vous connecter à un appareil déjà jumelé avec mon ordinateur.
L'appareil a déjà eu son code d'accès est entré et est disponible dans le "Afficher les Périphériques Bluetooth" sous mes périphériques et imprimantes. Je suis sous Windows 7 et visual studio 2013 professional pour le développement en C++.
J'ai quelques exemple de code (à partir d'ici http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancedotherprotocol4k.html) qui affiche des informations sur ma radio Bluetooth et affiche alors les informations de l'appareil et il semble bien fonctionner. Même si c'est l'impression de chaque appareil Bluetooth déjà jumelé avec l'ordinateur, et non à ceux qui sont dans la gamme, mais c'est peut être moi une mauvaise interprétation de ce que le code est supposé faire.
J'ai été à la recherche par le biais de la technologie Bluetooth, la page de référence (http://msdn.microsoft.com/en-us/library/windows/desktop/aa362930%28v=vs.85%29.aspx) et toutes les fonctions sont juste à voir avec le réglage de la radio de Bluetooth de la disponibilité et d'autres choses comme ça; pas de signe de se connecter à un appareil détecté.
Je dois manquer quelque chose, le mauvais mots-clés lors de la recherche sur Google ou quelque chose, parce que je n'ai rien trouvé à propos de la connexion à un périphérique Bluetooth!
Si quelqu'un a des suggestions, du code, ou des liens, ce serait super! Je peux me connecter à mon appareil à l'aide de la fonctionnalité série (très facilement) mais je dois entrer manuellement le port COM, il est enregistré, ce qui n'est pas très convivial. Je veux numériser et sélectionnez ou entrez un nom d'appareil Bluetooth, et de se connecter de cette façon.
Acclamations
EDIT:
BitBanks réponse m'a orienté dans la bonne direction. Seule chose qui manque est un WSAStartup demande avant toute prise demandes:
WORD wVersionRequested;
WSADATA wsaData;
int err;
/* Use the MAKEWORD(lowbyte, highbyte) macro declared in Windef.h */
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
/* Tell the user that we could not find a usable */
/* Winsock DLL. */
printf("WSAStartup failed with error: %d\n", err);
return 1;
}
OriginalL'auteur ritchie888 | 2013-11-19
Vous devez vous connecter pour publier un commentaire.
Si vous avez une adresse bluetooth de la découverte ou de la jumelé à la liste des périphériques, vous pouvez vous connecter comme cela (vérification des erreurs doit être ajouté):
Certains appareils de la publicité de l'SerialPortServiceClass_UUID au lieu de la RFCOMM_PROTOCOL_UUID. Vous aurez également besoin de réessayer la connexion à plusieurs reprises. Certaines de mise en œuvre inadéquate des appareils bluetooth (toux PowerA Moga toux) nécessitent de multiples tente de se connecter.
Cela peut ne pas être le moyen officiel pour le faire, mais je reçois le 6 octets adresse BT de l'appareil, je suis intéressé par de la jumelé liste comme ceci:
Bluetooth adresses sont constitués de 6 octets (par exemple, 00:06:63:32:2e:fb), et non pas 5 (peut-être il ya un plus grand 0x00). Si vous connectez l'appareil d'abord, vous pouvez voir l'adresse BT dans Panneau de configuration->Périphériques et Imprimantes->périphérique>Propriétés->Adresse Bluetooth. J'ai édité ma réponse à montrer comment je l'adresse à partir de la paire de données de liste.
OriginalL'auteur BitBank