Лебец В.И.

10 Март 2012 года

ВНИМАНИЕ Acorp WBD2-A2 (2.0) !

В далеких планах было желание купить bluetooth донгл с чипом от Broadcom. Как-то специально я этим не занимался и тут мой коллега, у которого был подобный девайс, сообщил, что в довольно известном магазине из 3-х букв есть такой же, как у него, ну или почти такой же.
Бегло почитав спецификацию и не обратив внимание на комментарии, я приобрел за 299 рублей устройство под названием «Acorp WBD2-A2/WBD2-A2+ (2.0)».
В надежде наконец-то установить драйвера от Broadcom и насладиться их богатыми возможностями, девайс был вынут из упаковки и вставлен в компьютер. Но… ни одна из 4-х имеющихся в моем распоряжении версий драйверов не увидели это чудо-устройство.
Читать дальше »

11 Октябрь 2011 года

Алгоритм декодирования СМС (SMS 7-bit to 8-bit decoder )

Недавно занимался задачей декодирования входящих СМС, т.к. готовых алгоритмов не нашел, пришлось курить спецификацию GSM 03.38 и заголовочник «RIL.h».
Начну с того, что СМС может кодироваться 3мя методами:
- Метод кодирования «По умолчанию» (Default alphabet) — использует 7 бит на символ, длина СМС считается в символах.
- Метод кодирования «UCS2″ — использует 16 бит на символ, длина СМС считается в октетах.
- Метод кодирования «8-ми битные данные, определенные пользователем» (8 bit data is user defined) — использует 8 бит на символ, длина СМС считается в октетах.
Читать дальше »

21 Июль 2011 года

Реализация базового приложения для стека Broadcom

В статье Профиль HID и протокол L2CAP были описаны различия в подходе к реализации HID для разных стеков. Здесь я в двух словах опишу попытку реализации применительно к стеку Broadcom и дам ссылку на проект для его изучения.
Читать дальше »

17 Июль 2011 года

Профиль HID и протокол L2CAP

Тонкости использования L2CAP в реализации профиля HID.

Профиль HID использует протокол управления логической связью и адаптацией (Logical Link Control and Adaptation Protocol – L2CAP).
Для полноценной работы профиля обязательным условием является использование 2х или более каналов L2CAP для передачи и приема пакетов управления и данных.
Хост, для bluetooth HID, открывает 2 канала L2CAP: канал управления и канал данных. Для того, что бы использовать 2 разных канала (а каналы назначаются динамически), профиль HID использует 2 различных протокольных/сервисных мультиплексора (PSM — Protocol/Service Multiplexer).
Значения этих PSM однозначно определены в спецификации «Assigned Numbers»:
- для канала управления: 0х0011;
- для канала данных (в HID он называется канал прерываний): 0х0013.

Различия в реализации L2CAP для стеков Broadcom и Microsoft.
Мобильные устройства на базе ОС Windows Mobile в основном используют один из 2х стеков:
- стек от Broadcom;
- стек от Microsoft.
Broadcom в своем SDK для стека, предоставляет интерфейсы для работы с L2CAP:
— CL2CapIf - класс для установки значений PSM и регистрации этих значений в протоколе L2CAP;
— CL2CapConn — класс, управляющий соединениями L2CAP.
Благодаря наличию этих двух классов управление протоколом L2CAP не вызывает никаких затруднений, чего не скажешь о…
Microsoft, которая в своем SDK не предоставляет API для работы с L2CAP :( .
У этой фирмы несколько другой подход к тому, как реализовать протокол L2CAP, а именно Microsoft предлагает использовать так называемый Bluetooth Stack Extension Layer, позволяющий расширять базовую функциональность её стека через написание потокового драйвера. Вот об этом хорошо написано в MSDN, и если еще приложить чуток терпения, то окажется, что в Windows  CE Embedded 5.0 есть уже готовый пример  Installable Stream Driver   именно для L2CAP.

У себя в реализации я использовал готовый пример, только адаптировал его для конкретного применения.

Благодарю за внимание и успехов в изучении технологии ;)

9 Январь 2011 года

Сервисная запись SDP

SDP (Service Discovery Protocol) — протокол обнаружения сервисов. Здесь мы не будем подробно вникать в его предназначение, а укажем только ссылку на русскоязычное описание данного протокола. Кому интересно, может почитать. Нас будет интересовать сервисная запись (Service Record), поскольку она действительно является самой важной частью работы устройства bluetooth. Благодаря сервисной записи наш КПК и будет определяться как HID мышь.

Самое сложное в реализации сервисной записи — это настройка сервисных атрибутов (впрочем, если поискать в сети, то можно найти готовые примеры сервисной записи для мышки). Каждый атрибут имеет свое название и свой уникальный номер. Сложность в реализации заключается не столько в подготовке самой записи, сколько в разном ее представлении для различных стеков на уровне исходных кодов . Так, для стека Broadcomm, при формировании записи необходимо инициализировать каждый атрибут, а для стека Microsoft необходима монолитная структура записи. При формировании записи необходимо учитывать какие именно атрибуты необходимы для HID устройства. В спецификации Bluetooth HID в таблице 18 и 19 описаны все атрибуты с пометкой их обязательности.

Сейчас мы попытаемся на примерах разобрать некоторые атрибуты.Кстати, интерпретация каждого байта записи — это отдельная песня, хорошо описанная в спецификации SDP. И так начнем:
Читать дальше »

9 Январь 2011 года

Стек профиля HID

Если глянуть на рисунок, любезно предоставленный сайтом, то тут все понятно и без слов :)

Применительно к рисунку я только хотел заметить следующее:
- PC Host — это у нас будет ПК, к которому мы будем подключать нашу мышь, эту часть мы не будем рассматривать вообще :) ;
- HID - это КПК, который мы превратим в мышь;

Что касается правой части рисунка, а именно устройства HID, будем предполагать что некоторые части у нас уже есть, это Radio и Baseband как аппаратная часть КПК; Link Manager, L2CAP и SDP как программная часть имеющегося на КПК стека. Естественно если КПК вообще имеет Bluetooth. А вот с «HID application firmware» мы попытаемся что-то сделать, а именно, мы расширим возможности HID, имеющиеся в КПК путем добавления профиля HID, только не как клиента, а как сервера. (клиентом у нас будет ПК).

Еще одно замечание, касающееся протоколов L2CAP и SDP. Описание и ньюансы их реализации, особенно L2CAP для разных производителей стека, а именно Broadcom и Microsoft, я опишу позже, тогда, когда дойду до того, зачем они здесь применяются.

22 Декабрь 2010 года

Acrobat vs Canon Network ScanGear

Многие наверняка сталкивались с проблемой, когда Acrobat выдает ошибку инициализации сетевого сканера, имеющегося у крутых принтеров Canon :)
Случилось это и со мной.
Ситуация: принтер Canon iR 5065, Acrobat 8. Понадобилось мне отсканировать 130 страниц и перевести их сразу в PDF.
Читать дальше »

4 Август 2010 года

Профиль HID

Попытку реализации HID на КПК, я начну с ознакомления с профилями Bluetooth.

Что же такое профиль в технологии Bluetooth? Читать дальше »

10 Июнь 2010 года

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

Когда-то на форуме 4pda.ru появился пост с предложением создать приложение, позволяющее использовать КПК в качестве Bluetooth мыши. В то время я довольно смутно представлял эту технологию и пост очень заинтересовал меня тем, что появилась возможность удовлетворить постоянную жажду знаний изучением Bluetooth. Читать дальше »

12 Февраль 2010 года

Bluetooth: Архитектура – Ядро системы

Ядро системы — определение

В ядро системы (Core System) входит: 4 самых нижних уровня и ассоциированные с ними протоколы, определенные в спецификации Bluetooth, а так же один общий протокол сервисного уровня, называемый «протокол обнаружения сервисов» (service discovery protocol -SDP), полные требования к которому указаны в профиле общего доступа (generic access profile — GAP). Полноценное приложение Bluetooth требует целого ряда дополнительных сервисов и протоколов более высокого уровня, определенных в спецификации Bluetooth.

Читать дальше »