LINUX.ORG.RU

Как такое может быть с клавиатурой?


0

1

Суть такова: если при зажатых Влево и Вверх жать пробел, то SDL этого не видит. Но клавишу Ctrl видит. Но если зажать вверх влево и вправо, то и ctrl не видит.

Как так может получитсья? Я помню, мы еще в школе под досом писали программку, которая показывала, какие клавиши зажаты. И спокойно нажимали одновременно по многу клавиш.

Неужели с тех пор произошел регресс в подсистеме ввода?

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 4)

Я помню, мы еще в школе под досом писали программку, которая показывала, какие клавиши зажаты. И спокойно нажимали одновременно по многу клавиш.

скорее всего ты плохо помнишь. А виноват в этом, говорят, контроллер клавы, а не 'подсистема ввода'.

Bad_ptr ★★★★★
()
Ответ на: комментарий от izmena

Xev тоже не видит. Значит дело в клавиатуре.

Но я не понимаю, как так можно умудриться сделать клавиатуру, допускающую одновременное нажатие не больше какого-то количества клавиш?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

В школе стояли небось старые механические через PS/2, а у них анлимитед одновременных нажатий. Через USB поддерживается до 7, но обычно и того меньше.

vurdalak ★★★★★
()
Ответ на: комментарий от Bad_ptr

скорее всего ты плохо помнишь.

нет, я помню хорошо. Мы перехватывали прерывание и рисовали табличку нажатых клавишь.

Но я не понимаю, почему современные клавиатуры такие убогие в этом плане?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Понятия не имею. Только знаю, что больше 7 ни одна клавиатура через USB в принципе не выдаст. А большинство современных и через переходник на PS/2 много не дадут.

vurdalak ★★★★★
()
Ответ на: комментарий от Bad_ptr

Да, путаюсь.

Неблокируемые клавиатуры «NKRO» — это когда вы можете нажать одновременно столько клавиш, сколько хотите, и все нажатия будут отправлены компьютеру. Некоторые производители «игровых» клавиатур некорректно называли такие клавиатуры «anti-ghosting». И даже производители игровых клавиатур Logitech и Razer делают неблокируемым только небольшой блок вокруг клавиш WASD. Стоит заметить, что только клавиатуры подключаемые по PS/2 могут работать в полностью неблокируемом режиме (NKRO); и только клавиатуры от Microsoft и Ducky — единственных двух производителей, которые работают NKRO через USB.

(#KRO, где вместо «#» любая цифра — максимальное количество одновременно обрабатываемых нажатий)

Большинство механических клавиатур при подключении по USB помечены как 6KRO, означает, что шесть клавиш можно нажать одновременно. Этого должно хватать для большинства пользователей, однако в некоторых играх (особенно при игре сплитскрин) и шести клавиш может оказатся мало.

USB клавиатуры с 6KRO так же позволяют нажимать максимум до 4 клавиш-модификаторов с шестью обычными клавишами. Модификаторы это CTRL, ALT, Shift, и Win.

vurdalak ★★★★★
()

В общем, я так от вас понял, что разработчики клавиатурного протокола по USB криворукие бараны, т.к. не осилили сделать по-нормальному.

Потому что никаких проблем для самого контроллера, стоящего в клавиатуре, детектировать столько клавишь, сколько нажато нет. Сам USB тоже никаких препятствий не ставит, потому что по нему можно передавать произвольные данные.

Т.е. проблема именно в клавиатурном протоколе.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Thero

Да мембранные там были. Самые дешевые

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255

Т.е. проблема именно в клавиатурном протоколе.

Проблема в том, что в мембранных клавиатурах клавиши опрашиваются по матрице. Поэтому иногда можно нажать столько-то клавиш одновременно, иногда меньше. Возможно раньше это было как-то более круто и дороже сделано

Ну и ограничения протокола, ага

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)

Кстати, как можно посмотреть нажатые клавиши? А то интересно, как механика справляется на практике :)

derlafff ★★★★★
()
Ответ на: комментарий от cvs-255

ты ссылку прочитай.
Там заместо того чтобы к каждой кнопе вести отдельный проводок — каждая кнопrа замыкает ряд и строку матрицы. //это в hardware так

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от derlafff

Сам факт, что PS клавиатуры бывают NKRO, а usb нет, хотя сам usb ограничений не накладывает, говоит именно о проблеме с протоколом.

что в мембранных клавиатурах клавиши опрашиваются по матрице.

они везде так опрашиваются. Никто не станет заводить в контроллер 120+ проводов.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от Bad_ptr

Угу

http://datagor.ru/uploads/posts/2009-03/1236790956_matrixbuttons.gif

Позволяет определить состояние каждой кнопки.

22 провода позволят работать с 121 кнопкой

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Неблокируемые клавиатуры «NKRO» — это когда вы можете нажать одновременно столько клавиш, сколько хотите, и все нажатия будут отправлены компьютеру. Некоторые производители «игровых» клавиатур некорректно называли такие клавиатуры «anti-ghosting». И даже производители игровых клавиатур Logitech и Razer делают неблокируемым только небольшой блок вокруг клавиш WASD. Стоит заметить, что только клавиатуры подключаемые по PS/2 могут работать в полностью неблокируемом режиме (NKRO); и только клавиатуры от Microsoft и Ducky — единственных двух производителей, которые работают NKRO через USB

derlafff ★★★★★
()
Ответ на: комментарий от vurdalak

Десятипальцевый метод ты слишком буквально понимаешь...

minakov ★★★★★
()

Какая модель клавиатуры? На геймерских клавах всегда была возможность зажать более 3 клавиш. Может это как раз этот случай, когда надо взять у друзей геймерскую клаву и протестить

gremlin_tomsk
()
Ответ на: комментарий от anonymous

пару дней назад показывало.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Это почему так? По USB же что угодно можно гнать.

дело не в интерфейсе а в ограничения контроллера клавиатурной матрицы.

exception13 ★★★★★
()
Ответ на: комментарий от cvs-255

скорее всего в школе у тебя были механические клавы - у них нет таких проблем. т.к. там все клавиши разделены, а в мембранных блоки клавиш.

anonymous
()
Ответ на: комментарий от anonymous

лет 10 назад когда был в моде mortal kombat 4 мы с друзьями рубились вдвоем на одной клаве, и раскладку кнопок приходилось подбирать в зависимости друг от друга, потомучто некоторые кнопки «пережимались», если этого не сделать то например нажимаешь «блок» а персонаж блок не ставит и ты получаешь удар. и у каждого дома на клаве были разные раскладки по кнопкам

vinnishtein
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.