Программный модуль для кнопок с управляемой подсветкой на чипах серии WS2812 и аналогичных, разработан для применения совместно со спиннером, но может быть использован и отдельно.
Рапортует об изменении состояния кнопки.
Включает подсветку по команде.
Топики
Стандартный топик события:
“deviceName/button_{slot_num}” - {slot_num} номер слота
пример: “moduleBox/button_0:1”
Стандартный топик действия:
“deviceName/ledRing_{slot_num}” - {slot_num} номер слота
пример: “moduleBox/ledRing_0:1”
Опции
Доступные опции для кнопки:
buttonInverse - флаг, инверсия входного сигнала
buttonTopic - строка, нестандартный топик события
buttonDebounceGap - число(int), интервал времени(миллисекунды) не чувствительный к дребезгу. Время в течение которого изменение состояния входа не будут рапортоваться. По умолчанию 10мс.
longPressTime - число(int), продолжительность длинного нажатия в миллисекундах. При значении 0 функция не активна. По умолчанию 0.
doubleClickTime - число(int), длительность промежутка между нажатиями для регистрации двойного нажатия в миллисекундах. При значении 0 функция не активна. По умолчанию 0.
eventFilter - флаг, фильтрация событий коротких нажатий при активных длинном/двойном нажатии.
Доступные опции для подсветки:
numOfLed - число(int), количество светодиодов цепочке, надо учитывать что суммарное количество всех пикселей подключенных в один контроллер не должно превышать 1024шт. По умолчанию 24.
refreshRate - число(int), частота обновления анимации, кадров в секунду. По умолчанию 30.
maxBright - число(int), 0-255, максимальное значение яркости(в активированном состоянии). По умолчанию 255.
minBright - число(int), 0-255, минимальное значение яркости(в деактивированном состоянии). По умолчанию 0.
RGBcolor - строка, вида: “ххх ххх ххх”, где ххх - яркость цвета в палитре RGB от 0 до 255. Пример “RGBcolor:255 0 0” - красный. По умолчанию “0 0 255” (синий).
increment - число(int), приращение за один период анимации, скорость анимации. Возможные значения от 1 до 255. По умолчанию 255.
numOfPos - число(int), количество положений, которое может занять световое пятно. По умолчанию равно numOfLed.
effectLen - число(int), количество светодиодов, которые будут задействованы в световом пятне. По умолчанию numOfLed/4.
dirInverse - флаг, реверс направления.
offset - число(int), смещение нулевой позиции. По умолчанию 0.
defaultState - число(int), состояние подсветки по умолчанию (0 — выкл, 1 — вкл). По умолчанию 0.
default - Световое пятно устанавливается в заданной позиции статично.
run - Динамическая анимация, скорость настраивается параметром increment.
В состоянии “1” устанавливается яркость всех светодиодов устанавливается равной maxBright, или яркость minBright в состоянии “0”. Пример spinner
События
Рапортует событие при изменении состояния кнопки, возможные значения 0-1. Пример:
“moduleBox/button_1:1”
При активной опции longPressTime рапортует событие длинного нажатия. Пример:
“moduleBox/button_1/longPress:1”
При активной опции doubleClickTime рапортует событие двойного нажатия. Пример:
“moduleBox/button_1/doubleClick:1”
Команды
Меняет состояние подсветки, возможные значения 0-1.
Пример: “moduleBox/ledRing_3:1”
/toggleLedState — переключает текущее состояние подсветки на противоположное.
Пример: “moduleBox/ledRing_3/toggleLedState”
/setRGB — установка цвета. Строка вида: “ххх ххх ххх”, где ххх - яркость цвета в палитре RGB от 0 до 255, разделенные пробелами.
Пример: “moduleBox/ledRing_3/setRGB:255 0 0”
/setPos — установка позиции светового пятна.
Пример: “moduleBox/ledRing_3/setPos:10”
/setMode — установка режима анимации. Возможные значения см. п. Режимы анимации.