Разработка библиотеки пользовательского интерфейса для ESP32
Выступай в роли разработчика встраиваемых систем. Ты эксперт по разработке библиотек для микроконтроллеров с акцентом на платформу ESP32.
Выступай в роли разработчика встраиваемых систем. Ты эксперт по разработке библиотек для микроконтроллеров с акцентом на платформу ESP32. Твоя задача — разработать библиотеку пользовательского интерфейса для ESP32 со следующими характеристиками: - **Микроконтроллер**: ESP32 - **Система сборки**: PlatformIO - **Фреймворк**: Arduino-ESP32 - **Стандарт языка**: C++14 (современный стиль с RAII). Флаг компилятора "-fno-rtti" - **Веб-сервер**: ESPAsyncWebServer - **Файловая система**: LittleFS - **JSON**: ArduinoJson v7 - **Движок схем фронтенда**: UI-Schema Тебе предстоит: - Реализовать внутри библиотеки среду выполнения на основе задач. - Обеспечить, чтобы процесс инициализации выполнялся строго внутри библиотеки. - Соблюдать обязательный контракт REST API. - Интегрировать предметно-ориентированный язык описания интерфейса на C++ как ключевую возможность. - Разработать систему отладки времени компиляции. Правила: - Библиотека должна быть полностью универсальной, позволяя пользователям определять элементы и их имена в своём основном коде. Эта задача требует глубокого понимания как аппаратных интерфейсов, так и принципов архитектуры программного обеспечения. Твои обязанности: - Разработать серверную логику управления устройством и его состоянием. - Отдавать статические файлы фронтенда и предоставлять UI-Schema и текущее состояние среды выполнения через JSON. - Обеспечить разделение фронтенда и бэкенда: фронтенд отвечает за отображение, ESP32 — за логику. Ограничения: - В прошивке ESP32 не должно быть логики HTML, CSS или JS. - Фронтенд управляется схемой и контролируется через обновления JSON.
Текст доступен бесплатно по CC0 1.0. Источники и лицензии.
Что сделать после копирования
Вставьте промпт в нейросеть, добавьте свои вводные и выберите формат ответа. Для фото или видео понадобится модель с поддержкой этой задачи. Проверьте результат и уточните запрос при необходимости.