mantech
Aug 17 2015, 12:47
Собственно вопрос, есть несколько усб мышей, репорт первой - 4 байта, кнопки, X,Y,колесо.
Вторая, тоже самое но еще 5 байт - кнопки на колесе, а есть 3я, у нее 8 байт, причем данные кнопок начинаются со второго байта и далее, как в первых случаях, а первый байт всегда =1.
Соотв, все координаты считаются неправильно.
Вопрос, как распознать, что есть что??? По каким критериям, ведь винда-то как-то знает, какие байты куда использовать, причем никаких драйверов не загружаю.
Сергей Борщ
Aug 17 2015, 18:38
Винда первым делом спрашивает у мышки дескрипторы. В одном из них мышь описывает, в каком формате она будет отсылать свои репорты и сколько разных типов репортов она может отсылать. Если типов больше одного, то первым байтом будет передаваться идентификатор типа этого репорта.
mantech
Aug 17 2015, 18:57
Цитата(Сергей Борщ @ Aug 17 2015, 21:38)
Если типов больше одного, то первым байтом будет передаваться идентификатор типа этого репорта.
Да, так и есть, причем иногда это 1 а бывает и 3. Вопрос, а можно задавать мыши, чтоб первым был 3й или 2й?
Сергей Борщ
Aug 18 2015, 05:58
Вероятнее всего мышь посылает репорты по мере готовности новых данных. Точнее сможет сказать только автор ее программы. Возможно она поддерживает отсылку данных и по запросу, но я так глубоко класс HID не копал, попробуйте погуглить на эту тему (HID class) самостоятельно.
mantech
Aug 19 2015, 12:57
Цитата(Сергей Борщ @ Aug 18 2015, 08:58)
попробуйте погуглить на эту тему (HID class) самостоятельно.
Гуглить-то гуглил, да только ничего нет даже в близком приближении, все про винду, да как девайсы делать.
Хорошо, пререфразирую вопрос - у кого-нибудь ВООБЩЕ эти мыши работают, в собственной системе, не в винде, линуксе и пр... В САМОПИСНЫХ драйверах?? Или это фантастика...