[SLOT_n]
mode = dialerПрограммный модуль дискового телефонного номеронабирателя: считывает импульсы диска и собирает набранный номер.
Совместимость
Принцип работы
Модуль читает два входных сигнала: ena (канал ch_1) сообщает о начале
набора цифры, pulse (канал ch_0) даёт импульсы, число которых равно
набранной цифре. Каждый сигнал инвертируется своим флагом — enaInverse и
pulseInverse, дребезг механических контактов подавляется опцией
debounceGap.
Цифры накапливаются в строку и рапортуются событием val, когда набрано
numberMaxLenght цифр либо когда после последней цифры прошло waitingTime
миллисекунд. Незаконченный набор сбрасывается командой reset.
Топики
База топика события:
<deviceName>/dialer_<slot>— напримерmoduleBox/dialer_0
База топика действия:
<deviceName>/dialer_<slot>— напримерmoduleBox/dialer_0
Полный топик — база плюс направление и имя: moduleBox/dialer_0/event/val.
Опции
Доступные опции:
- waitingTime — число(int), время ожидания конца набора в мс. Диапазон 1–60000. По умолчанию 3000.
- numberMaxLenght — число(int), максимальная длина номера. Диапазон 1–32. По умолчанию 7.
- enaInverse — флаг, инверсия сигнала разрешения набора.
- pulseInverse — флаг, инверсия импульсного сигнала.
- debounceGap — число(int), антидребезг импульса в мс. Диапазон 1–1000. По умолчанию 20.
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу.
События
| Топик | Payload | Описание |
|---|---|---|
dialer_<slot>/event/val | строка | Набранный номер, в формате строки |
dialer_<slot>/event/enable | 0 / 1 | Активен 1 или спит 0 |
Пример: топик moduleBox/dialer_0/event/val, payload 1234567.
Команды
| Топик | Payload | Описание |
|---|---|---|
dialer_<slot>/action/reset | — | Сброс текущего набора |
dialer_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Пример подключения
Контакты номеронабирателя сухие: ena — на ch_1, pulse — на ch_0,
общий — на gnd; перемычки обоих каналов на модуле in_2ch — в положении OC
(см. OE).
На in_3ch — те же каналы ch_1 и ch_0, перемычек нет.
Примеры
[SLOT_0]
mode = dialer
options = numberMaxLenght:3, waitingTime:4000
;набранный номер уходит на проверку по списку
crosslink = dialer_0/event/val:@->whitelist_6/action/check:@
[SLOT_6]
mode = whitelist
options = filename:numbers.txtКлассический сценарий ретро-телефона: набранный номер сверяется со списком, при совпадении проигрывается свой трек.
Подробнее — внутренние связи (crossLink).
Архив
Описание модуля для прошивок до перехода на конституцию — dialer (архив).