[SLOT_n]
mode = listOfActionsВиртуальный модуль сценариев: по команде проигрывает файл со списком действий — строка за строкой, как правила crossLink.
Совместимость
Виртуальный модуль, аппаратной части не требует. Занимает слот из диапазона 0–9. Файлы сценариев лежат в корне файловой системы (карта памяти или встроенная память).
Принцип работы
Команда execute с именем файла запускает сценарий. Каждая непустая строка
файла — правая часть правила crossLink без имени устройства, например
player_0/action/play:3; модуль дописывает deviceName и передаёт строку
исполнителю. Строки, начинающиеся с # или ;, — комментарии.
Строки исполняются подряд без задержек. Пауза делается спецсловом
delay_ms:<N> — модуль замирает на N миллисекунд и продолжает со следующей
строки; на это время он не реагирует на команды, пришедшие команды
разбираются после паузы. Пока один сценарий играет, новые execute встают
в очередь (до 8) и отрабатывают следом. Команда enable со значением 0
обрывает текущий сценарий и очищает очередь (во время delay_ms — по
окончании паузы).
Если файл не найден, модуль рапортует errFileNotFound с его именем.
Ограничения: имя файла до 64 символов, строка до 256 символов.
Топики
База топика события:
<deviceName>/listOfActions_<slot>— напримерmoduleBox/listOfActions_6
База топика действия:
<deviceName>/listOfActions_<slot>— напримерmoduleBox/listOfActions_6
Полный топик — база плюс направление и имя: moduleBox/listOfActions_6/action/execute.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу.
События
| Топик | Payload | Описание |
|---|---|---|
listOfActions_<slot>/event/errFileNotFound | строка | Имя файла, который не удалось открыть |
listOfActions_<slot>/event/enable | 0 / 1 | Активен 1 или спит 0 |
Пример: топик moduleBox/listOfActions_6/event/errFileNotFound, payload show1.txt.
Команды
| Топик | Payload | Описание |
|---|---|---|
listOfActions_<slot>/action/execute | строка, имя файла | Проиграть файл сценария из корня файловой системы |
listOfActions_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль; 0 обрывает сценарий |
Примеры
Файл show1.txt в корне карты памяти:
; сцена: свет, звук, через 5 секунд - смена цвета и следующий трек
pwmLeds_1/action/setRGB:255 0 0
player_0/action/play:2
delay_ms:5000
pwmLeds_1/action/setRGB:0 0 255
player_0/action/play:3
delay_ms:10000
pwmLeds_1/action/enable:0
[SLOT_6]
mode = listOfActions
[SLOT_1]
mode = button_led
;кнопка запускает сценарий
crosslink = button_1/event/press:1->listOfActions_6/action/execute:show1.txtНажатие кнопки проигрывает show1.txt: красный свет и трек 2, через 5 с —
синий свет и трек 3, ещё через 10 с подсветка гаснет.
Подробнее — внутренние связи (crossLink).