bluetooth
От: Tails  
Дата: 17.02.10 10:33
Оценка:
Написал следующий код для поиска бт-устройств в пространстве
        WORD wVersionRequested = MAKEWORD(2, 2);
        WSADATA wsaData;
        if (WSAStartup(wVersionRequested, &wsaData) != 0)
        {
            ExitProcess(2);
        }

        int MAXDEVS = 16;

#ifdef PPC
        BTHNS_INQUIRYBLOB inqblob;
        ZeroMemory(&inqblob, sizeof(bool));
        inqblob.LAP = BT_ADDR_GIAC;
        inqblob.length = 4;
        inqblob.num_responses = MAXDEVS;

        BLOB blob;
        blob.cbSize = sizeof(BTHNS_INQUIRYBLOB);
        blob.pBlobData = reinterpret_cast<PBYTE>(&inqblob);
#endif

        WSAQUERYSET qsBegin;
        ZeroMemory(&qsBegin, sizeof(WSAQUERYSET));
        qsBegin.dwSize = sizeof(WSAQUERYSET);
        qsBegin.dwNameSpace = NS_BTH;
        qsBegin.lpcsaBuffer = NULL;

#ifdef PPC
        qsBegin.lpBlob = &blob;
#endif

        HANDLE hLookUp;
        DWORD flags = LUP_CONTAINERS;

        int rc = WSALookupServiceBegin(&qsBegin, flags, &hLookUp);

... далее идёт не интересный код по поиску устройств

скомпилировал сначала для виндовс мобайл (#define PPC) — всё отлично пашет находит всё что можно и выдаёт, никаких недоразумений не возникает.

Подумал: о какой я крутой! освоил копипаст — пора для компа скомпилировать (без #define PPC), для этого пошёл в среднестатистический компьютерный магазин и купил там бт-адаптер, воткнул в компьютер, автоматически мне он установился, появилась иконка бт в трее, думаю — совсем хорошо, всё с первого раза получается, ан не тут-то было! при доходе до строки

int rc = WSALookupServiceBegin(&qsBegin, flags, &hLookUp);

в rc записывается -1, WSAGetLastError даёт 10108 (нет такого сервиса в данном пространстве имён). Подскажите пожалуйста где я что не доделал? Чем отличается программирование под мобильное устройство и компьютер в плане бт? Надо ли как-то специфически сначала бт-адаптер настроить?
Re: bluetooth
От: mansur https://netmontools.com
Дата: 18.02.10 12:03
Оценка: +1
Здравствуйте, Tails, Вы писали:

T>в rc записывается -1, WSAGetLastError даёт 10108 (нет такого сервиса в данном пространстве имён). Подскажите пожалуйста где я что не доделал? Чем отличается программирование под мобильное устройство и компьютер в плане бт? Надо ли как-то специфически сначала бт-адаптер настроить?


IMHO в PPC встроенный б-т девайс и программируется при помощи Microsoft SDK, а купленный скорее всего программируется с помощью других SDK, Wacom или BlueSoleil. Тут тусются вендоры б-т SDK, почему-то не спешат помочь .
С уважением mansurv.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: bluetooth
От: Tails  
Дата: 18.02.10 13:06
Оценка:
А как определить какой стек активный и можно ли посмотреть какие вообще стеки установлены в системе?
Re[3]: bluetooth
От: quodum  
Дата: 18.02.10 15:18
Оценка:
Здравствуйте, Tails, Вы писали:

T>А как определить какой стек активный и можно ли посмотреть какие вообще стеки установлены в системе?


Ну например сделайте
devcon find *bt*
, или же пойдите в Device Manager и посмотрите производителя драйвера "который про блютус".

Для MS первый способ должен выдать одно или несколько уст-в, начинающихся с BTH, например:
BTH\MS_RFCOMM\8&E86BD13&4&0 : Bluetooth Device (RFCOMM Protocol TDI)
.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.