====== @amperka/ir-receiver ====== Модуль для работы с [[amp>product/troyka-ir-receiver|модулем ИК-приёмника]] и другими приёмниками серии TSOP22. Для считывания ИК-сигнала требуется опрашивать датчик в аккуратно выверенные временные окна, преобразовывать высокие и низкие сигналы в единицы и нули, и уже их преобразовывать в конечные коды кнопок. Все эти сложности спрятаны в реализации библиотеки. var myReceiver = require('@amperka/ir-receiver').connect(P2); myReceiver.on('receive', function(code, repeat) { if (repeat) { console.log('Key with code', code, 'is keeped pressed'); } else { console.log('Key with code', code, 'was just pressed'); } }); func:: connect(pin) Возвращает новый объект ''Receiver'' для работы с приёмником подключённому к пину ''pin''. class:: Receiver Класс для работы с приёмником. Для создания экземпляра используйте функцию ''connect''. event:: Receiver.on('receive', callback) Событие возникает, когда приёмник успешно декодирует нажатие кнопки ИК-пульта. Вызывается обработчик ''callback(code, repeat)'': * ''code'' — целое число, декодированный код клавиши. * ''repeat'' — ''true'', если код пришёл повторно в результате //зажатия// кнопки на пульте, а не её //повторного// нажатия; ''false'' если пришёл первый сигнал после нажатия кнопки. Обратите внимание, что не все пульты посылают специальный код о зажатии кнопки. ==== Список кодов ==== Если вы используете ИК-пульт с логотипом Амперки, можно воспользоваться готовым объектом с набором кодов. * POWER — включить / выключить, * MINUS — минус, * PLUS — плюс, * RED — красный, * GREEN — зелёный, * BLUE — синий, * CROSS — крест, * SQUARE — квадрат, * TRIANGLE — треугольник, * TOP_LEFT — вверх влево, * TOP — вверх, * TOP_RIGHT — вверх вправо, * LEFT — влево, * PLAY — воспроизвести / пауза, * RIGHT — вправо, * BOTTOM_LEFT — вниз влево, * BOTTOM — вниз, * BOTTOM_RIGHT — вниз вправо, * X — X, * Y — Y, * Z — Z var receiver = require('@amperka/ir-receiver') .connect(P3); receiver.on('receive', function(code) { if (code === receiver.keys.TOP) { print('TOP'); } if (code === receiver.keys.POWER) { print('POWER'); } if (code === receiver.keys.LEFT) { print('LEFT'); } if (code === receiver.keys.RIGHT) { print('RIGHT'); } });