====== @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.