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) и перепроверьте любые чувствительные к таймингу настройки тактовой частоты камеры (изменение выбора частоты).