[SLOT_n]
mode = counterВиртуальный модуль счётчика: хранит целое значение, принимает абсолютные и инкрементальные команды.
Совместимость
Виртуальный модуль, аппаратной части не требует. Доступные слоты: 0-9.
Принцип работы
Модуль хранит целочисленное значение. Команда set принимает как абсолютное
значение, так и приращение с префиксом + или -. Рапортует при каждом изменении.
При заданном пороге (threshold) вместо абсолютного значения рапортуется
дискретное состояние: 0, пока значение меньше порога, и 1 начиная с него.
Флаг circularCounter зацикливает счёт: при переполнении значение сбрасывается к противоположной границе диапазона minVal–maxVal.
Топики
База топика события:
<deviceName>/counter_<slot>— напримерmoduleBox/counter_0
База топика действия:
<deviceName>/counter_<slot>— напримерmoduleBox/counter_0
Полный топик — база плюс направление и имя: moduleBox/counter_6/event/val.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу. - maxVal — число(int), максимальное значение счётчика. По умолчанию максимум int32.
- minVal — число(int), минимальное значение счётчика. По умолчанию 0.
- threshold — число(int), пороговое значение. При ненулевом пороге модуль рапортует дискретное состояние вместо абсолютного значения. По умолчанию 0 — порог выключен.
- circularCounter — флаг, при переполнении сбрасывать значение к противоположной границе диапазона.
События
| Топик | Payload | Описание |
|---|---|---|
counter_<slot>/event/enable | 0 / 1 | Состояние модуля - активен 1 или спит 0 |
counter_<slot>/event/val | целое | Отчёт значения счетчика |
Пример: топик moduleBox/counter_6/event/val, payload 4.
Команды
| Топик | Payload | Описание |
|---|---|---|
counter_<slot>/action/set | целое либо +N / -N | Установить значение — абсолютное либо приращение с префиксом + / - |
counter_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Примеры
[SLOT_6]
mode = counter
options = minVal:0, maxVal:10, circularCounter
;каждое нажатие кнопки увеличивает счётчик
crosslink = button_0/event/press:1->counter_6/action/set:+1Циклический счётчик от 0 до 10: после 10 следующий инкремент даёт 0.
[SLOT_7]
mode = counter
options = threshold:5, minVal:0, maxVal:100
;одна кнопка увеличивает счётчик, другая уменьшает
crosslink = button_0/event/press:1->counter_7/action/set:+1, button_1/event/press:1->counter_7/action/set:-1Счётчик с порогом 5: пока значение меньше 5 — рапортуется 0, с 5 и выше — 1.
Подробнее — внутренние связи (crossLink).