Доступ к файловой системе

Контент и настройки хранятся в виде файлов в энергонезависимой памяти устройства. Может быть использована встроенная память микроконтроллера или внешняя SD карта.

Доступ к файлам можно получить несколькими способами:

  1. С помощью интерфейса USB. Устройство можно подключить к ПК как съемный диск.

  2. Через LAN сеть. Подключиться к FTP-серверу, запущенному на устройстве. Для этого потребуется знать IP адрес устройства или использовать MDNS имя “deviceName.local” FTP-сервер порт 21 логин: «user» пароль: «pass» Рекомендуемое ПО: Total Commander, WinSCP, FileZilla. По умолчанию включен режим анонимной авторизации, его можно отключить с помощью опции FTP_anon=0.

  3. В случаях когда используется карта памяти, возможно физически извлечь SD-карту из устройства и использовать кард-ридер для доступа к файловой системе

Для возврата к настройкам по умолчанию, необходимо удалить файл config.ini. Конфигурационный файл с «заводскими» настройками будет создан автоматически.

В корневом каталоге файловой системы располагаются:

  • config.ini — файл конфигурации;
  • error.txt — файл будет создан в случае возникновения ошибок.

В именах файлов и параметров поддерживаются только латинские символы.

Пример конфигурации FTP сервера:

[FTP] 
FTP_enable = 1
;включаем сервер, его можно отключить для экономии ресурсов
FTP_anon = 0
;выключаем анонимную авторизаци
FTP_login = user
FTP_pass = pass
;устанавливаем логин и пароль для доступа к файлам

Структура конфигурационного файла

Секция [SYSTEM] содержит имя устройства в параметре deviceName. Имя устройства является частью топиков, а также может быть использовано для доступа по сети в домене .local например moduleBox.local

Имя устройства ограничено строчными латинскими буквами, цифрами и дефисом — подчёркивание и точка запрещены, потому что имя используется в mDNS. Подробнее — правила именования.

[SYSTEM] 
deviceName = moduleBox
;печать срабатываний кросслинкера в топик crossLink/execute
crossLinkDebug = 0

В секции [LAN] находятся настройки параметров подключения к локальной сети:

  • LAN_enable - включить/выключить Ethernet
  • DHCP - использовать DHCP или статический IP
  • ipAdress, netMask, gateWay - статический IP, маска и шлюз (если DHCP выключен)
  • speed - скорость работы интерфейса, по умолчанию “auto”. Возможно принудительно установить “100M” или “10M”, некоторые коммутаторы не поддерживают работу на скорости более 10М.
[LAN] 
LAN_enable = 1;0-disable, 1-enable 
DHCP = 0;0-disable, 1-enable 
ipAdress = 192.168.88.33 
netMask = 255.255.255.0 
gateWay = 192.168.88.1 

В секции [WIFI] находятся настройки параметров подключения к беспроводной сети:

  • WIFI_enable - включить/выключить WIFI
  • SSID - Имя сети
  • pass - пароль к сети
  • DHCP - использовать DHCP или статический IP
  • ipAdress, netMask, gateWay - статический IP, маска и шлюз (если DHCP выключен)
  • channel - канал
[WIFI] 
WIFI_enable = 1;0-disable, 1-enable 
SSID = **********
pass = **********
DHCP = 1;0-disable, 1-enable  

В секции [UDP] параметры для UDP соединения:

  • serverAdress и serverPort - адрес и порт сервера
  • myPort - локальный порт модуля для приема данных
  • crosslink - внутренние связи для входящих UDP сообщений. Позволяет обрабатывать сообщения от внешних устройств и транслировать их в команды модулей. Формат: имяИсточника/событие:значение->действие:значение, где имяИсточника — имя устройства-отправителя UDP сообщения. Несколько правил разделяются запятой.
[UDP] 
serverAdress = 192.168.88.1 
serverPort = 8000 
myPort = 7000 
;при получении UDP сообщения от remoteDevice включить подсветку в слоте 0
crosslink = remoteDevice/button_0/event/press:1->led_0/action/enable:1

В секции [OSC] аналогично параметры для OSC.

[OSC] 
oscServerAdress = 192.168.88.1 
oscServerPort = 8000 
oscMyPort = 7000 

В секции [MQTT] содержатся параметры подключения к MQTT брокеру:

  • mqttBrokerAdress - адрес брокера
  • mqttLogin - логин для авторизации
  • mqttPass - пароль для авторизации
  • mqttQOS - уровень качества обслуживания (QoS)
  • mqttWatchdogTimeout - таймаут watchdog для переподключения
  • mqttTLS - использовать TLS шифрование
[MQTT] 
mqttBrokerAdress = 192.168.88.1
mqttLogin = user
mqttPass = pass
mqttQOS = 0

Далее идут секции конфигурации слотов [SLOT_N].

[SLOT_1] 
mode = button_led
options = buttonInverse
;включить подсветку при нажатии на кнопку
crosslink = button_1/event/press:1->led_1/action/enable:1

Опции

Дополнительные опции работы слота, указываются в графе “options” соответствующего модуля. Могут быть флагом, например:

[SLOT_0]
;модуль в режиме кнопка с подсветкой
mode = button_led
;инвертируем кнопку
options = buttonInverse 

Команды и события

События и команды обрабатываются от всех настроенных источников — USB-консоль, UDP, OSC, MQTT. Форма топика едина для всех модулей и задана конституцией:

<deviceName>/<модуль>_<слот>/<направление>/<имя>

Направление — event (модуль рапортует) либо action (модуль принимает команду). Имя величины всегда в топике, значение — в payload:

topic:   moduleBox/button_0/event/press          payload: 1
topic:   moduleBox/led_0/action/setMaxBright     payload: 200
topic:   moduleBox/player_0/action/play          payload: 2

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

Все программные модули позволяют задать нестандартный (пользовательский) топик в графе options. Для событий и действий топики внутри одного модуля могут различаться — уточняйте в документации на модуль.

;установка пользовательских топиков для кнопки и подсветки
options = buttonTopic:zone_7/playKey, ledTopic:zone_7/playIndicator

Системные команды

Все устройства независимо от конфигурации выполняют команды псевдомодуля system — версия прошивки, свободная память, статус сети, список задач, перезагрузка.

Подробнее — Системные команды.

Модули внутри устройства могут взаимодействовать между собой без внешнего сервера: правило слушает событие одного модуля и вызывает действие другого.

[SLOT_2]
mode = button_led
;при нажатии кнопки 2 включить подсветку в слоте 3
crosslink = button_2/event/press:1->led_3/action/enable:1

Синтаксис, спецсимволы # и @, условные операторы и отладка описаны на отдельной странице — Внутренние связи (crossLink).

Смотрите также