Отсутствует чтение данных Hidraw
При чтении данных с устройства HID через hidraw иногда я пропускаю некоторые данные. Я вижу, что данные передаются нормально через USB с помощью аппаратного устройства слежения, но по некоторым причинам я не всегда получаю данные при чтении hidraw.
Проблема стала менее заметной, когда я убил процесс в системе, который потреблял много ресурсов ЦП, поэтому я думаю, что моя проблема как-то связана с нехваткой ЦП.
Чтение данных HID выполняется через поток, ожидающий выбора блокировки.
Например:
FD_ZERO ( &fdset_device ); FD_SET ( fd, &fdset_device ); // fd is file descriptor for /dev/hidraw0 fd_set read_set; read_set = fdset_device; for ( ;; ) { if ( ( select_result = select ( fd + 1, &read_set, NULL, NULL, NULL ) ) >= 0 ) { int report_len = read ( fd, report_buffer, sizeof ( report_buffer ) ); ... …
Таким образом, при правильных условиях, пакеты A,B,C,D,E,F
отправляются, и я получаю hidraw пакеты A,B,C,D,E,F
, но когда произойдет ошибка, я получу, возможно, A,B,E,F
илиA,B,C,F
Я не уверен, почему и при каких обстоятельствах я бы пропустил подобные данные. Кто-нибудь видел проблемы с потерей данных в hidraw?
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Почему отключение моего флэш-накопителя приводит к синему экрану?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux