XP Bluetooth device
От: Krisha Украина  
Дата: 03.11.05 15:17
Оценка:
Подскажите плз, какой преобрести bluetooth для работы с MS BT SDK.
Меня интересует производитель, максимальный радиус и максимальное кол-во коннектов.
Я так понимаю что драйвера под этот device должны входить в service pack 2 for XP.
Re: XP Bluetooth device
От: alsemm Россия  
Дата: 03.11.05 18:28
Оценка:
Здравствуйте, Krisha, Вы писали:

K>Подскажите плз, какой преобрести bluetooth для работы с MS BT SDK.

K>Меня интересует производитель, максимальный радиус и максимальное кол-во коннектов.
K>Я так понимаю что драйвера под этот device должны входить в service pack 2 for XP.
http://www.dlink.com/products/?model=DBT-120 — этот у меня работал
Re: XP Bluetooth device
От: Падла Россия  
Дата: 16.11.06 09:42
Оценка:
Здравствуйте, Krisha, Вы писали:

K>Подскажите плз, какой преобрести bluetooth для работы с MS BT SDK.

K>Меня интересует производитель, максимальный радиус и максимальное кол-во коннектов.
K>Я так понимаю что драйвера под этот device должны входить в service pack 2 for XP.


Расскажу я тебе сказку братец!!!! проблем выше крыши меня уже воротит!!!1
Моя задача сделать bluetooth на 10 км нормальный парень скажет что ни чего не получиться!! ан нет!!!
Купи два блютус устроиства и начинай работать.. для начала надо скачать платформу СДК на сайте Билли она для 2003 сервера но то же ничего тянет там в низу мелким шрифтом написано что и под ХР она то же ставиться там надешь кучу либов и хедеров... весит 140 МБ может больше... но при распаковки вся это хня занимает 900 МБ скачал еще патч для С++ 2005 не понял прикола но то же в чемто фишка есть.. один блютус разбираешь и делаешь к нему усилитель!!! я написал прогу как найти и поднять TCP/IP в блютусе но нет блютусы не могут работать без своих драйверов так что буть внимателен при выборе..... а да кстати.... клас блютуса 1... сейчас ломаю себе голову так как блютусы не видят друг друга без драйверов.. не охота покупать другие а прога ищет тока стандартные блютус устройства...

Если есть у кого в этом опыт поделитесь!!!
Re[2]: XP Bluetooth device
От: StDenis Россия  
Дата: 20.11.06 07:05
Оценка:
Здравствуйте, Падла, Вы писали:

П>Расскажу я тебе сказку братец!!!! проблем выше крыши меня уже воротит!!!1

вот если бы вместо лишних эмоций ты расписал что именно тебе нужно от BT..

П>Моя задача сделать bluetooth на 10 км нормальный парень скажет что ни чего не получиться!! ан нет!!!

конечно не получится. 2 км (или 3, сейчас точно уже не помню) максимум. ибо это ограничение по timeout у самого стандарта. и тут никакие усилители тебе не помогут.

П>Если есть у кого в этом опыт поделитесь!!!

смотря чего опыт тебе нужен.

з.ы. "Здравствуйте, Падла, Вы писали:" звучит.. :]
BRG,
Re[3]: XP Bluetooth device
От: Падла Россия  
Дата: 21.11.06 13:05
Оценка:
смешно!!?
тогда смотри!:

#include "stdafx.h"
#include <winsock2.h>
#include <ws2bth.h>
#include <bthdef.h>
#include <BluetoothAPIs.h>
#include <stdio.h>

void main()
{
// Инициализация WinSock
WSADATA wsd;
WORD Version = MAKEWORD(2,2);
if (WSAStartup(Version,&wsd)!=0)
{
printf("WSAStartup error\n");
return;
}
{
BLUETOOTH_DEVICE_SEARCH_PARAMS bdsp;
BLUETOOTH_DEVICE_INFO bdi;
HBLUETOOTH_DEVICE_FIND hbf;
ZeroMemory(&bdsp, sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS));
bdsp.dwSize = sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS);
bdsp.fReturnAuthenticated = TRUE;
bdsp.fReturnRemembered = TRUE;
bdsp.fReturnUnknown = TRUE;
bdsp.fReturnConnected = TRUE;
bdsp.fIssueInquiry = TRUE;
bdsp.cTimeoutMultiplier = 10;
bdsp.hRadio = NULL;
bdi.dwSize = sizeof(bdi);
hbf = BluetoothFindFirstDevice(&bdsp, &bdi);
DWORD dwErr = GetLastError();
if (hbf != NULL)
{
char szDevName[MAX_PATH];
while(1)
{
memset(szDevName, 0x00, sizeof(szDevName));
sprintf(szDevName,"Name:%S", bdi.szName);
printf("Name:%S,Addr:%X, Class device:%d\n", bdi.szName, bdi.Address, bdi.ulClassofDevice);
if (BluetoothFindNextDevice(hbf, &bdi) == FALSE)
break;
}
BluetoothFindDeviceClose(hbf);
}
else
{
printf("Ne najden");
}

_______________________________________________________________________________________________________
=======================================================================================================
* вот до сюдова все работает замечательно! слов не нахожу! а вот ниже началась порнография!1 полная у меня опыта мало в системном программировании... так что!

SOCKET s = socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (s == INVALID_SOCKET)
{
wprintf (L"Could not create socket: error %d\n", WSAGetLastError ());
return;
}
SOCKADDR_BTH sab;
sab.port=20;
memset (&sab, 0, sizeof(sab));
sab.addressFamily = AF_BTH;
//sab.serviceClassId = FaxServiceClass_UUI;
sab.btAddr = 0X60D1211F;

if (0 != connect (s, (sockaddr *)&sab, sizeof(sab)))
{
wprintf (L"Could not connect socket: error %d\n", WSAGetLastError ());
return;
}
===========================================================================================================
____________________________________________________________________________________________________________
* поидеи это вещь должна конектиться по мак адресу... а потом ниже я подымаю TCP соединение!
и вот ту как растоки зопа.. он у меня не конектиться!!!
/*{
//----------------------
// Create a SOCKET for connecting to server
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
return;
}
//----------------------
// The sockaddr_in structure specifies the address family,
// IP address, and port of the server to be connected to.
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("0X60D1211F");
clientService.sin_port = htons(5449);

//----------------------
// Connect to server.
if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
{
printf( "Failed to connect.\n" );
WSACleanup();
return;
}
{
printf("Connected to server.\n");
WSACleanup();
return;
}
}*/
}
}



Я проект не рихтовал выложил черновой вариант!!! так что не критикуйте по поводу обилия скобочек главное чтоб работал!

Жду помощи! а может и кому то помагу.. Мне это надо все в консольном варианте... так что с графикой не заморачивался!
Re[4]: XP Bluetooth device
От: MikePetrichenko Беларусь www.btframework.com
Дата: 22.12.06 08:51
Оценка:
Здравствуйте, Падла, Вы писали:

П>смешно!!?

П>тогда смотри!:

Это ж ужас какой-то. Не будет оно работать. Прочти MSDN очень внимательно.
Bluetooth, IrDA, WiFi and Serial Ports SDK for .NET, ActiveX, C++ and VCL
Spektrum Telemetry Log File Viewer
Re[4]: XP Bluetooth device
От: MikePetrichenko Беларусь www.btframework.com
Дата: 24.12.06 08:37
Оценка:
Здравствуйте, Падла, Вы писали:

П>смешно!!?

П>тогда смотри!:

Хм. Конкретные рекомендации. Пожалуйста.

П>sab.port=20;

Это что? Где ты это число взял???

П>//sab.serviceClassId = FaxServiceClass_UUI;

Ну и к какому сервисы сие должно конектится???

П>Я проект не рихтовал выложил черновой вариант!!! так что не критикуйте по поводу обилия скобочек главное чтоб работал!


П>Жду помощи! а может и кому то помагу.. Мне это надо все в консольном варианте... так что с графикой не заморачивался!


Дальше просто бессмысленно коментировать, так как понятия в технологии не имееш вообще. Прочитай сначала документацию и т.п.

Далее, по поводу твоих рассуждений про драйвера. Есть куча производителей драйверов:
WidComm, BlueSoleil, Toshiba. У каждого свой API. Так что изучай.
А вообще сайт в подписи.
Удачи!

P.S. Когда пишешь незнакомому человеку на почту и хочешь помощи — выбирай выражения и обращения. А то я такие письма к спаму отношу и либо удаляю либо нецензурно отвечаю.
Bluetooth, IrDA, WiFi and Serial Ports SDK for .NET, ActiveX, C++ and VCL
Spektrum Telemetry Log File Viewer
Re[4]: XP Bluetooth device
От: Падла Россия  
Дата: 25.12.06 08:33
Оценка: -1
сервис не тот, не посмотрел, кому надо подставят нужный а порт... к вашему сведенья не больше 30 портов поддерживает кстати можно написать что любой порт но он то же возьмет номер порта не больше 30... поставь свой 5449 или какой нибудь другой работать не будет...



void main()
{
WORD wVersionRequested = 0x202;
WSADATA m_data;

if ( ::WSAStartup( wVersionRequested, &m_data) != 0 )
{
printf("WSA failed\n");
return;
}

SOCKET sd = ::socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (sd == INVALID_SOCKET)
{
printf("Failed to get bluetooth socket! %d\n", GetLastError());
::WSACleanup();
exit(1);
}

WSAPROTOCOL_INFO protocolInfo;
int protocolInfoSize = sizeof(protocolInfo);
if (0 != getsockopt(sd, SOL_SOCKET, SO_PROTOCOL_INFO, (char*)&protocolInfo, &protocolInfoSize))
{
printf("Failed to get socket option! %d\n", GetLastError());
::WSACleanup();
exit(1);
}

WSAQUERYSET querySet;
memset(&querySet, 0, sizeof(querySet));
querySet.dwSize = sizeof(querySet);
querySet.dwNameSpace = NS_BTH;
HANDLE hLookup;
DWORD flags = LUP_RETURN_NAME | LUP_CONTAINERS | LUP_RETURN_ADDR | LUP_FLUSHCACHE | LUP_RETURN_TYPE | LUP_RETURN_BLOB | LUP_RES_SERVICE| LUP_RETURN_ALL;
int result = WSALookupServiceBegin(&querySet, flags, &hLookup);

if ( result != 0 )
{
printf("Failed to lookup! %d\n", GetLastError());
::WSACleanup();
exit(1);
}

while (0 == result)
{
BYTE buffer[1000];
DWORD bufferLength = sizeof(buffer);
WSAQUERYSET *pResults = (WSAQUERYSET*)&buffer;

if ( ( result = WSALookupServiceNext(hLookup, flags, &bufferLength, pResults) ) == 0 )
{
wprintf( L"Found: %s\n", (char *)pResults->lpszServiceInstanceName );
SOCKADDR_BTH sab;
memset (&sab, 0, sizeof(sab));
sab.addressFamily = AF_BTH;
sab.serviceClassId = SerialPortServiceClass_UUID
sab.btAddr = 0x001060d120ce;
sab.port= 15;



if (0 != ( result = connect (sd, (sockaddr *)&sab, sizeof(sab))) )
{
wprintf (L"Could not connect socket: res = %d, error %d\n", result, WSAGetLastError ());
}

}
}

::WSACleanup();
}




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


void main()
{
// Инициализация WinSock
WSADATA wsd;
WORD Version = MAKEWORD(2,2);
if (WSAStartup(Version,&wsd)!=0)
{
printf("WSAStartup error\n");
return;
}
//============================================================================================================
// Поиск первого Bluetooth устройства установленного на компьютере
HANDLE hRadio;
BLUETOOTH_FIND_RADIO_PARAMS btfrp;
HBLUETOOTH_RADIO_FIND hFind;
BLUETOOTH_RADIO_INFO RadioInfo= {0};
btfrp.dwSize = sizeof(btfrp);

hFind = BluetoothFindFirstRadio(&btfrp,&hRadio);
if (hFind != 0) {
printf("Local radio module is found\n");
} else {
printf("Nothing is found\n");
return;
}
BLUETOOTH_DEVICE_SEARCH_PARAMS bdsp;
BLUETOOTH_DEVICE_INFO bdi;
HBLUETOOTH_DEVICE_FIND hbf;
ZeroMemory(&bdsp, sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS));
bdsp.dwSize = sizeof(BLUETOOTH_DEVICE_SEARCH_PARAMS);
bdsp.fReturnAuthenticated = TRUE;
bdsp.fReturnRemembered = TRUE;
bdsp.fReturnUnknown = TRUE;
bdsp.fReturnConnected = TRUE;
bdsp.fIssueInquiry = TRUE;
bdsp.cTimeoutMultiplier = 10;
bdsp.hRadio = NULL;
bdi.dwSize = sizeof(bdi);
hbf = BluetoothFindFirstDevice(&bdsp, &bdi);
DWORD dwErr = GetLastError();
if (hbf != NULL)
{
char szDevName[MAX_PATH];
while(1)
{
memset(szDevName, 0x00, sizeof(szDevName));
sprintf(szDevName,"Name:%S", bdi.szName);
printf("Name:%S, Addr:%X, Class device:%d\n", bdi.szName, bdi.Address, bdi.ulClassofDevice);
if (BluetoothFindNextDevice(hbf, &bdi) == FALSE)
break;
}
BluetoothFindDeviceClose(hbf);
}
else
{
printf("Proverte nastrojki Bluetooth (flag obnaryzhenija)\n");

}
/* {
//================================================================================================================
// Bluetooth соединение
SOCKET s = socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM);
if (s == INVALID_SOCKET)
{
printf ("Could not create socket: error %d\n", WSAGetLastError ());
return;
}
SOCKADDR_BTH sab;
memset (&sab, 0, sizeof(sab));
//sab.serviceClassId = ("16");
sab.addressFamily = AF_BTH;
//sab.serviceClassId = GenericNetworkingServiceClass_UUID;
sab.serviceClassId = SerialPortServiceClass_UUID;
sab.btAddr = 0x001060d120ce;
sab.port= 15;

//=================================================================================================================
/*
(PANUServiceClass_UUID, NAPServiceClass_UUID, GNServiceClass_UUID)
Личная сеть (PAN)
Используйте эту службу для подключения к точке входа в сеть (NAP),
поддерживающей Bluetooth, или к групповой специальной сети (GN).
-------------------------------------------------------------------------------------------------------
SerialPortServiceClass_UUID
Последовательные порты
Используйте последовательные порты для синхронизации устройства, поддерживающего Bluetooth,
такого как личный цифровой помощник (PDA) или мобильный телефон, с компьютером пользователя.
Можно также использовать последовательные порты для передачи данных из устройства глобальной системы
навигации (GPS) в компьютер пользователя.

-------------------------------------------------------------------------------------------------------
OBEXObjectPushServiceClass_UUID
Передача файлов с помощью протокола Object Exchange (OBEX) File Push
Используйте эту службу для передачи файлов или данных из компьютера в другое устройство, поддерживающее Bluetooth.

==================================================================================================================== */
/*
if (0 != connect (s, (sockaddr *)&sab, sizeof(sab)))
{
wprintf (L"Could not connect socket: error %d\n", WSAGetLastError ());
return;
}*/

//==================================================================================================================
// Create a SOCKET for connecting to server
SOCKET ConnectSocket;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (ConnectSocket == INVALID_SOCKET)
{
printf("Error at socket(): %ld\n", WSAGetLastError());
WSACleanup();
return;
}
//----------------------
// The sockaddr_in structure specifies the address family,
// IP address, and port of the server to be connected to.
sockaddr_in clientService;
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr("192.168.20.11");
clientService.sin_port = 15;

//----------------------
// Connect to server.
if ( connect( ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
{
printf( "Failed to connect.\n" );
WSACleanup();
return;
}
{
printf("Connected to server.\n");
WSACleanup();
return;
}
}
//}










Огромное спасибо Ольге Борисовне, и психопату индусу.. за коррекцию и исправление ошибок....
Текст содержыт ошибки кое чего не хватает.. ну чтоб не сдирали под частую а прониклись философией!))))

Если кому надо вышлю и клиент и сервер под Win и Linux... кстати совместимость 100%
TCP мне поднять не удалось... если у кого получилось.. буду ждать..

А хакеру что писал Выше: "Читай MSDN"!!!!!!!!!!!!!!!!!!!!!!

Наезды удалены — AS
от модератора
От: Alexander Shargin Россия RSDN.ru
Дата: 26.12.06 14:15
Оценка:
Уважаемый Падла, постарайтесь в будущем держать себя в руках. На этом форуме действуют правила, соблюдение которых является обязательным для каждого посетителя. В частности, не допускается проявление грубого или неуважительного отношения к другим участникам форума.

Кроме этого, небольшой дружеский совет. Если Вы действительно хотите получить помощь на этом форуме, постарайтесь сформулировать проблему спокойно, без эмоций и на нормальном русском языке. Огромные куски непонятного кода без комментариев мало кому захочется разбирать.
--
Я думал, ты огромный страшный Бажище,
А ты недоучка, крохотный Бажик...
Re[5]: XP Bluetooth device
От: MikePetrichenko Беларусь www.btframework.com
Дата: 29.12.06 12:35
Оценка:
Здравствуйте, Падла, Вы писали:

П> сервис не тот, не посмотрел, кому надо подставят нужный а порт... к вашему сведенья не больше 30 портов поддерживает кстати можно написать что любой порт но он то же возьмет номер порта не больше 30... поставь свой 5449 или какой нибудь другой работать не будет...



П>А хакеру что писал Выше: "Читай MSDN"!!!!!!!!!!!!!!!!!!!!!!


Дело было вечером, делать было нечего — решил ответить.

Я тут поскипал кучу никому не нужного и глючного кода (IMHO). Так что просьба ногами не пинать.
А собственно зацепило только вышеприведенное предложение. И так. Читаем MSDN.
Значит, следую спецификации Bluetooth Core 1.2 и Bluetooth Core 2.0 все вышеуказанные сервисы (а именно Bluetooth профили) работают по протоколу rfcomm (верхний уровень, я не буду здесь долго рассуждать про l2cap, который ниже и рассматривать PDU и пакеты самого RF канала, думаю это не особо интересно). Так вот. RFCOMM. Дл яначала определимся, что же такое порт? А порт — есть номер RFCOMM канала. Согласен, что спецификацией заявлено, НО НЕ ОГРАНИЧЕНО их максимальное количество в 30 штук (BT 2.0 сие ограничение снимает).
Далее. Для того чтобы понять, что такое RFCOMM Channel и как нам "указать его" необходимо разобраться с тем, что такое SDP и как сервисы регистрируют себя в SDP database records и как работает протокол SDP.
Все это можно прочитать в спецификации.
А вот теперь конкретное замечание. Если ты, друг мой, установишь сервис ObjectPush, на пример, и укажешь порт, например 11, то нет НИКАКОЙ гарантии, что подключишься ты именно к сервису ObjectPush. Даже указав сервис ObjectPush и порт BT_PORT_ANY ты опять не получишь таких гарантий.
Почему? А вот про это почитай в документации и спецификации.

P.S. Прежде чем что-то утверждать и спорить — будь добр изучить предмет.
Bluetooth, IrDA, WiFi and Serial Ports SDK for .NET, ActiveX, C++ and VCL
Spektrum Telemetry Log File Viewer
Re[6]: XP Bluetooth device
От: Падла Россия  
Дата: 09.01.07 12:12
Оценка:
Хахамба... вот теперь пошел разговор по теме ...... уважуха и почет... так надо было и начинать...
"Что ты пристал к сервисам..." не о том речь сервисы это отдельная ветвь в блютусе...Кому надо найдут или спросят... выложить полное описание 13 сервисов не проблема..... Меня интересует можно ли поднять TCP программным путем у меня не получается... даже если это из-за сервиса я перепробовал все 13 сервисов.. ничего не получилось.. (да забыл условие.. чтобы Windows показал что соединение активно TCP..... в Linux он мне соединение показывает а в винде нет...)

Я случайно полистал Спец издания одного журнала и был удивлен что TCP поднять можно... но этот метод мне не нужен...
Итог: В моей программе с сервисами я накасячил согласен... Мое мнение что вот это мой сервис: SerialPortServiceClass_UUID Последовательный порт..)))
Опять же тогда вопрос... Во второй программе я прошу вывести все сервисы которые он может поддерживать.. на что мне машина показывает "фигу"

Михаил я очень признателен за то что вы стали более общительным но надо эту тему добить до конца.. итог готовая программа.. т.к. в инете ничего нормально работающего я не увидел..


горящие вопросы:
1. Можно ли поднять соединение Точка точка (соединение точка точка — это соединение двух блютусов не использующих Bluetooth Лан комутатор) TCP программным путем?
2. Оно нам надо?
3. Почему некоторые сервисы используемые в винде совсем другие в Linux (поясняю: вызываешь чат а в Linux показывет что это голосовой вызов и т.д.)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.