(no subject)
Электроника местами настолько загадочная вещь, что хочется докопаться до причин именно потому, что не понимаешь, как такое могли получить. Вот есть банальная десктопная клава Sven 301 с USB интерфейсом. Цепляюсь через usbhid-dump и наблюдаю реакцию. Если одновременно придавить qwer и yuio, например, то через секунду оно начинает жаловаться на rollover error (далее ROE). А если qwer и uiop - не жалуется. Почему, чёрт возьми? Что за злобные дизайнерские изыски в столь банальном устройстве, зачем? Что виновато - хард или софт? И зачем оно ждёт секунду?
Если зажать sdf, то: wertgxcvb - любая из этих добавленная к sdf вызывает ROE. А вот a,q,z - не вызывают. Только не говорите, что проводки так идут:) wasd одновременно вызывают ROE. Явно не геймерское устройство:) А вот asdf - нет. Любая из dfg, fgh, ghj, hjk - да. jkl - нет. Чо?
(Ну да, мне было откровенно нечего делать. Но...)
UPD: секунду, а не полсекунды. Добавил второй абзац.
UPD2: Клавиша \| имеет код 0x2b в Set 1 и 0x5d в Set 2, единообразно. Но в USB это 0x31 на клавах где она в D13 (ANSI) и E13 (JIS), но 0x32 на ISO (позиция C12). Л - логика.
(Согласно HID tables это таки в USB две разных клавиши: Keyboard \ and |, и Keyboard Non-US # and ~. Но зачем, если они одновременно не встречаются?)
Если зажать sdf, то: wertgxcvb - любая из этих добавленная к sdf вызывает ROE. А вот a,q,z - не вызывают. Только не говорите, что проводки так идут:) wasd одновременно вызывают ROE. Явно не геймерское устройство:) А вот asdf - нет. Любая из dfg, fgh, ghj, hjk - да. jkl - нет. Чо?
(Ну да, мне было откровенно нечего делать. Но...)
UPD: секунду, а не полсекунды. Добавил второй абзац.
UPD2: Клавиша \| имеет код 0x2b в Set 1 и 0x5d в Set 2, единообразно. Но в USB это 0x31 на клавах где она в D13 (ANSI) и E13 (JIS), но 0x32 на ISO (позиция C12). Л - логика.
(Согласно HID tables это таки в USB две разных клавиши: Keyboard \ and |, и Keyboard Non-US # and ~. Но зачем, если они одновременно не встречаются?)
no subject
Кратковременное нажатие нескольких клавиш - нормальный режим работы.
А если долго - на клаву лёг кот
no subject
Сомнительно.
Вот я зажал sd, теперь нажимаю f - оно оповещает об этом немедленно. А если к sdf добавить любую из w,e,r,t - оно сообщает про rollover error, но ждёт секунду (это более точное, сейчас перемерил на глазок). Ситуация-то та же самая, и кот пробежавший по клавишам точно так же может нажать клавиши не в соседних группах. В чём разница?
Далее, драйверу положено в случае прихода такого сообщения просто "замереть" и ждать нового с новым не-ошибочным статусом клавиш, так что разницы по сути нет.
> А если долго - на клаву лёг кот
А если и лёг кот, то какой смысл тянуть с сообщением? От rollover error сработает какая-то суперзащита? Так ей всё равно иметь смысл до завершения проблемы.
no subject
(Anonymous) 2022-06-27 05:09 pm (UTC)(link)