====== @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');
}
});