@amperka/button

Библиотека для работы с Troyka-кнопкой и другими тактовыми кнопками.

Используйте события press и release, чтобы поймать моменты нажатия и отжатия кнопки. А события click и hold для создания продвинутых пользовательских интерфейсов, где короткое нажатие и длительное удерживание клавиш приводят к разному поведению.

var myButton = require('@amperka/button')
  .connect(P4, {
    holdTime: 0.5
  });
 
myButton.on('press', function() {
  console.log("I'm just pressed");
});
 
myButton.on('hold', function() {
  console.log("I'm hold down for 0.5 seconds");
});

Функции модуля

connect(pin[, opts])

Создаёт новый объект Button для кнопки на пине pin. Принимает необязательный объект opts с настройками поведения:

  • holdTime — время в секундах, после которого вызывается событие hold. По умолчанию — 1 секунда.
  • normalSignal — 0 или 1, определяет сигнал при отпущенной кнопке. По умолчанию — 1.
  • debounce — время в миллисекундах на подавление дребезга сигнала при переключении. По умолчанию — 10.

В зависимости от значения normalSignal настраивается соответствующая ему стяжка или подтяжка на пине.

Button

Класс для работы с кнопкой. Для создания экземпляра используйте функцию connect модуля.

Button.isPressed()

Возвращает true, если кнопка зажата.

Button.on('press', function() { … })

Возникает в момент нажатия кнопки.

Button.on('release', function() { … })

Возникает в момент отжатия кнопки.

Button.on('click', function() { … })

Возникает при отжатии кнопки, если с момента нажатия прошло не более holdTime секунд. holdTime задаётся в качестве опции функции connect.

Button.on('hold', function() { … })

Возникает, когда кнопку нажали и не отпускают holdTime секунд. holdTime задаётся в качестве опции функции connect.

Событие click не генерируется после отжатия кнопки, если в рамках нажатия уже возникло событие hold.