====== @amperka/usb-keyboard ======
JS-модуль позволяет выступить [[Iskra_JS|Isrka JS]] в роли компьютерной клавиатуры.
var kb = require('@amperka/usb-keyboard');
setInterval(() => {
kb.type('Hello World!');
kb.tap([kb.MODIFY.CTRL, kb.KEY.ENTER]);
}, 3000);
Чтобы компьютер распознал плату как клавиатуру, после самой первой загрузки программы с подключённой библиотекой плату необходимо отключить от USB и подключить вновь.
===== Функции модуля =====
func:: tap(key[, callback])
Посылает сигнал кратковременного нажатия (нажали, отпустили) клавиши с кодом ''key''.
После нажатия, если передана, будет вызвана функция ''callback'' без параметров.
Чтобы не оперировать сырыми кодами клавиш, используйте словарь ''[[#key|KEY]]''.
kb.tap(kb.KEY.ENTER);
kb.tap(40); // тот же enter, но с явным кодом клавиши
kb.tap(kb.KEY['=']); // клавиша «равно»
Помимо числового кода или элемента словаря ''KEY'' в качестве параметра ''key'' вы можете передать строку. В этом случае номинальный код клавиши будет найден в ''KEY'' по этому строковому ключу.
kb.tap('ENTER');
Вместо одного значения ''key'' можно передать массив. В этом случае номинальный код клавиши ожидается на последней позиции массива, а в качестве первых элементов ожидаются модификаторы (Ctrl, Alt, Shift и т.п.). Доступный перечень модификаторов доступен в словаре ''[[#modify|MODIFY]]''.
kb.tap([kb.MODIFY.CTRL, kb.MODIFY.ALT, 'ENTER']);
kb.tap([kb.MODIFY.RIGHT_ALT, '=']);
func:: type(text[, callback])
Печатает строку ''text'' будто её вводит человек. Скорость ввода составляет примерно 50 символов в секунду.
По окончанию ввода вызывается функция ''callback'' без параметров, если она была передана.
kb.type('=12+15%'); // выводит =12+15%
В качестве символов текста ожидаются только те, что доступны в англоязычной раскладке клавиатуры. Любые другие символы, в том числе и кириллические, будут выведены символом ''?''.
kb.type('Бла бла бла'); // выводит ??? ??? ???
Обратите внимание, что реально напечатанный на компьютере текст зависит от текущей раскладки и состояния клавиши Caps Lock, о которых библиотека знать не может: они контролируются операционной системой компьютера. Универсальными являются только те клавиши, что не зависят от раскладки: цифры, некоторые знаки пунктуации и операторы.
kb.type('Hello'); // выводит Hello в английской раскладке
// Руддщ — в русской
// hELLO — в английской с Caps Lock’ом
class:: KEY
Объект-словарь с кодами клавиш. Содержит ключи:
* Символы центральной части клавиатуры: ''A'' ''B'' ''C'' ''D'' ''E'' ''F'' ''G'' ''H'' ''I'' ''J'' ''K'' ''L'' ''M'' ''N'' ''O'' ''P'' ''Q'' ''R'' ''S'' ''T'' ''U'' ''V'' ''W'' ''X'' ''Y'' ''Z'' ''1'' ''2'' ''3'' ''4'' ''5'' ''6'' ''7'' ''8'' ''9'' ''0'' '';'' ''%%'%%'' ''`'' '','' ''.'' ''/'' ''-'' ''='' ''['' '']'' '' '' ''\n'' ''\t''
* Альтернативные обозначения некоторых клавиш: ''ENTER'' ''TAB'' ''BACKSLASH'' ''SPACE''
* Функциональные клавиши: ''F1'' ''F2'' ''F3'' ''F4'' ''F5'' ''F6'' ''F7'' ''F8'' ''F9'' ''F10'' ''F11'' ''F12''
* Клавиши цифрового блока: ''PAD_SLASH'' ''PAD_ASTERIX'' ''PAD_MINUS'' ''PAD_PLUS'' ''PAD_ENTER'' ''PAD_1'' ''PAD_2'' ''PAD_3'' ''PAD_4'' ''PAD_5'' ''PAD_6'' ''PAD_7'' ''PAD_8'' ''PAD_9'' ''PAD_0'' ''PAD_PERIOD''
* Клавиши постоянных модификаторов: ''NUM_LOCK'' ''SCROLL_LOCK'' ''CAPS_LOCK''
* Навигационные клавиши: ''HOME'' ''END'' ''PAGE_UP'' ''PAGE_DOWN'' ''RIGHT'' ''LEFT'' ''UP'' ''DOWN''
* Прочие клавиши: ''INSERT'' ''DELETE'' ''BACKSPACE'' ''ESC'' ''PRINTSCREEN'' ''PAUSE''
class:: MODIFY
Объект-словарь с клавишами-модификаторами. Содержит ключи:
* ''CTRL'', ''LEFT_CTRL'' — левый Control;
* ''ALT'', ''LEFT_ALT'' — левый Alt;
* ''SHIFT'', ''LEFT_SHIFT'' — левый Shift;
* ''GUI'', ''LEFT_GUI'' — левая Windows (она же Super, она же Meta);
* ''RIGHT_CTRL'' — правый Control;
* ''RIGHT_ALT'' — правый Alt;
* ''RIGHT_SHIFT'' — правый Shift;
* ''RIGHT_GUI'' — правая Winows.