[SLOT_n]
mode = in_out

Программный модуль пары «цифровой вход + цифровой выход» в одном слоте.

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

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

Рапортует об изменении состояния входа и исполняет команды на выходе. Вход и выход независимы: вход можно инвертировать флагом inInverse и отфильтровать от дребезга опцией inDebounceGap, выход — инвертировать флагом outInverse и задать ему стартовое состояние опцией outDefaultState.

Выход умеет не только включаться и выключаться, но и переключаться командой toggle и формировать импульс заданной длительности командой impulse.

Топики

База топика события:

  • <deviceName>/in_<slot> — например moduleBox/in_0

База топика действия:

  • <deviceName>/out_<slot> — например moduleBox/out_0

Полный топик — база плюс направление и имя: moduleBox/in_0/event/val.

Опции

Доступные опции:

  • disableOnStartфлаг, стартовать в выключенном состоянии и ждать action/enable со значением 1. По умолчанию модуль активен сразу.
  • inInverseфлаг, инверсия входа.
  • inDebounceGapчисло(int), антидребезг входа в мс. Диапазон 1–4096. По умолчанию 10.
  • outInverseфлаг, инверсия выхода.
  • outDefaultStateчисло(int), состояние выхода при старте. Диапазон 0–1. По умолчанию 0.

События

ТопикPayloadОписание
in_<slot>/event/val0 / 1Состояние входа

Пример: топик moduleBox/in_0/event/val, payload 1.

Команды

ТопикPayloadОписание
out_<slot>/action/setVal01Установить выход
out_<slot>/action/toggleПереключить выход
out_<slot>/action/impulseцелоеИмпульс на выходе - длительность в мс
out_<slot>/action/enable0 / 1Включить (1) или выключить (0) модуль

Примеры

[SLOT_0]
mode = in_out
options = inDebounceGap:100, outDefaultState:1
;состояние входа повторяется на выходе
crosslink = in_0/event/val:@->out_0/action/setVal:@
[SLOT_1]
mode = in_out
options = inInverse, outInverse
;срабатывание входа даёт импульс полсекунды на выходе
crosslink = in_1/event/val:1->out_1/action/impulse:500

Подробнее — внутренние связи (crossLink).

Архив

Описание модуля для прошивок до перехода на конституцию — in_out (архив).