Что такое профиль hid в настройках bluetooth
Что такое профили Bluetooth на смартфонах и зачем они нужны?
Каждое устройство, которое оборудовано интерфейсом Bluetooth, поддерживает заданный производителем набор профилей. Каждый профиль обеспечивает поддержку различных полезных функций, например, сетевое соединение или передача файлов и потока медиаданных.
Чтобы выполнить определенную задачу через Bluetooth, требуется поддержка соответствующего профиля у ведущего и ведомого устройства. Простой пример: для передачи данных между двумя смартфонами используется профиль OPP (Object Push Profile), поэтому оба гаджета должны поддерживать именно этот профиль.
Чтобы использовать мобильное устройство в качестве модема требуется поддержка профиля DUN (Dial-up Networking Profile). И это далеко не все профили Bluetooth, которые есть в мобильных устройствах. Каждый из них содержит информацию о зависимости от других профилей, а также предлагаемый формат пользовательского интерфейса.
Профиль HID
Попытку реализации HID на КПК, я начну с ознакомления с профилями Bluetooth.
Что же такое профиль в технологии Bluetooth?
Профиль — это, всего на всего, набор функций или возможностей, доступных для определённого устройства Bluetooth и позволяющий устройству предоставлять или использовать эту возможность совместно с другими устройствами.
Так как мы рассматриваем профиль HID, то спецификация HID определена в «USB Device Class Definition for Human Interface Devices», (да-да, спецификация HID определена именно в документах USB). Bluetooth HID профиль должен использовать протоколы, процедуры и другие возможности, обозначенные именно в указанной спецификации.
Типичными примерами устройств, поддерживающих профиль HID, являются:
— клавиатуры и указывающие устройства, например мышь, трекбол, джойстик;
— оконечные устройства, например всевозможные ручки, переключатели, кнопки и слайдеры;
— устройства дистанционного контроля и управления, например пульты дистанционного управления, игровые устройства;
— устройства, не требующие действий от человека, но поддерживающие передачу данных в простом формате относительно возможностей HID, такие как: сканеры штрих-кода, термометры или вольтметры.
Класс устройств HID изначально был нацелен на устройства, взаимодействующие с человеком, однако этот класс хорошо применим к любым приложениям, требующим быстрые операции ввода-вывода с внешними интерфейсами и позволяющий устройствам описывать самих себя. Определение класса HID включает поддержку различных типов и способов вывода информации конечному пользователю. HID поддерживает инициализацию и управление описывающих самих себя устройств.
Спецификация USB включает концепцию, позволяющую вместо того, что бы иметь различные драйверы для каждого нового периферийного устройства, группировать вместе устройства, имеющие одинаковые характеристики представления данных (т.н. data reporting), в класс устройств и иметь единственный драйвер класса для каждой группы. Устройства, в свою очередь, имеют возможность описывать самих себя в драйвере класса, например, то, как они управляются и как именно они передают данные. Это позволяет отменить необходимость менять программное обеспечение драйвера для вновь разработанных устройств этого класса.
HID не специфичен относительно USB или другого типа транспорта передачи данных. Постепенно я буду описывать как использовать протокол HID поверх Bluetooth.
Информация об устройстве HID хранится в сегментах энергонезависимой памяти. Эти сегменты называются дескрипторами. Дескриптор интерфейса может идентифицировать устройство определить устройство, как принадлежащие к одному из конечного числа классов.
Класс устройств HID использует соответствующий драйвер класса HID для и извлечения и маршрутизации данных. Маршрутизация и извлечение данных осуществляется путем изучения дескрипторов устройства и данных, которые оно предоставляет.
Дескриптор класса устройства HID перечисляет другие имеющиеся дескрипторы и указывает из размер. Пример:
— дескриптор Report — описывает каждую часть данных, генерируемых устройством, и реальный размер этой части. Этот дескриптор, например, может определять элементы, описывающие какую либо позицию или состояние кнопки. Здесь информация элемента используется как для определения откуда маршрутизировать ввод, например, от мышки или от джойстика; или может использоваться для назначения функции ввода определенному программному обеспечению, например использовать ввод данных от джойстика для управления самолетом или танком :). Изучая элементы дескриптора Report, драйвер класса HID позволяет определять размер и состав данных, передаваемых от устройства HID.
— дескриптор Physical — устанавливает необязательные дескрипторы, которые предоставляют информацию о части или частях тела человека, используемых для активации элементов управления устройства.
На первый взгляд, то, что я здесь описал, кажется сложным. Мне тоже так казалось, когда я начал все это изучать. Надеюсь дальше все прояснится :).
Что такое устройство с интерфейсом пользователя (HID)?
Есть много странных терминов, связанных с использованием компьютера. Возможно, вы видели «Устройство интерфейса человека» или «HID». Звучит как что-то из научно-фантастического фильма, но что именно это означает?
«Устройство интерфейса человека» может звучать странно чуждо, но на самом деле название очень информативное. Проще говоря, HID — это стандарт для компьютерных устройств, которыми управляет человек. Стандарт позволяет легко использовать эти устройства без какого-либо дополнительного программного обеспечения или драйверов.
Стандарт упрощения принадлежностей
HID в диспетчере устройств Windows
«Устройства интерфейса пользователя» — это стандарт, созданный для упрощения процесса установки устройств ввода. До HID существовало несколько конкретных протоколов для каждого типа устройства ввода.
Это означало, что существует протокол для мышей, протокол для клавиатур и так далее. Устройствам необходимо использовать существующие протоколы или создавать собственные драйверы. У людей было больше работы по установке и настройке устройств.
Для сравнения, HID-совместимое устройство включает «пакеты данных», которые содержат все действия устройства. Например, на клавиатуре может быть клавиша для регулировки громкости. При нажатии этой клавиши «дескриптор HID» сообщает компьютеру, где в пакетах хранится цель этого действия, и оно выполняется.
Протокол HID значительно упрощает компаниям производство широко совместимых аксессуаров. Все современные операционные системы поддерживают протокол HID. Вы можете подключить USB-клавиатуру к ПК с Windows, Mac, Chromebook или даже к планшету Android, и она сразу заработает. Это все благодаря HID.
HID и приложения
Самым большим преимуществом HID является возможность просто подключить к вашему устройству практически любое периферийное устройство, и оно сразу же начнет работать. Но это только половина магии. А как насчет того, чтобы эти аксессуары работали с приложениями?
Вы можете подключить USB-контроллер к своему ПК, и он, как правило, будет управлять игрой должным образом. Даже если контроллер был сделан после игры, он все равно работает. Разработчикам игры не нужно было ничего делать, чтобы это произошло.
Когда вы подключаете HID-устройство, оно сообщает о своих возможностях операционной системе. Операционная система интерпретирует данные и классифицирует устройство. Это позволяет приложениям и играм ориентироваться на классы устройств, а не на конкретные модели.
Это очень важный элемент HID, и мы принимаем его как должное. Игровой контроллер будет работать с вашей библиотекой Steam. Zoom узнает, что нужно включить вашу веб-камеру. Все это происходит с очень небольшой настройкой с вашей стороны.
Типы устройств интерфейса пользователя
Как упоминалось ранее, USB-периферийные устройства являются наиболее распространенными устройствами с интерфейсом пользователя, которые вы увидите, но есть и другие типы.
USB-устройства относятся к классу «USB-HID». Это включает в себя обычные вещи, такие как клавиатуры, мыши, веб-камеры, трекпады и игровые контроллеры. Другие устройства USB-HID включают термометры, аудио инструменты, медицинское оборудование, телефоны и тренажеры.
Другой распространенный тип — Bluetooth-HID. Это тот же протокол USB-HID с небольшими изменениями для Bluetooth. Как и следовало ожидать, сюда входят устройства, аналогичные USB-HID, но они подключаются через Bluetooth. Мышь Bluetooth будет работать независимо от того, подключена ли она к ПК с Windows, Mac или Chromebook.
Устройства интерфейса пользователя — одни из наиболее распространенных устройств, которые мы используем с компьютерами. Мы не очень ценим, насколько легко ими пользоваться. Было время, когда это было не так просто.
HID не только упростил использование компьютеров, но и внес свой вклад в массовый рынок аксессуаров. Существуют тысячи клавиатур, мышей, веб-камер, контроллеров и других продуктов, о несовместимости с которыми вам просто не нужно беспокоиться.
В истории компьютеров было много достижений, но стандарт Human Interface Device имел оглушительный успех.
Why Use Bluetooth BLE vs HID vs SPP vs MFi?
Bluetooth LE (BLE), SPP, HID are all Bluetooth profiles (sometimes called “pairing modes”). Why use Bluetooth BLE? On iOS there is MFi mode which is SPP with Apple restrictions, so only approved devices can connect to iOS devices. The main usability difference between the Bluetooth BLE & HID/SPP/MFi, is the pairing process. With Bluetooth HID you must pair with the wireless device via host operating system Bluetooth settings app. With BLE, you can directly and immediately connect from the desired app – and MUCH faster. You can use apps such as SerialMagic Gears, SerialMagic Keys, or Cloud-In-Hand Mobile Grid, iScanBrowser, Cloud-In-Hand stratus-io Time & Attendance. Unlike Bluetooth SPP (which isn’t supported on iOS devices unless the device is MFi certified; iPhones and iPads use Apple’s proprietary profile Bluetooth iAP/MFi instead), the process for pairing via BLE is the same on iOS and Android applications.
Why use Bluetooth BLE for wireless devices
Bluetooth LE Is commonly known as BLE. This option requires your device to have Bluetooth 4.0 or later. BLE is designed to optimize energy consumption and speed to work with extremely low power applications. Using BLE you also get a much better user experience. BLE skips* the need to pair through the host device’s Bluetooth settings app. You see in video below BLE connection is 30 times faster than with HID.
Bluetooth HID (Human Interface Device) is designed for you to use the Bluetooth wireless device as keyboard. This mode requires no application, as Android, iOS, MacOS, Windows see the device as a keyboard. There our many downsides to HID, contact serialio to discuss your solution needs.
Bluetooth SPP (Serial Port Profile) is intended to replace RS-232 cables (or other serial communication interfaces). SPP is great when you need to for send and receive bursts of data/information between two devices. Bluetooth SPP often also works with apps designed to work with physical COM ports on Windows hosts.
*Pairing is still needed on Windows & MacOS hosts. NOT on iOS & Android hosts.