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

Пример: топик moduleBox/listOfActions_6/event/errFileNotFound, payload show1.txt.

Команды

ТопикPayloadОписание
listOfActions_<slot>/action/executeстрока, имя файлаПроиграть файл сценария из корня файловой системы
listOfActions_<slot>/action/enable0 / 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).