Есть HID девайс (USB-телефон). Загружаю прошивку (через hotplug). devfs (Mandrake10) создает /dev/usb/hid/hiddev0. Коды кнопочек известны. Хочу написать простенькую прогу, которая будет отслеживать нажатие кнопочек и обрабатывать их... Делаю следующее (пишу упрощенно): struct hiddev_event ev; if ((fd = open("/dev/usb/hid/hiddev0", O_RDONLY)) < 0) { perror("evdev open"); exit (1); } // Далее в бесконечном цикле читаю с hiddev_event while (1) { read(fd, &ev, sizeof(ev)); // И далее, в зависимости от значения ev.hid (для разных кнопок известны) // хочу выполнять какие-то действия... } Однако, пока не происходит никаких событий (т.е. не нажимаются никакие кнопочки), read стоит и ждет (т.е. ничего не возвращает пока не будет нажата какая-либо кнопка). В это время проц загружается на 100% (это неприемлемо...) По нажатии какой-либо кнопки read удачно читает и в ev.hid получаю код кнопки. Как избежать "замораживания" read пока нет событий? Может быть нужно использовать какие-либо вызовы ioctl? (Пока не разобрался...) Или в принципе надо делать не так? Буду очень благодарен за совет или пример...
Ответ на:
комментарий
от cvv
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Обработка спец-клавиш в терминале (2008)
- Форум [ttyUSB0] вызов read() (2010)
- Форум Подсветка HID (2014)
- Форум USB HID-клавиатура Adafruit Trinket HID Combo (2017)
- Форум hid proxy mode (2021)
- Форум bluetooth с hid proxy (2016)
- Форум разработка usb hid драйвера (2015)
- Форум USB Реле типа HID (2017)
- Форум Нормальный HIDS под Linux (2012)
- Форум USB-HID права доступа (2010)