@xsjado_mw,эффект "Рубик" еще выключи "Мерцание" и "Жизнь" - похоже они проблемные... А вот с шумовыми проблем не возникало. На втором этапе тестирования можно их вернуть. Жизнь удалил - он не интересный (Текущая версия на гитхабе уже без него). Рубик - попробую понять что с ним не так...
Upd: эффект "Кубик Рубика" - починен. Изначально размер массива координат плашек рассчитывался что кол-во плашек не более 255 - байт. На больших размерах - переполнение массива и выход за границы завешивал контроллер. Исправлено, обновлено в хранилище.
Ставлю на прогон на ночь все эффекты кроме игр и Мерцания на размерах 128x96. До этого на таком наборе эффектов время непрерывной беспроблемной работы на матрице 128x48 - более трех часов. Потом эксперимент прервал, чинил Кубик Рубика.
Upd2: Ночной прогон (порядка 12 часов) на всех эффектах на оборудовании - размер "виртуальной матрицы" - то есть выделение памяти - 128x128 точек, реальный вывод фрагмента из 512 диодов на физическую матрицу 32x16. Смена эффектов каждые 5 секунд, показ бегущей строки каждые 10 секунд, Web-интерфейс открыт в браузере, идет постоянный поллинг - откликается ли устройство:
- Зависаний с "переполнение очереди" - не обнаружено
- Два раза перегрузилось - фрагментация памяти, не получилось выделить память под эффект блоком нужного размера, но не зависло.
Эффект Мерцание - вызов библиотечной FastLED функции fill_2dnoise16() на количестве диодов в среднем более 8192 штук (128х64) вызывает сбой и перезагрузку. Эффект отключен для размеров более 8192 штук - при выборе эффекта будет проигрываться случайный другой. Все изменения - актуализированы в хранилище. Поставлено на прогон до следующего утра или на сутки, как получится. Наблюдаем.
Upd3: Почти суточное тестирование в конфигурации - "виртуальной матрицы" - то есть выделение памяти - 128x128 точек, реальный вывод фрагмента из 512 диодов на физическую матрицу 32x16. Смена эффектов каждые 5 секунд, показ бегущей строки каждые 10 секунд, Web-интерфейс открыт в браузере, идет постоянный поллинг - откликается ли устройство:
Эффект-игра Тетрис - какие-то проблемы на таком размере - зависает. Не разбирался, наверное и не буду. Тетрис такого размера все равно никто никогда использовать не будет.
Эффект-игра Лабиринт - не зависает, но и доиграть до конца не может - через маленькое "окно" не видно есть ли у сгенерированного лабиринта выход или еще какие проблемы. Игра не зависает, но требуется ручное переключение на следующий эффект, потому что в прошивке переход на другой эффект - после завершения игры, когда точка находит выход из лабиринта. Не находит - нет переключения на следующий эффект.
Остальные эффекты - в списке, смена каждые 5 секунд. Зависаний, особенно типа "Переполнение очереди входящих команд" не выявлено. Было две перезагрузки (видимо фрагментация памяти кучи) в среднем через 8 часов работы в этих условиях.
Сомневаюсь, что кто-то реально будет использовать "экраны" 128х128 - во первых довольно медленное обновление кадров - более 16 тыс диодов, даже если распапраллеливать вывод всего массива диодов на 4 потока. Во вторых - прилично смотрятся в основном шумовые эффекты, остальные на таком размере выглядят "так себе" - типа одиноко блуждающий по огромному полю небольшой кубик. Точнее - квадратик.
Транслирование потока с матрицы в сеть на другие устройства в группе (E131, синхронизация устройств) - завешивает контроллер. Да и сама реализация не рассчитана на количество диодов более 2048. Можно либо расширить - но на отправку данных такого размера в сеть потребуется достаточное количество времени - думаю будет тормозить. Либо, скорее всего, ограничу возможность включение этого режима на матрицах больших 2048 диодов суммарно.