AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
30.12.2017, 12:36
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,672
Сказал спасибо: 74
Сказали Спасибо 1,806 раз(а) в 654 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Сообщение от alex 54
|
Мне нужно переименовать полученный джойстик.
Сейчас он определяется как Лоджитек
|
Имя устройства передаётся через дескрипторы самим устройством. Нужно искать там.
Сообщение от alex 54
|
Поясняю,что использовал VID PID лоджитековского джойстика.
|
А VID/PID можно использовать вообще любые. Главное, чтобы они не совпадали с уже установленными в системе устройствами.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо RECTO за это сообщение:
|
|
|
30.12.2017, 20:17
|
|
Временная регистрация
Регистрация: 10.03.2017
Сообщений: 69
Сказал спасибо: 77
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Вот картинка установки драйвера:начинается установка как XJoy а заканчивается как logitech vid man extreme,в какую сторону смотреть?
Джойстик,естественно,самопальный все сведения о нем на той же картинке.
|
|
|
|
31.12.2017, 03:04
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Для устройства должен быть .inf файл с его характеристиками, включая имя.
Эти данные не должны совпадать с файлом .inf для того Logitech.
Ну и конечно в самом устройстве необходимо поправить дескрипторы под требуемый джойстик.
Изначально дескрипторы были таки от Logitech (ЕМНИП) - вот и результат.
Возможно ещё потребуется интеллектуальная чистка реестра для удаления информации о предыдущих экспериментах - она тут тоже сильно мешать может (99+%).
Если система один раз его уже определяла как Logitech, то дальше она будет идти проторенным путём.
При таких экспериментальных истязаниях Windows - good practice состоит в выполнении минимум дампа реестра для поиска подлежащих удалению артефактов.
Можно конечно попробовать эксперимент на чистой системе (где его никогда не было и с обязательным дампом реестра). Если там все сразу получится как надо - делать новый дамп реестра и сравнивать их на предмет выяснения изменений. Потом по этим данным проверять проблемный реестр.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
Сказали "Спасибо" mike-y-k
|
|
|
31.12.2017, 05:16
|
|
Временная регистрация
Регистрация: 10.03.2017
Сообщений: 69
Сказал спасибо: 77
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Изначально дескрипторы были таки от Logitech (ЕМНИП) - вот и результат.
В том то и фокус,что изначально дескрипторы были не от лоджитека а от мыши,от лоджитека взяты только VID,PID.
Поначалу я получил мышь,переделал дескрипторы под джойстик (лоджитеком там не пахло)а потом закинул VID,PID.
|
|
|
|
31.12.2017, 16:01
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,672
Сказал спасибо: 74
Сказали Спасибо 1,806 раз(а) в 654 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Сообщение от mike-y-k
|
Для устройства должен быть .inf файл с его характеристиками, включая имя.
|
Вообще-то, для HID устройства inf файл не нужен. В системе уже есть стандартный драйвер для HID устройств. Все данные о конфигурации конкретного устройства передаётся через HID Report Descriptor, имя передаётся через строковые дескрипторы при 'энумерации.
Сообщение от alex 54
|
В том то и фокус,что изначально дескрипторы были не от лоджитека а от мыши,от лоджитека взяты только VID,PID.
Поначалу я получил мышь,переделал дескрипторы под джойстик (лоджитеком там не пахло)а потом закинул VID,PID.
|
Ну, так возьмите любые VID/PID, не от Лоджитека и не от мыши. Придумайте какие-нибудь произвольные значения. И посмотрите ещё раз, что у Вас передаётся через строковые дескрипторы. То, что передаётся - то должно и отображаться в системе. Не знаю, эта проблема на пустом месте у Вас возникает, по-моему.
Вот конкретный пример, реальное устройство: джойстик с двумя осями и 4-мя кнопками. VID/PID взяты "с потолка". При энумерации передаётся следующий массив дескрипторов, результат - не картинках.
Код:
|
DEVICE_DESCRIPTOR
DB 0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x4E, 0xC0, 0x14, 0x20, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01
DEVICE_QUALIFER_DESCRIPTOR
DB 0x0A, 0x06, 0x10, 0x01, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00
OTHER_SPEED_&_CONFIG_DESCRIPTOR
DB 0x09, 0x07, 0x09, 0x00, 0x00, 0x01, 0x00, 0x80, 0x32, 0x09, 0x02, 0x29, 0x00, 0x01, 0x01, 0x00, 0x80, 0x32
INTERFACE_&_CLASS_DESCRIPTOR
DB 0x09, 0x04, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x09, 0x21, 0x10, 0x01, 0x00, 0x01, 0x22, 0x39, 0x00
EP1_DESCRIPTOR
DB 0x07, 0x05, 0x01, 0x03, 0x40, 0x00, 0x01, 0x07, 0x05, 0x81, 0x03, 0x40, 0x00, 0x01
STRING_INDEX0
DB 0x06, 0x03, 0x09, 0x04, 0x19, 0x04
STRING_INDEX1
DB 0x0C, 0x03
DA A'R'
DA A'E'
DA A'C'
DA A'T'
DA A'O'
STRING_INDEX2
DB 0x28, 0x03
DA A'R'
DA A'E'
DA A'C'
DA A'T'
DA A'O'
DA A' '
DA A'U'
DA A'S'
DA A'B'
DA A'-'
DA A'D'
DA A'E'
DA A'M'
DA A'O'
DA A' '
DA A'1'
DA A'.'
DA A'0'
DA A'0'
STRING_INDEX3
DB 0x0C, 0x03
DA A'0'
DA A'1'
DA A'.'
DA A'0'
DA A'0'
REPORT_DESCRIPTOR
DB 0x05, 0x01, 0x09, 0x04, 0xA1, 0x01, 0x05, 0x02, 0x09, 0xBB, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75
DB 0x08, 0x95, 0x01, 0x81, 0x02, 0x05, 0x02, 0x09, 0xC5, 0x15, 0x00, 0x26, 0xFF, 0x00, 0x75, 0x08
DB 0x95, 0x01, 0x81, 0x02, 0x05, 0x09, 0x19, 0x01, 0x29, 0x04, 0x15, 0x00, 0x25, 0x01, 0x75, 0x01
DB 0x95, 0x08, 0x55, 0x00, 0x65, 0x00, 0x81, 0x02, 0xC0, 0x00 |
|
|
|
|
01.01.2018, 17:44
|
|
Временная регистрация
Регистрация: 10.03.2017
Сообщений: 69
Сказал спасибо: 77
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Спасибо за информацию,закинул произвольные VID,PID устройство определилось как HID мышь.Буду разбираться с этим вариантом.
|
|
|
|
01.01.2018, 19:02
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,672
Сказал спасибо: 74
Сказали Спасибо 1,806 раз(а) в 654 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Сообщение от alex 54
|
закинул произвольные VID,PID устройство определилось как HID мышь.
|
Значит, смотрите в HID Report. Через него Ваше устройство передаёт, что оно мышь, а вовсе не джойстик...
|
|
|
Эти 2 пользователя(ей) сказали Спасибо RECTO за это сообщение:
|
|
|
01.01.2018, 21:06
|
|
Временная регистрация
Регистрация: 10.03.2017
Сообщений: 69
Сказал спасибо: 77
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Вопрос решился заменой VID,PID.
Для интереса поставил VID 0x44F и PID 0xB10A это от T.16000M,джойстик определился как положено.
Большое спасибо за помощь.
Как Вы считаете эти VID и PID можно оставить?
Последний раз редактировалось alex 54; 01.01.2018 в 22:01.
|
|
|
|
01.01.2018, 22:21
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,672
Сказал спасибо: 74
Сказали Спасибо 1,806 раз(а) в 654 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Сообщение от alex 54
|
Как Вы считаете эти VID и PID можно оставить?
|
Ну, если вы удовлетворены результатом, можете оставить, почему бы и нет?.. Я обычно всегда ставлю свои, произвольные значения, чтобы они не совпадали с существующими устройствами. Но это моё мнение...
|
|
|
|
01.01.2018, 22:49
|
|
Временная регистрация
Регистрация: 10.03.2017
Сообщений: 69
Сказал спасибо: 77
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: USB HID.Помогите разобраться с дескрипторами.
Тогда,с Вашего разрешения еще один вопрос:в этом джойстике в качестве
датчиков используются энкодеры,у Вас нет никакой информации о том,
как их можно программно загрубить,в инте по этому вопросу крайне мало информации.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:25.
|
|