Bluetooth: Превращаем КПК в HID мышь — Bluetooth и все, что с ним связано

Bluetooth: Превращаем КПК в HID мышь


Когда-то на форуме 4pda.ru появился пост с предложением создать приложение, позволяющее использовать КПК в качестве Bluetooth мыши. В то время я довольно смутно представлял эту технологию и пост очень заинтересовал меня тем, что появилась возможность удовлетворить постоянную жажду знаний изучением Bluetooth.
Я начал с того, что скачал и несколько раз прочитал спецификацию. Потом начал изучать профиль HID, т.к. именно такой вариант мыши предлагалось реализовать. И, как снежный ком, началось изучение:
— спецификации HID;
— профилей;
— протоколов SDP, RFCOMM, L2CAP;
— осмысление того, что такое вообще стек Bluetooth;
— как реализуют стек различные производители (Broadcom, Microsoft).

У меня был легендарный HP hx4700 с броадкомовским стеком. Я скачал SDK, долго анализировал примеры, идущие вместе с SDK, и когда дошло дело до попытки реализации, я понял, что самая главная информация, без которой не напишешь работающую программу, недоступна обычным посетителям сайта bluetooth.com. Какая? «Assigned numbers» — ключевые постоянные числа технологии, применяемые в формировании SDP записей. Эта информация была доступна только на сайте bluetooth.org. Этот сайт является порталом т.н. группы SIG (Special Interest Group), закрытого общества разработчиков и заинтересованных этой технологией лиц. Для регистрации на портале нужно было внести немало информации, в т.ч. свой сайт, название своей фирмы, вид деятельности и т.д. Что бы хоть как-то на какое-то время попасть на сайт и скачать информацию, пока местные «модераторы» не проверят мои данные, я зарегистрировал пустой сайт на «народе», подсунул в требуемые данные всякую белиберду, и данные у меня. Это сейчас «Assigned numbers» лежат вместе с остальной документацией на bluetooth.com, а тогда было гораздо сложнее их достать 🙂 Мало того, на просторах сети были только скудные данные.

В общем я написал что-то подобное на предложение, но как проверить? Вот это был вопрос. Дело в том, что для ОС Windows (для ББ) нет программ, способных логгировать транспортировку данных Bluetooth. Пришлось изучать иксы 🙂 Поставил я на виртуальную машину и мандриву и убунту (кстати до этого я только слышал о них). Загрузил туда блютусные утилиты, и какое было счастье от того, что я мог видеть весь процесс обмена данными до бита по всем протоколам: HCI, SDP, L2CAP. Благодаря иксам я отладил свою первую программку.

Но она работала на стеке Broadcom. Когда я выложил ее для тестирования, узнал новое — оказывается 90% устройств на базе WinMob используют стек Microsoft. «Фигня» — подумал я — «чё там, броадком уже знаю, а МС за день пойму». 😉 Но не тут-то было. Оказалось что подход к клиентскому использованию стека у этих 2х производителей кардинально отличается. Если Broadcom предоставлял практически полный доступ к стеку через свои интерфейсы, то MS предоставляло API только к протоколу RFCOMM. Вот тут и была засада. В конечном итоге MS была побеждена 🙂 и было написано тестовое приложение для её стека.

После этого я решил совместить 2 реализации в одну и все таки что-то сделать, но т.к. для меня весь этот процесс -хобби  и времени ему уделяется не много, реализация находится в полу-замороженном состоянии.

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

Чтобы как-то реабилитироваться, пришла мысль рассказать по шагам, как я реализовывал эту задумку с постепенным выкладыванием исходников, так, что бы это было понятно.

Записи под рубрикой «HID» предназначены для ознакомления с возможностью использования технологии Bluetooth для превращения КПК и коммуникаторов на базе ОС Windows Mobile в HID устройства. В этих записях на примере превращения КПК в HID мышь для ББ, я попытаюсь с самого начала рассказать и описать как это можно сделать, попутно рассказывая об используемых технологиях.

Have any Question or Comment?

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Март 2024
Пн Вт Ср Чт Пт Сб Вс
 123
45678910
11121314151617
18192021222324
25262728293031