[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/enable0 / 1Активен 1 или спит 0

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

Команды

ТопикPayloadОписание
dialer_<slot>/action/reset—Сброс текущего набора
dialer_<slot>/action/enable0 / 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 (архив).