v4.4.2

v4.4.2 добавляет реверс байтов для SPI-LCD и переопределение тактовой частоты MT9V0xx, более надёжное выполнение скриптов и обработку WiFi-сокетов, а также исправляет заметную ошибку с copy= в изображениях. Порядок аргументов JPEG-сжатия и выбор тактовой частоты камеры изменились — ознакомьтесь с критическими изменениями ниже.

Основные изменения

  • Реверс байтов для SPI LCD и переопределение внешней тактовой частоты MT9V0xx.

  • Более надёжное выполнение скриптов и обработка исключений, а также исправления WiFi-сокетов.

  • Исправлена ошибка copy= в image, которая изменяла исходный объект.

  • Критическое изменение: изменились порядок позиционных аргументов JPEG-сжатия и выбор тактовой частоты камеры — см. критические изменения.

Новые возможности

  • Реверс байтов для SPI LCD — путь SPI LCD на STM32 получил поддержку реверса байтов.

  • Переопределение тактовой частоты MT9V0xx — внешнюю тактовую частоту MT9V0xx теперь можно переопределить (Portenta переопределяет тактовую частоту своего датчика MT по умолчанию).

Прочие изменения и улучшения

  • Выполнение скриптов и обработка исключений стали более надёжными на портах nRF, RP2 и STM32.

  • Оптимизирована загрузка патча датчика MT9M114 (более быстрая инициализация).

Исправления ошибок

Обработка изображений:

  • Исправлена ошибка аргумента copy= в операции image, при которой вместо копии изменялся исходный объект.

Камера и датчики:

  • Добавлено управление считыванием датчика на Nicla Vision и исправлена ориентация его изображения.

Сеть и USB:

  • WINC1500 теперь держит слушающий сокет открытым при тайм-ауте accept и корректно очищает NIC при закрытии сокетов; исправлена библиотека RTSP.

  • Аудиомодуль теперь использует статические узлы планировщика для более надёжного планирования функций обратного вызова; USB-отладчик отключается перед возбуждением исключений, что повышает стабильность подключения к IDE при ошибках скрипта.

Поддержка оборудования и плат

  • Arduino Nicla Vision — управление считыванием датчика и исправленная ориентация изображения.

  • Arduino Portenta — переопределяет тактовую частоту своего датчика MT по умолчанию.

Критические изменения API

Видимые пользователю изменения API между v4.4.1 и v4.4.2. Область: C-модули Python в modules/ и библиотеки Python в scripts/libraries/.

Оба критических изменения являются изменениями behavior (тот же API, другие результаты) — перепроверьте настроенные скрипты. Каждый хеш коммита ведёт на его diff на GitHub.

Порядок аргументов JPEG-сжатия (behavior)

Обработка позиционных аргументов для семейства JPEG-сжатия (compress() / compressed() / JPEG save()) была исправлена так, что quality стал первым позиционным аргументом со значением по умолчанию 90. Скрипты, передававшие аргументы сжатия позиционно в прежнем (неверном) порядке, нужно обновить.

Коммит: 509b094a5

Выбор тактовой частоты камеры (behavior)

Выбор внешней тактовой частоты камеры на STM32 теперь подбирает ближайшую доступную частоту ниже запрошенного значения вместо ошибки или превышения. Фактическая частота пикселей для данного запроса может отличаться от предыдущих выпусков — перепроверьте захваты, чувствительные к таймингу.

Коммит: 39ba1a7f5

Контрольный список миграции

Для чистого переноса на v4.4.2: передавайте JPEG quality как первый позиционный аргумент (или как именованный) (изменение аргументов JPEG) и перепроверьте любые чувствительные к таймингу настройки тактовой частоты камеры (изменение выбора частоты).