Перейти к содержанию
ERITKOM
Open SourceНовость

Toit 2.0 стал стабильным: язык для скриптов и независимых приложений на ESP32

Релиз от 31 октября добавил Unix domain sockets и настройку имени устройства через конфигурацию прошивки. Разбираем, где заканчивается прошивка и начинается отдельно обновляемое приложение.

Отладочная плата ESP32 с модулем ESP-WROOM-32; историческая иллюстрация платформы, не новое устройство Toit
Фото: Ubahnverleih, Wikimedia Commons, CC0 1.0. Снимок 2018 года; изменены размер и формат. Иллюстрация совместимого семейства устройств, не тест конкретной платы редакцией.

Что действительно добавлено в версии 2.0

31 октября проект Toit опубликовал стабильный выпуск 2.0.0 после серии альфа-версий. В кратких release notes названы исправления ошибок, поддержка Unix domain sockets и возможность задать hostname через конфигурацию прошивки. Для сокетов отдельно уточняется будущий доступ через пакет host: наличие изменения в среде исполнения не стоит автоматически считать готовым одинаковым API для любого устройства.

Журнал ведёт сравнение с v2.0.0-alpha.199. Это конкретная граница изменений, а не обещание полной совместимости каждого старого проекта. Сам выпуск не сопровождается новыми результатами тестов производительности, поэтому приписывать версии ускорение на определённый процент оснований нет.

Один язык для компьютера и микроконтроллера

Toit предназначен как для скриптов на обычном компьютере, так и для приложений на ESP32. В языке есть классы, исключения и встроенные типы; короткий сценарий можно постепенно превращать в более структурированную программу. Запуск настольного скрипта не требует сначала подключать микроконтроллер.

Эти два сценария используют общее название языка, но работают в разных окружениях. Программа, обрабатывающая файлы на компьютере, и программа, опрашивающая вход платы, зависят от разных библиотек и доступного оборудования. Поддержка языка сама по себе не означает, что любой настольный интерфейс появляется внутри прошивки ESP32.

Что означает контейнер на устройстве

В модели Toit прошивка предоставляет среду исполнения, а приложения работают поверх неё в отдельных контейнерах с собственной управляемой памятью. Один компонент можно остановить и заменить, сохранив другие работающими. Для взаимодействия между компонентами предусмотрены сервисы. Это описание устройства программной среды Toit, а не утверждение о запуске обычных Docker-образов на микроконтроллере.

Для работы с периферией проект описывает GPIO, I²C, SPI, UART и сетевые возможности. Драйверы датчиков доступны через реестр пакетов. Разделение компонентов позволяет обновлять логику приложения отдельно от остальных программ, но не устраняет требования к конкретным выводам платы, подключению датчика и совместимой версии драйвера.

Jaguar отделяет первоначальную прошивку от повседневной разработки

Официальное руководство начинает работу с установки Jaguar и первоначальной записи прошивки через последовательное соединение. После запуска устройство объявляет себя в локальной сети, а разработчик может отправлять программу по Wi-Fi. Для поиска платы компьютер и ESP32 должны находиться в одной сети; это не автоматическое обнаружение устройства через интернет.

Важна разница между временным запуском и установкой. Программа, отправленная через jag run, не сохраняется после перезагрузки. Именованный контейнер, установленный через jag container install, запускается при последующем старте системы. Режим jag watch отслеживает изменение исходников и перезапускает код во время разработки. Эти команды относятся к существующему рабочему процессу Jaguar, а не перечислению новых функций версии 2.0.

Разные этапы работы с приложением ESP32
ДействиеРезультат
Первоначальная прошивка Установка среды исполнения и Jaguar на устройство
jag run Временный запуск программы
jag watch Перезапуск при изменениях исходников
jag container install Именованное приложение с запуском после перезагрузки

Источник: Toit — Run on your device

Настольный сценарий не ограничивается примером Hello World

Для командных приложений проект предлагает пакет CLI: разбор аргументов, типизированные параметры, подкоманды и автоматически формируемую справку. Описана поддержка дополнения команд для Bash, Zsh и Fish. Сам инструмент toit написан на этом языке и служит более крупным примером использования пакета.

По мере роста утилиты тот же набор средств предоставляет хранение конфигурации, кеширование и вывод с разной подробностью в текстовом формате или JSON. Таким образом, стабильный релиз относится к языку и его инструментам сразу для нескольких задач; он не является анонсом новой аппаратной платы или обязательного облачного сервиса.

Источники

Принципы журнала и исправления.

ERITKOM / НОВЫЙ ПРОЕКТ

Расскажите о задаче и оставьте контакты. Мы свяжемся с вами, чтобы обсудить проект.

  1. 01 Контакты
  2. 02 Ваша задача