![]() |
Цитата:
Как пристроешь приблуду отпишись, и незабудь сять видео. |
|
Цитата:
Вроде смог отфильтровать пакеты и вычитать пару кнопок на руле (громкость вверх/вниз). Но на хоткей пока повесить не смог - времени было в обрез, спешил на работу. На днях дожму. |
Ну что, в принципе заюзал кан сниффер.
Порадовало, что в принципе всё заявленное девайс выполняет и делает это чётко. Есть некоторые недостатки по софту, что, в принципе, потенциально решаемо. Но самым неожиданным гемором оказались именно ролики регулировки громкости на руле шкоды. Да, именно это я хоть и заставил работать, но с кучей неюзабельных оговорок. Общий принцип работы с кнопками: у каждой условно есть свой адрес, по которому шлется команда - набор кодов при её нажатии. И при отжатии - ещё команда, как бы завершающая. В программе заводится обработчик: адрес - zzz, начальная команда - xxx и завершающая команда - yyy. На эту комбинацию вешается действие - какой хоткей исполнить. (ну и ещё некоторые варианты вроде двойного нажатия, длительного нажатия...) Так вот, у ролика тоже оказался всего один адрес, а направление его проворота сопровождается командами, не представляющими собой постоянные значения. Они постоянно меняются. И понять - в какую сторону крутится ролик - можно понять только определив, уменьшаются или увеличиваются значения в неком диапазоне. Вот так весело. Прога это обрабатывать пока не умеет. И, хуже того, когда крутится ролик + несколько секунд после этого (видимо, активируется некий режим) команды остальных кнопок тоже меняют формат )) Супер ) Короче, всю логику - как и с какой закономерностью что происходит - я понял. И как можно реализовать обработку корректно - тоже. Попробую обсудить с авторами, что можно сделать. Ну и был очень рад наблюдать поток команд, когда воткнул заднюю передачу и запищали мои парктроники ) Это всё тоже читается. В общем, сам девайс супер. И было бы нереально здорово иметь в доступе исходники той части, которая просто читает команды с адресами. На базе неё можно написать много полезного. |
Цитата:
|
Примеры
Я быстро прокрутил ролик на 5 делений вверх. Пошли команды: Цитата:
Цитата:
Если подожду пару сек и снова начну крутить, моя последовательность продолжится оттуда, где я закончил: Цитата:
Цитата:
И тут я привёл только команды нажатия. А там ещё следуют команды завершения. Они тоже меняют этот байт. И выходит, что и при увеличении грокости, и при уменьшении в какой-то момент проскакивают одни и те же команды. Поэтому важна предыдущая команда. |
На самом деле всё это достаточно логично и алгоритм обработки совсем не сложный будет... Но писать это всё надо точно отдельно, имеющийся в проге обработчик допилить будет сложновато.
Особенно учитывая то, что там стоят общие настройки пределов ожиданий двойного нажатия (в миксросекундах). А ролик ведет себя в этом плане иначе, чем обычные кнопки. Короче, эти ожидания нужно мочь настраивать для каждого обработчика персонально, а не глобально на всю прогу, как сделано сейчас. Шкодоводам ролик явно подкинул гемора с обработкой ) |
Я сейчас настроил у себя, что ролик можно крутить в каждую сторону не более 8 раз и неспеша (из 16 комбинаций одну их половину забил на +, вторую на -).
Аккуратно работает ) Ну а треки листать - работает на ура. Что ещё забавно, это то, что судя по командам с кнопок проходит "дребезг". Не всегда нажатие одной простой кнопки сопровождается всего одной командой. Их бывает 2-3 (а жму очень быстро) и после идут ещё завершающие. Короче, всё это отдано на отработку программной частью. |
Общаюсь сейчас с авторами девайса, отправил логи шины. Попробуем разобраться )
|
Цитата:
|
Часовой пояс GMT +4, время: 18:34. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot