программирование клавиатуры

Тема в разделе "WASM.OS.DEVEL", создана пользователем abcd008, 2 июн 2010.

  1. abcd008

    abcd008 New Member

    Публикаций:
    0
    интересно что если сделать все тоже самое, но не выключать эмуляцию(XLAT),
    то клавиши mute, volume + - вырабатывают сканкод нажатия и отпускания, согласно режиму 1 сканкода(c / c+80h).
     
  2. abcd008

    abcd008 New Member

    Публикаций:
    0
    короче я пришел к выводу что лучше использовать режим эмуляции, там все кнопки соответствуют таблице
     
  3. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    По-моeму лучшe использовaть нaбор 2 бeз трaнсляции.
     
  4. abcd008

    abcd008 New Member

    Публикаций:
    0
    я согласен. но я уже писал выше, что не все клавы стандартные в режиме без трансляции.
    У меня на ноуте в режиме трансляции все нормально, а без трансляции мультимедиа клавиши шлют вообще свои сканкоды, а при отпускании F0+не свой код.
    ВОТ я и пришел к выводу что в режиме трансляции лучше.
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Лучшe выясни, почeму тaк происходит. Почeму контроллeр нормaльно трaнслируeт коды отпускaния, a ты этого сдeлaть нe можeшь? Нaвряд ли он нaстолько интeгрировaн с клaвиaтурой, что знaeт о нeстaндaртных кодaх отпускaния.
     
  6. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Софт обычно рaботaeт с мультимeдийными клaвишaми, кaк с кнопкaми, т.e. рeaгируeт только нa нaжaтия, поэтому лучшe провeрь, нe совпaдaют ли коды отпускaния мм клaвиш с кодaми отпускaния др. клaвиш.
     
  7. abcd008

    abcd008 New Member

    Публикаций:
    0
    А что это даст? Я ведь хочу знать какая нажата и какая отпущена.
    Ведь если я подстроюсь под свой ноут, не факт что на другом так же будет.
     
  8. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Я не предлагаю под что-либо подстраиваться, а предлагаю разобраться с проблемой. Вот например интересно, какие именно коды отпускания мм клавиш для второго набора выдаются на твоем ноуте. Я допускаю, что коды отпускания мм клавиш выдаются неправильно, но все-таки сомневаюсь в этом. И даже если это так, то хорошо написанный обработчик должен сглаживать эту ситуацию. Коды отпускания играют существенную роль прежде всего для клавиш Shift, Ctrl, Alt. Если коды отпускания мм клавиш на твоем ноуте не совпадают с кодами отпускания этих клавиш, то все не так страшно. Главное, чтобы обработчик не ждал отпускания мм клавиш (с теми же кодами). Софт, работающий с клавиатурой исключительно через системное ПО, скорее всего даже не заметит появления подобного несоответствия, т.к. в подавляющем большинстве случаев выполняет обработку событий только по нажатию клавиш, хотя по идее должен иметь возможность принимать события и по отпусканию клавиш.
     
  9. abcd008

    abcd008 New Member

    Публикаций:
    0
    коды моей клавы:
    esc- 76h / f0h 76h
    home -E0h 3Ah / E0h B2h
    mute - E0h 23h / E0h A0h

    по какому принципу их определять?
    в режиме трансляции всенормально
     
  10. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Все правильно, как и прописано в спецификации.
    http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/translate.pdf
     
  11. abcd008

    abcd008 New Member

    Публикаций:
    0
    ща почитаю. только на форуме linux читал что от нее давно отказались.

    интересно что коды нажатия ММ клавиш соответствуют , а отпускания соответствуют скан кодам реж трансляции
     
  12. abcd008

    abcd008 New Member

    Публикаций:
    0
    посмотрел:
    - причем тут usb to ps2
    - коды которые я привел не соответствуют таблице
     
  13. abcd008

    abcd008 New Member

    Публикаций:
    0
    и еще в спецификации написано что винда использует набор 1.
    тоже что и 2 в режиме трансляции.
    так что я был прав, нефиг мудрить, нало как все нормальные люди, с трансляцией и в реж 2
     
  14. abcd008

    abcd008 New Member

    Публикаций:
    0
    интересный факт:
    в режиме трансляции и набор 2
    скан коды ММ соответствуют таблице
    А без трансляции в наборе 1
    esc- 01h / 81h
    home -E0h 3Ah / E0h B2h
    mute - E0h 23h / E0h A0h

    хотя по идее они должны быть как при трансляции в наб 2



    и еще у ММ клавиш почему-то нет префикса F0h при отпускании
     
  15. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Возникает вопрос, активировал ли ты набор 2 в первом случае вообще? Покажи, как ты отключал трансляцию и активировал набор 2.
     
  16. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    У тебя почему-то код нажатия мм клавиш из набора 2, а код отпускания из набора 1.
     
  17. abcd008

    abcd008 New Member

    Публикаций:
    0
    я про это и писал.
    И режим этот если не включать всеравно по умолчанию.

    я врегистре команд вырубал 6 бит
    и слал клаве f0h - 02h
    при выключенном прерывании, nmi и даже acpi на себя взял, чтоб smm не сработал
     
  18. abcd008

    abcd008 New Member

    Публикаций:
    0
    в спецификации которую скинул правия тоже говорится, что винда работает в режиме трансляции и наб 2,
    а в исходниках Линукс в режиме трансляции и наборах 2 и 3
     
  19. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Я использую набор 2 без трансляции. Все работает отлично. Напишу программу и поэкспериментирую с кодами мм клавиш на ноуте в чистом виде. Вообще же у меня драйвер посылает вирт. коды. Ни разу не замечал, чтобы коды отпускания не соответствовали кодам нажатия.
     
  20. Phantom_84

    Phantom_84 New Member

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