|
Linux: работа с USB HID устройством - чтение Input Report (Interrupr In EP)., Под Win всё работает, а в Linux надо настраивать? Или нужен HID драйве |
|
|
|
 |
Ответов
|
Apr 9 2008, 08:14
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(galjoen @ Apr 8 2008, 22:12)  Подключаю свой самодельный Full Speed HID к Linux. У него имеются 3 вида репортов SetFeature, GetFeature и Input. SetFeature и GetFeature через шлются контрольный канал (адрес EP = 0) и работают без проблем. Даже лучше чем под Win т.к. позволяют задавать таймаут, а под Win таймаут =5 секундам и изменить невозможно. Input Report шлётся от устройства в комп через EP, работающую в режиме Interrupt In с интервалом опроса 2 милисекунды (так у меня в дескрипторе EP). И с ним проблемма. Linux по своей инициативе вообще не шлёт никаких запросов. Если подключиться к устройству, то можно слать запросы (ReadFile). Но ни о каких 2 милисекундах и речи нет. Выполняешь ReadFile - запрос посылается. И буферизации никакой нет. Из-за этого Input репорты теряются. Особенно почему-то при выводе на экран. Т.е. какое-то время не опрашивали Interrupt In EP (переключились на другую задачу) - буфер в устройстве переполняется - данные теряются. Выходов из этой ситуации 2. Первый (лучший): сказать Linux чтоб он опрашивал Interrupt In EP (как и написано в её дескрипторе) и буферизировал прочитанные данные (как Win). Но как это сделать я не знаю (невозможно?). Второй (вынужденный): повесить на таймер программку, которая будет запускаться 1 раз в 2 милисекунды (реал тайм!). И будет читать Interrupt In EP (ReadFile) и буферизировать прочитанное. Как это сделать я тоже не знаю, но наверное смогу разобраться.
А может ещё какие способы имеются? Судя по исходникам драйвера hiddev в Linux'е, он умеет буферизовать принятые Interrupt данные (фиксированный буфер на 64 сообщения), но для этого устройство должно быть открыто ( open).
|
|
|
|
Сообщений в этой теме
galjoen Linux: работа с USB HID устройством - чтение Input Report (Interrupr In EP). Apr 8 2008, 18:12 amw Цитата(galjoen @ Apr 8 2008, 21:12) Первы... Apr 9 2008, 08:13 galjoen Цитата(amw @ Apr 9 2008, 12:13) Вероятно ... Apr 11 2008, 15:37  XVR Цитата(galjoen @ Apr 11 2008, 19:37) 2 XV... Apr 11 2008, 17:18  amw Цитата(galjoen @ Apr 11 2008, 18:37) Да, ... Apr 11 2008, 19:26   galjoen Цитата(amw @ Apr 11 2008, 23:26) Это плох... Apr 12 2008, 13:46    amw Цитата(galjoen @ Apr 12 2008, 16:46) А Fe... Apr 12 2008, 15:07     galjoen Цитата(amw @ Apr 12 2008, 19:07) А понял,... Apr 14 2008, 20:40      amw Цитата(galjoen @ Apr 14 2008, 23:40) Кодd... Apr 15 2008, 08:48       galjoen Цитата(amw @ Apr 15 2008, 12:48) Устройст... Apr 15 2008, 09:56        amw Цитата(galjoen @ Apr 15 2008, 12:56) Разб... Apr 15 2008, 10:14         galjoen Цитата(amw @ Apr 15 2008, 12:48) Вот снял... Apr 17 2008, 10:22          amw Цитата(galjoen @ Apr 17 2008, 13:22) Это ... Apr 17 2008, 16:48           galjoen Цитата(amw @ Apr 17 2008, 20:48) Мммм...э... Apr 17 2008, 17:55            amw Цитата(galjoen @ Apr 17 2008, 20:55) Може... Apr 18 2008, 07:40             galjoen Разработчики модуля USB для Linux прислали ответ. ... Apr 22 2008, 14:46              amw Цитата(galjoen @ Apr 22 2008, 17:46) Разр... Apr 22 2008, 15:17               galjoen Цитата(amw @ Apr 22 2008, 19:17) Теперь В... Apr 25 2008, 15:42                amw Цитата(galjoen @ Apr 25 2008, 18:42) Да к... Apr 25 2008, 18:56                 galjoen Цитата(amw @ Apr 25 2008, 22:56) Ну и lin... May 6 2008, 09:28                  amw Цитата(galjoen @ May 6 2008, 12:28) Спаси... May 6 2008, 12:09                   galjoen Цитата(amw @ May 6 2008, 16:09) Гляньте е... May 7 2008, 15:45                    amw Цитата(galjoen @ May 7 2008, 18:45) Прове... May 8 2008, 09:45                     galjoen После годового перерыва вернулся к этой теме. Наде... Apr 22 2009, 14:10    path_finder Цитата(galjoen @ Apr 12 2008, 15:46) Насч... Apr 15 2008, 13:35     galjoen Цитата(path_finder @ Apr 15 2008, 17:35) ... Apr 15 2008, 13:53 amw linux-2.6.28.1/drivers/hid/Kconfig
ЦитатаSay Y her... Apr 22 2009, 21:04 galjoen Цитата(amw @ Apr 23 2009, 01:04) Три вари... May 1 2009, 10:47  galjoen Вобщем-то под Linux мой HID работает на том-же уро... May 16 2009, 13:14   galjoen Выявил ещё один глюк в многострадальном hidraw. В ... Aug 19 2009, 11:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|