Итак, я в настоящее время планирую код для устройства с низким энергопотреблением Bluetooth, которое будет работать с HID по профилю GATT по спецификации Bluetooth. Я прочитал спецификацию HID 1.11 и таблицы использования 1.12, но я не могу найти ничего о минимально требуемом использовании Usage_pages и Usages.Каковы требования Bare для использования HID в дескрипторе отчета?
Поскольку мы внедряем как Host, так и Device, мы планируем использовать страницу с определением поставщика для нашего дескриптора отчета, но поскольку наша цель - иметь быстрые соединения и низкое энергопотребление, я не хочу отправьте больше байтов, чем я должен на этапе определения отчета HID по GATT. Из-за этого я рассматриваю возможность удаления всех обычаев, которые обычно помещают вход/выход, поскольку они кажутся только семантическими.
Вот пример того, что я рассматриваю:
Usage_Page(Vendor Defined)
Usage(Vendor 1)
Collection(Application)
Collection(Logical) ; First Collection and Report
Report_ID(1)
Usage_Page(Button) ; This is what the Specification seems to encourage
Usage_Minimum(Button 1)
Usage_Maximum(Button 3)
Logical_Minimum(0) ; Logical Limits
Logical_Maximum(1)
Report_Size(3) ; 3 Bits corresponding to the Buttons
Report_Count(1) ; 1 of the 3 Bit set
Input(Data, Variable, Absolute) ;Make it an input
Report_Size(5)
Report_Count(1)
Input(Constant) ; Pad the transmitted Byte
Collection End
Collection End
Когда я смотрю на это, я вижу много дополнительных байтов, которые ничего не делают, так как я не использую родной парсер. Они варьируются от Usages до равномерных логических минимумов/максимумов. Может ли кто-нибудь в отрасли или кто лучше знал стандарты (в HID over GATT или USB HID), скажите мне, какие последствия могут возникнуть, если бы я только определил свой дескриптор отчета только с использованием верхнего уровня и не использовал такие вещи, как логика Максимумы?
Спасибо! Здесь возникает проблема минимизации времени спаривания, так что это отлично отвечает на мой вопрос о дескрипторах отчета. В качестве побочной заметки я бы не прочь использовать заранее определенные записи об использовании, так как мне бы очень хотелось отправить RGB-данные для одного светодиода индикатора, я ничего не нашел (кроме буквенно-цифровой страницы использования), которая предвосхищает это.Если есть обходное решение, которое не связано с передачей матричных индексов в данных, я бы хотел его услышать. – hanseltime
Действительно, светодиоды RGB, похоже, были научной фантастикой еще в 95-м. Слишком плохо, что они не включали его на странице Led. Моя боковая заметка была актуальна для дескриптора отчета, который вы разместили выше, где было всего три кнопки. Я должен согласиться с тем, что Alphanumeric Display кажется чрезмерной разработкой спецификации, которую никто никогда не реализовал, даже если [HUTRR29b] (http://www.usb.org/developers/hidpage/HUTRR29b.pdf), вероятно, позволит объявить 1x1, я бы не рекомендовал его. – Nipo