Семейство базовых дискретных модулей — компонент in_out прошивки. Входы рапортуют состояние контакта или датчика, выходы исполняют команды «включить / выключить / переключить / импульс».

МодульРольБаза топикаАппаратный модуль
in_2chдва входа, логика independent / or / andin_<slot>in_2ch
in_3chтри входа, та же логикаin_<slot>in_3ch
in_outвход + выход в одном слотеin_<slot> / out_<slot>in_out
out_2chдва выходаout_<slot>out_2ch
out_3chтри выходаout_<slot>3n_mosfet, out_2ch
relayодин выход на релеrelay_<slot>relay
tachometerчастота импульсов на входеtachometer_<slot>in_2ch, in_out

Входы

Каждый канал рапортует event/ch_N при изменении, инверсия — inverse_N, антидребезг — inDebounceGap. Опция logic объединяет каналы: в режиме or / and вместо отдельных каналов рапортуется общий event/val; refreshPeriod задаёт периодический рапорт.

Выходы

Каналы принимают action/ch_N (0 / 1), action/ch_N/toggle и action/ch_N/impulse с длительностью в миллисекундах; стартовое состояние — defState_N, инверсия — inverse_N. У relay и in_out канал один, поэтому команды называются setVal / toggle / impulse без номера канала. Все выходные модули поддерживают enable и disableOnStart.

Пример

[SLOT_1]
mode = in_2ch
;кнопка на входе 0 включает реле, на входе 1 - выключает
crosslink = in_1/event/ch_0:1->relay_2/action/setVal:1, in_1/event/ch_1:1->relay_2/action/setVal:0
 
[SLOT_2]
mode = relay
options = defState:0

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

в этой папке 7 элементов