[SLOT_n]
mode = button_led

Программный модуль для кнопок с подсветкой.

Совместимость:

Принцип работы

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

Топики

Стандартный топик события:

  • “deviceName/button_{slot_num}” - {slot_num} номер слота
    • пример: “deviceName/button_0”

Стандартный топик действия:

  • “deviceName/led_{slot_num}” - {slot_num} номер слота
    • пример: “deviceName/led_0”

Опции

Доступные опции для кнопки:

  • buttonInverse - флаг, инверсия входного сигнала
  • buttonTopic - строка, нестандартный топик события
  • buttonDebounceGap - число(int), интервал времени(миллисекунды) не чувствительный к дребезгу. Время в течение которого изменение состояния входа не будут рапортоваться. По умолчанию 10.
  • longPressTime - число(int), продолжительность длинного нажатия в миллисекундах. При значении 0 функция не активна. По умолчанию 0.
  • doubleClickTime - число(int), длительность промежутка между нажатиями для регистрации двойного нажатия в миллисекундах. При значении 0 функция не активна. По умолчанию 0.
  • eventFilter - флаг, фильтрация событий коротких нажатий при активных длинном/двойном нажатии.

Доступные опции для подсветки:

  • ledInverse - флаг, инверсия выходного сигнала
  • fadeTime - число(int), время затухания/нарастания яркости в миллисекундах. По умолчанию 100.
  • refreshRate - число(int), частота обновления анимации, кадров в секунду. По умолчанию 40.
  • maxBright - число(int), максимальное значение яркости(в активированном состоянии). По умолчанию 255.
  • minBright - число(int), минимальное значение яркости(в деактивированном состоянии). По умолчанию 0.
  • defaultState - число(int), состояние светодиода по умолчанию (0 — выкл, 1 — вкл). По умолчанию 0.
  • ledMode - строка, режим анимации:
    • none — без анимации (по умолчанию)
    • flash — вспышки с равными промежутками времени
    • glitch — эффект мерцания
  • ledTopic - строка, нестандартный топик действия

События

Рапортует событие при изменении состояния кнопки, возможные значения 0-1. Пример: moduleBox/button_1:1

При активной опции longPressTime рапортует событие длинного нажатия. Пример: moduleBox/button_1/longPress:1

При активной опции doubleClickTime рапортует событие двойного нажатия. Пример: moduleBox/button_1/doubleClick:1

Команды

Меняет состояние светодиода, возможные значения 0-1. Пример: moduleBox/led_3:1

Дополнительные команды:

  • toggleLedState — переключает текущее состояние светодиода на противоположное. Пример: moduleBox/led_3/toggleLedState
  • setMinBright — устанавливает минимальное значение яркости (0–255). Пример: moduleBox/led_3/setMinBright:50
  • setMaxBright — устанавливает максимальное значение яркости (0–255). Пример: moduleBox/led_3/setMaxBright:200
  • setFadeTime — устанавливает время переходного процесса при изменении яркости в миллисекундах. Пример: moduleBox/led_3/setFadeTime:500

Примеры

Пример настройки модуля:

[SLOT_n]
mode = button_led
options = ledMode:flash, minBright:0, maxBright:255, fadeTime:500, refreshRate:40
crosslink = button_0:1->led_0:1 ;включить светодиод при нажатии кнопки

при активации подсветка будет плавно моргать. Каждый кадр (с частотой refreshRate) текущее значение яркости будет изменяться на рассчитанное приращение, после достижения максимального значения яркость начнёт уменьшаться.

Подробнее об использовании crossLink