Фронтальная панель устройств S100

Предустановленные настройки

Один из вариантов поставки TING - это устройства S 100, реализованные на аппаратной платформе APU производителя PC Engines. Данные устройства имеют на передней панели три светодиода и скрытую кнопку. На данных устройствах существует возможность управлять свечением светодиодов и срабатыванием нажатитя на кнопку.

Примечание

Нажимать на скрытую кнопку фронтальной панели следует тонким жёстким предметом (вроде канцелярской скрепки), аккуратно, без усилий, чтобы не повредить её.

Изначально конфигурация управления настроена следующим образом:

  1. При загрузке устройства светодиоды 1, 2 и 3 (слева направо) зажигаются попеременно циклически с интервалом 300 мс.

  2. После окончания процесса загрузки светодиоды 1 и 3 горят постоянно.

  3. При начале перезагрузки светодиоды 1, 2 и 3 зажигаются попеременно циклически, также как при загрузке системы.

  4. При нажатии на кнопку фронтальной панели светодиоды 1 и 3 зажигаются и гаснут одновременно с интервалом 100 мс. При удержании кнопки в нажатом состоянии происходит сброс настроек устройства в значения по-умолчанию с последующей перезагрузкой системы. Это позволяет вернуть контроль над устройством после ошибок конфигурирования, в результате которых происходит потеря доступа к интерфейсам управления устройством. При этом:

    • IP-адрес локальной сети будет сброшен до 192.168.1.1

    • Система будет настроена как DHCP-сервер на LAN-интерфейсе по умолчанию

    • WAN-интерфейс будет автоматически получать адрес от DHCP-сервера

    • Имя и пароль администратора будут сброшены

Описание работы

Управление данными функциями производит демон apuledctld. Данный демон предназначен для слежения за состоянием кнопки на передней панели на устройствах PCEngines APU<x>. Кроме того, он может зажигать и тушить три светодиода на передней панели согласно схеме, заданной в конфигурационном файле. При запуске без параметров демон зажигает светодиоды согласно схеме «running» и далее отслеживает состояние кнопки на передней панели. При постоянном нажатии на кнопку более определенного в конфигурационном файле периода времени, выполняется вызов команды, определенной в конфигурационном файле (/usr/local/etc/apuledctld.conf).

При запуске с параметром --startup демон зажигает светодиоды согласно схеме «startup», далее все так же, как описано выше.

Во время нажатия на кнопку на фронтальной панели демон зажигает светодиоды согласно схеме «press». Если кнопку отпустить раньше, чем истек период нажатия, демон зажигает светодиоды по схеме «running».

Управление светодиодами

Схемы зажигания светодиодов могут быть двух типов: постоянные и циклические. Постоянная схема один раз зажигает светодиоды, циклическая схема зажигает светодиоды согласно заданным параметром в цикле, который запускается в параллельном потоке.

Схема зажигания светодиодов задается в конфигурационном файле согласно следующему синтаксису:

blink:<имя схемы>:<битовая карта>:<время в мс>[:<битовая карта>:<время в мс>]...
  • Имя схемы - любая строка до 256 символов.

  • Битовая карта - число, биты 0, 1 и 2 в котором являются признаком свечения светодиодов 1, 2 и 3. Например, число 5: светодиоды 1 и 3 светятся, светодиод 2 не светится.

  • Время свечения в мс - время в миллисекундах, которое светодиоды светятся согласно битовой карте.

Если в схеме только одна пара битовая карта:время - такая схема считается статической, и время свечения игнорируется, его можно установить -1. Если таких пар больше одной - схема считается циклической, и значение времени свечения должно быть положительным целым числом. Количество пар ограничивается максимальной длиной строки в 1024 байта.

Например:

blink:running:5:-1 Статическая схема, где светодиоды 1 и 3 светятся постоянно.

blink:startup:1:300:2:300:4:300 Циклическая схема, где светодиоды 1, 2 и 3 зажигаются по очереди с интервалом в 300 мс.

blink:press:5:100:0:100 Циклическая схема, где светодиоды 1 и 3 зажигаются и гаснут с интервалом в 100 мс.

Количество схем в конфигурационном файле неограничено. Обязательно должны быть определены три схемы: startup, running и press. Остальные схемы могут иметь произвольные названия.

Во время работы демона возможно переключение между схемами с помощью сигналов:

  • SIGUSR1: переключение на схему «startup»

  • SIGUSR2: переключение на схему «running»

  • SIGHUP: переключение на схему, имя которой задано в текстовом файле /var/run/apuled-scheme

Для использования SIGHUP вместе с демоном поставляется shell-скрипт „al_chscheme“.

Действие при нажатии на кнопку

Действие при нажатии на кнопку задается в конфигурационном файле согласно следующему синтаксису:

action:<время нажатия на кнопку>:<команда>
  • Время нажатия на кнопку - время в секундах

  • Команда: любая программа либо скрипт (полный абсолютный путь)

При активной схеме startup нажатие на кнопку игнорируется. После выполнения команды, заданной в конфигурации, демон завершает работу. При нажатии на кнопку светодиоды зажигаются согласно схеме press, если нажатие на кнопку было менее заданного в конфигурации, свечение светодиодов возвращается к схеме, которая была активна в момент нажатия кнопки. Действие может быть задано только одно, в случае если их несколько, активным будет последнее. Например:

action:5:/usr/local/etc/rc.reboot

Через 5 секунд непрерывного нажатия на кнопку будет вызван скрипт /usr/local/etc/rc.reboot