Доступ к файловой системе
Контент и настройки хранятся в виде файлов в энергонезависимой памяти устройства. Может быть использована встроенная память микроконтроллера или внешняя SD карта.
Доступ к файлам можно получить несколькими способами:
-
С помощью интерфейса USB. Устройство можно подключить к ПК как съемный диск.
-
Через LAN сеть. Подключиться к FTP-серверу, запущенному на устройстве. Для этого потребуется знать IP адрес устройства или использовать MDNS имя “deviceName.local” FTP-сервер порт 21 логин: «user» пароль: «pass» Рекомендуемое ПО: Total Commander, WinSCP, FileZilla. По умолчанию включен режим анонимной авторизации, его можно отключить с помощью опции FTP_anon=0.
-
В случаях когда используется карта памяти, возможно физически извлечь 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].
- mode - режим работы слота
- options - Дополнительные опции работы слота
- crosslink - Внутренние связи
[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 — версия прошивки, свободная память, статус сети, список задач, перезагрузка.
Подробнее — Системные команды.
Внутренние связи (crossLink)
Модули внутри устройства могут взаимодействовать между собой без внешнего сервера: правило слушает событие одного модуля и вызывает действие другого.
[SLOT_2]
mode = button_led
;при нажатии кнопки 2 включить подсветку в слоте 3
crosslink = button_2/event/press:1->led_3/action/enable:1Синтаксис, спецсимволы # и @, условные операторы и отладка описаны на отдельной странице — Внутренние связи (crossLink).
Смотрите также
- Конституция — правила топиков и payload
- Внутренние связи (crossLink)
- Системные команды