Автозапуск
Машина включилась — свет заработал: настройки системы, аргументы запуска, прогрев и расписание.
Инсталляция должна подниматься сама после любого выключения. Это не одна настройка, а несколько.
Настройки системы
| Что | Как |
|---|---|
| Автологин | Вход без пароля |
| Автозапуск после сбоя питания | В BIOS: Restore on AC Power Loss = On |
| Спящий режим и гашение экрана | Отключить полностью |
| Обновления Windows | Отложить максимально |
| Уведомления | Режим «не беспокоить» |
| Схема питания | «Максимальная производительность» |
| Экран блокировки | Убрать |
Пункт про BIOS вспоминают после первого отключения электричества в здании.
Запуск проекта
Ярлык в автозагрузку или задача в планировщике:
TouchPlayer.exe D:\show\show.toe
TouchPlayer предпочтительнее полного TouchDesigner: меньше того, что может пойти не так.
Аргументы доступны из проекта:
app.launchArgs
Так одну и ту же сборку запускают в разных режимах: --venue=hall1,
--mode=demo.
Прогрев
При старте компилируются шейдеры, читаются файлы, инициализируются устройства. Приборы в этот момент получат мусор или ничего.
Правильная последовательность:
- Проект запускается с выключенным выводом DMX (
Active= 0). - Инициализируются входы, читается конфигурация, восстанавливается состояние.
- Ждём стабильных кадров (
Perform CHOP) — обычно 5–15 секунд. - Выставляется безопасное стартовое состояние (обычно ноль).
- Включается вывод.
- Только теперь стартует расписание.
Расписание
09:50 запуск проекта, прогрев
10:00 открыть шоу
21:00 плавно погасить
21:05 перезапустить машину
Ночной перезапуск лечит накопившееся: утечки памяти, подвисшие соединения, ошибки. Это дешевле, чем искать идеальную причину. Полный пример постоянной инсталляции — Свет по времени суток.
Реализуется либо планировщиком системы, либо внутри проекта по часам:
import datetime
now = datetime.datetime.now()
op('state').Enable(9 <= now.hour < 21)
Гашение при выходе
Приборы держат последнее значение. Закрыли проект — свет остался.
def onExit():
op('master').par.value0 = 0
op('dmx_out').cook(force=True)
return
Дайте пакету уйти до закрытия. Ещё надёжнее — гасить за секунду до завершения и только потом закрываться.
Проверка
Единственная честная проверка: выдернуть питание, воткнуть обратно и не трогать. Через пять минут свет должен работать сам. Не получилось — инсталляция не готова.
Повторите тест трижды, с разными состояниями: во время шоу, ночью, в момент перезапуска.