crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

JohnZ
  опции профиля:
сообщение 13.11.2017, 13:40
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Пытаюсь написать универсальные "дрова" для USB сканера ШК.
Универсальные в том смысле что под Lin/Win и с учётом разновидности протоколов самих ШК (USB-COM / KB)
Всё что перерыл - работает в основном на тредах, и даже не "подозревает" о аппаратных прерываниях :blink:
Было уже обрадовался увидев в LibUSB вызов
    libusb_fill_interrupt_transfer ( irq_transfer, devh, EP_INTR, irqbuf, sizeof(irqbuf), cb_irq, NULL, 0 );

но как оказалось её реализация организует свой "внутренний" тред для раздачи event-ов и опроса устр-в ...
... поэтому call-back - чная ф-ция у меня не вызывалась.

На обслуживание (и перехват) USB прерываний у гугля почему-то затык, или я его неправильно спрашивалЪ ... :unsure:

Что нужно ? В пространстве пользователя ( т е в ПО ) "сесть" на НУЖНОЕ прерывание и формировать
сигналы с принятым и расшифрованным кодом ШК из call-back - чной ф-ции. (как в DOS-e для COM-Port )
Расшифровывать ШК нужно т к разные сканеры по разному его формируют ...

Кто в курсе, подскажите куда копать ?! Буду премного благодарен за ссылки и примеры.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 17.11.2017, 22:43
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


у тебя очень примитивные и неграмотные рассуждения про системы. я системный программист с опытом более 20 лет и мне на эти глупости отвечать подробно просто некогда.
если ты хочешь что-то изучать - бери и читай документацию по написанию драйверов. тогда, вероятно, ты поймёшь, почему ты неправ и почему твои вопросы не имеют смысла в контексте современных операционных систем. вся документация по ядру Linux есть в онлайне. она быстро устаревает, поэтому самое актуальное - это документация в самом кернеле. есть книга LDD (Linux Device Drivers), там подбробнее написано, но не под совсем свежие ядра. под венду придётся покупать книги по KMDF и т.д. другой документации под венду практически нет.
но я тебе сразу скажу, что никаких "универсальных" драйверов не бывает. драйвер заточен для работы с конкретной железякой и привязан к специфике чипов, с которыми он общается. и поверх него до юзерского уровня может быть много других драйверов и библиотек. так что юзер напрямую с прерываниями ничего делать не должен.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- JohnZ   Есть-ли здесь СПЕЦЫ ?   13.11.2017, 13:40
- - Iron Bug   у тебя в принципе неправильное понимание работы со...   13.11.2017, 19:09
- - Алексей1153   я использовал в винде libusb, именно в отдельном п...   14.11.2017, 6:47
|- - Iron Bug   Цитата(Алексей1153 @ 14.11.2017, 8:47) я ...   15.11.2017, 11:51
- - JohnZ   Для потока и LibUSB у меня тоже реализовано, но не...   14.11.2017, 11:53
- - Алексей1153   JohnZ, не задумывался об этом, меня устраивает пот...   15.11.2017, 8:29
- - Алексей1153   Iron Bug, иногда затыкается, да, но, в отличие от ...   15.11.2017, 17:36
- - Iron Bug   Цитата(Алексей1153 @ 15.11.2017, 19:36) в...   15.11.2017, 17:52
- - Алексей1153   Iron Bug, исторически так сложилось в одной старой...   16.11.2017, 7:34
- - Iron Bug   Цитата(Алексей1153 @ 16.11.2017, 9:34) А ...   16.11.2017, 13:53
- - JohnZ   Цитата(Алексей1153 @ 15.11.2017, 8:29) Jo...   17.11.2017, 12:04
- - Iron Bug   у тебя очень примитивные и неграмотные рассуждения...   17.11.2017, 22:43
- - Алексей1153   Цитата(Iron Bug @ 16.11.2017, 15:53) А во...   18.11.2017, 8:48
- - JohnZ   Согласен на 500100 % !!! ... но для ...   18.1.2018, 16:49


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 8.5.2025, 20:21