На заметку тем кто будет править/писать прошивку:
обычно бывает трудно выравнять дескрипторы хида на границу 2-x байтового слова, например DT 2.4 дает нам такую конструкцию:
logical минимум (0 ) 0x15 0x00
logical максимум (256) 0х26 0хff 00
есть два способа :
первый - на самом деле ТАКОЙ логикал максимум должен быть записан как
0х25 0хff
второй - можно переписать логикал минимум как
0x16 0x00 0x00
Первый способ работает ТОЛЬКО когда максимум у вас не превышает 255, второй - всегда.
Т.е. добавлением единички к коду "logical min/max", "physical min/max", а также например "UNIT" может быть явно преобразован из байта в 2-хбайтовое значение.
ЗЫ: Находка не моя - я это нагло подсмотрел у авторов фирмвари Х45 :-)
ЗЗЫ: Не забывайте также что многобайтные данные ВСЕГДА должны иметь по размер по максимуму. Т.е. если будете делать дескрипторы не делайте так, чтобы с ИД1 передавались 7 байт, а с ИД2 -например 3. Делайте 8+2.
Если не хватает данных для 1-го байта - заполняйте их конструкцей
report size("нужное количество бит")
report count (1)
input (Constant,array)




Ответить с цитированием