[SLOT_n]
mode = in_2chПрограммный модуль двух цифровых входов с поддержкой логических операций над каналами.
Совместимость
Принцип работы
Каналы опрашиваются с периодом refreshPeriod, дребезг контактов подавляется
опцией inDebounceGap. Каждый канал можно инвертировать флагом inverse_N.
Режим рапорта задаётся опцией logic:
independent— каналы независимы, каждый рапортует своё состояние (ch_0,ch_1…);or— рапортуетсяvalсо значением1, если активен хотя бы один канал;and— рапортуетсяvalсо значением1, если активны все каналы.
Топики
База топика события:
<deviceName>/in_<slot>— напримерmoduleBox/in_0
Полный топик — база плюс направление и имя: moduleBox/in_0/event/ch_0.
Опции
Доступные опции:
- inverse_0 — флаг, инверсия сигнала на канале 0.
- inverse_1 — флаг, инверсия сигнала на канале 1.
- inDebounceGap — число(int), антидребезг в мс. Диапазон 1–4096. По умолчанию 10.
- logic — строка(enum), логика каналов - independent or and. Значения:
independent,or,and. - refreshPeriod — число(int), период опроса в мс. Диапазон 10–60000. По умолчанию 100.
События
| Топик | Payload | Описание |
|---|---|---|
in_<slot>/event/ch_0 | целое | Состояние канала 0 |
in_<slot>/event/ch_1 | целое | Состояние канала 1 |
in_<slot>/event/val | целое | Комбинированное состояние каналов OR-AND |
Пример: топик moduleBox/in_0/event/ch_1, payload 1.
В режиме independent рапортуются ch_0 и ch_1, в режимах or и and — val.
Примеры
[SLOT_0]
mode = in_2ch
options = inDebounceGap:100, logic:independent
;первый вход включает реле, второй - выключает
crosslink = in_0/event/ch_0:1->relay_3/action/setVal:1, in_0/event/ch_1:1->relay_3/action/setVal:0[SLOT_1]
mode = in_2ch
options = logic:and, inverse_0, inverse_1
;оба датчика сработали одновременно - проиграть трек
crosslink = in_1/event/val:1->player_0/action/play:0Логика and с инверсией обоих каналов: событие приходит, когда оба входа
замкнуты на землю.
Подробнее — внутренние связи (crossLink).
Архив
Описание модуля для прошивок до перехода на конституцию — in_2ch (архив).