[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 и andval.

Примеры

[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 (архив).