Не работает подключение к bluetooth. На ноуте все параметры настроены, при сканирование сети устройство видит, но не подключается
Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include <stdio.h>
#pragma comment( lib, "ws2_32.lib" )
#pragma comment(lib, "iphlpapi.lib")
#include <winsock2.h>
#include<windows.h>
#include<stdio.h>
#include <cassert>
#pragma comment (lib,"WSock32.Lib")
#include <ws2bth.h>
#include <initguid.h>
//#include <BluetoothAPIs.h>
#include <stdio.h>
#include<locale.h>
#include <locale>
#include <string.h>
#define BUF_SIZE 10240 // 10kb памяти для получение данных о блютус
WSADATA wsaData;//
WORD Version;//
SOCKET my_sock;
SOCKADDR_BTH sab;
typedef ULONGLONG bt_addr, *pbt_addr, BT_ADDR, *PBT_ADDR;
BT_ADDR aSddr = 0X98D331405FD1;
char adr[]="(98:D3:31:40:5F:D1)";
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Version = MAKEWORD (2, 2);
if (WSAStartup(Version,&wsaData))
{
ShowMessage("Error WSAStart");
}
WSAQUERYSET* wsaq = (WSAQUERYSET*) new BYTE[BUF_SIZE];
ZeroMemory(wsaq, BUF_SIZE);
wsaq->dwSize = sizeof(WSAQUERYSET);
wsaq->dwNameSpace = NS_BTH;
HANDLE hLookup;
int lookupResult = WSALookupServiceBegin(wsaq,LUP_CONTAINERS | LUP_FLUSHCACHE,&hLookup);
if (lookupResult != 0)
{
ShowMessage(" Ошибка при инициализации поиска");
}
while (lookupResult == 0)
{
DWORD bufferLen = BUF_SIZE;
lookupResult = WSALookupServiceNext(hLookup,
LUP_RETURN_NAME | LUP_RETURN_ADDR,
&bufferLen,
wsaq);
if (lookupResult != 0) break;
String Str = wsaq->lpszServiceInstanceName;
UnicodeString Str2 = Str;
ShowMessage(Str2);//вывод названия найденного устройства
}
memset (&sab, 0, sizeof(sab));
sab.addressFamily = AF_BTH;
sab.btAddr = aSddr;
sab.serviceClassId = SerialPortServiceClass_UUID;
sab.port = DWORD(BT_PORT_ANY);
my_sock = socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (my_sock == INVALID_SOCKET)
{
ShowMessage("Socket error");
}
if (connect (my_sock,(SOCKADDR *)&sab, sizeof(sab)))
{
ShowMessage("no connect");
closesocket(my_sock);
WSACleanup();
return;
}
else {
ShowMessage("connecting");
}
WSALookupServiceEnd(hLookup);
WSACleanup();
}