Голосование

Какую версию Delphi Вы используете?

Delphi 4 и ниже
Delphi 5
Delphi 7
Delphi 2005
Delphi 2006
Delphi 2007
Delphi 2009
Delphi 2010



Посмотреть результаты
Другие опросы ...

 

Лента RSS, новости сайта Новости сайта
Лента RSS, новости форума Новости форума
  Bookmark and Share

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Кнопки, Ссылки и Баннеры ...

 


Automatic translation


English German French Italian Spanish
Portuguese Greece Japan Chinese Korean


Ссылки и Баннеры


скрыть

 

Delphi Sources

Delphi Sources

СТАТЬИ

 

. : Работа с Bluetooth в Delphi - Часть 2 : .

 

Страницы | 1 | 2 | 3 | 4 |


Вступление

В первой части статьи мы научились получать список локальных радиомодулей Bluetooth и узнавать их свойства.

Теперь пришло время получить список устройств Bluetooth, которые подключены к нашим локальным радиомодулям.

Получение списка устройств Bluetooth

Для получения списка устройств Bluetooth нам понадобятся следующие функции (они очень похожи на функции, используемые для получения списка локальных радиомодулей).

BluetoothFindFirstDevice

Начинает перечисление устройств Bluetooth.

Объявление функции:

function BluetoothFindFirstDevice(
const pbtsp : BLUETOOTH_DEVICE_SEARCH_PARAMS;
var   pbtdi : BLUETOOTH_DEVICE_INFO): HBLUETOOTH_DEVICE_FIND; stdcall;

Параметры:
 

pbtsp Указатель на структуру BLUETOOTH_FIND_RADIO_PARAMS. Член dwSize этой структуры должен содержать размер структуры (устанавливается посредством SizeOf(BLUETOOTH_FIND_RADIO_PARAMS)).
Член hRadio должен содержать описатель локального радиомодуля, полученный вызовом функции BluetoothFindFirstRadio.
pbtdi Структура BLUETOOTH_DEVICE_INFO в которую будет возвращена информации об устройстве Bluetooth.


Возвращаемые значения:

В случае успешного выполнения функция вернет корректный описатель в качестве результата.

В случае ошибки будет возвращен 0. Для получения кода ошибки используйте функцию GetLastError.

BluetoothFindNextDevice

Находит следующее устройство Bluetooth.

Объявление функции:

function BluetoothFindNextDevice(
hFind : HBLUETOOTH_RADIO_FIND;
var pbtdi : BLUETOOTH_DEVICE_INFO): BOOL; stdcall;

Параметры:
 

hFind Описатель, который вернула функция BluetoothFindFirstDevice.
pbtdi Структура BLUETOOTH_DEVICE_INFO, в которую будет помещена информацию об устройстве.


Возвращаемые значения:

Вернет TRUE, если устройство найдено.

Вернет FALSE в случае отсутствия устройства. phRadio содержит некорректный описатель. Используйте GetLastError для получения кода ошибки.

BluetoothFindDeviceClose

Закрывает описатель перечисления устройств Bluetooth.

Объявление функции:

function BluetoothFindDeviceClose(
hFind : HBLUETOOTH_DEVICE_FIND): BOOL; stdcall;

Параметры:
 

hFind Описатель, который вернула функция BluetoothFindFirstDevice.


Возвращаемые значения:

Вернет TRUE если описатель успешно закрыт.

Вернет FALSE в случае ошибки. Для получения кода ошибки используйте GetLastError.

BluetoothGetDeviceInfo

Возвращает информацию об указанном устройстве Bluetooth.

Объявление функции:

function BluetoothGetDeviceInfo(
hRadio : THandle
var pbtdi  : BLUETOOTH_DEVICE_INFO): DWORD; stdcall;

Параметры:
 

hRadio Описатель локального радиомодуля Bluetooth.
pbtdi Структура BLUETOOTH_DEVICE_INFO, в которую возвразается информация об устройстве. dwSize должен быть равен размеру структуры. addreess должен содержать адрес устройства, о котором хотим получить информацию.


Возвращаемые значения:

Вернет ERROR_SUCCESS если выполнено успешно и информация занесена в структуру pbtdi. Остальные значения - код ошибки.

Обладая этими знаниями, можно написать процедуру получения информации об устройствах Bluetooth.
 
procedure GetDevices(_hRadio: THandle);
var
DeviceInfo: PBLUETOOTH_DEVICE_INFO;
DeviceSearchParams: BLUETOOTH_DEVICE_SEARCH_PARAMS;
DeviceFind: HBLUETOOTH_DEVICE_FIND;
begin
// Инициализация структуры BLUETOOTH_DEVICE_SEARCH_PARAMS
with DeviceSearchParams do begin
dwSize := SizeOf(BLUETOOTH_DEVICE_SEARCH_PARAMS);
fReturnRemembered := true; // Вернуть запомненные
hRadio := _hRadio
end;

// Инициализация структуры BLUETOOTH_DEVICE_INFO
FillChar(DeviceInfo, SizeOf(PBLUETOOTH_DEVICE_INFO), 0);
DeviceInfo.dwSize := SizeOf(PBLUETOOTH_DEVICE_INFO);

// Начинаем поиск
DeviceFind := BluetoothFindFirstDevice(DeviceSearchParams,
                                                  DeviceInfo);
if (DeviceFind <> 0) then begin
repeat
// Что-то сделать с полученным данными

// Инициализация структуры BLUETOOTH_DEVICE_INFO
FillChar(DeviceInfo, SizeOf(PBLUETOOTH_DEVICE_INFO), 0);
DeviceInfo.dwSize := SizeOf(PBLUETOOTH_DEVICE_INFO);
// Находим следующее устройство
until (not BluetoothFindNextDevice(DeviceFind, DeviceInfo));

// Закрываем поиск
BluetoothFindDeviceClose(DeviceFind);
end;
end; 


Заключение

Пока все. В следующей части рассмотрим способы получения информации о сервисах, предоставляемых устройствами Bluetooth.

Желающие могут скачать набор классов для работы с Bluetooth API (22 Кб).
 

Страницы | 1 | 2 | 3 | 4 |
 

Дата: 26.07.2007, Автор: Петриченко Михаил.
Оригинал статьи: http://mobileservicesoft.narod.ru/stat.html






Назад

   

 

































































































 

© 2004-2017 "DS"

Отправить письмо / Реклама


ВКонтакте   Facebook   Twitter