v1.7.0

v1.7.0 додає фрагментування та збірку кадрів послідовного буфера, щоб великі кадри можна було передавати через відладочний послідовний зв’язок, робить відключення із скиданням безпечнішим шляхом скидання (та примусового вилучення у Windows) USB-накопичувача камери, і оновлює набір прикладів. Реліз базується на Qt Creator 4.0.2 (та ж база, що й попередній реліз) та додає підтримку збірки для вбудованих Linux-цілей з перехресною компіляцією, таких як Raspberry Pi. Зміни, що порушують сумісність, відсутні.

Основні зміни

  • Фрагментування послідовного кадрового буфера — великі передачі кадрового буфера розбиваються на фрагменти розміром MTU та збираються у піксельному буфері, тому великі кадри можна передавати через відладочний послідовний зв’язок.

  • Безпечніше відключення із скиданням — USB-накопичувач камери скидається перед скиданням (та примусово вилучається у Windows), щоб файлова система була синхронізована.

  • Атомарне збереження файлівmain.py та файли ключових точок записуються атомарно, запобігаючи пошкодженню та виправляючи помилку шляху, через яку main.py записувався у неправильне місце.

  • Raspberry Pi / вбудований Linux — тепер включена підтримка збірки з перехресною компіляцією.

  • Оновлені приклади — набір Servo Shield, нові демонстрації виявлення ознак та відеоприклади Image Reader/Writer.

Нові функції

  • Фрагментування та збірка послідовного кадрового буфера. Передачі кадрового буфера розбиваються на фрагменти розміром MTU та збираються у піксельному буфері, тому великі кадри можна передавати через відладочний послідовний зв’язок із використанням стандартного MTU. Додано рукостискання автоузгодження MTU під час виконання з воротами версії мікропрограми, встановленими на 2.5.0, що відповідає мікропрограмі 2.5.0, вбудованій у тому ж коміті (96458ccef). Ворота були підвищені до 9.9.9 для релізу, що не повідомляє жодна з випущених мікропрограм, тому камери використовують стандартний MTU без узгодження (abd1dacb9).

  • Скидання/вилучення при відключенні із скиданням. Відключення із скиданням тепер скидає USB-накопичувач камери перед скиданням: у Windows диск примусово вилучається, тоді як у Linux та macOS файлова система диска синхронізується (syncfs / sync_volume_np). У разі помилки на всіх трьох платформах повідомляється помилка Failed to eject (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Приклади Servo Shield. Додано набір прикладів 15-Servo-Shield, що демонструють сервоприводи на базі PCA9685, включаючи драйвер pca9685.py та допоміжний модуль servo.py (abd1dacb9).

  • Нові приклади виявлення ознак. Додано find_circles (Хаф), find_rects (квадрантовий поріг), find_numbers (розпізнавання цифр LeNet) та приклади швидкої та надійної лінійної регресії у розділі 09-Feature-Detection (abd1dacb9).

  • Відеоприклади та приклади керування платою. Додано приклади Image Reader/Writer для запису та відтворення потоків знімків із SD-карти, приклад керування RTC платою та засіб запуску модульних тестів на камері (abd1dacb9).

Інші зміни та вдосконалення

  • Перейменовано папку прикладів 99-Tests (раніше 15-Tests) та додано засіб запуску unittests.py (abd1dacb9).

Виправлення помилок

  • Підвищено надійність збереження main.py та файлів ключових точок. Записи перемкнуто на атомарний FileSaver (запис із подальшою фіналізацією) у (4fd4e89cf), а відсутній роздільник шляху, через який main.py записувався у неправильне місце, виправлено у (1865ffd31).

  • Покращено надійність послідовного зв’язку шляхом збільшення буфера читання послідовного порту до 1 МБ на всіх портах та збільшення тайм-ауту зупинки читання, що вирішує проблему втрати даних із QSerialPort (7f68368dc).

  • Виправлено глюк розкладки розділювача вікна шляхом експорту MainWindow та видачі сигналу події показу, щоб плагін OpenMV міг відновити розкладку при відображенні головного вікна (4895e20b7).

Підтримка платформ та інструментів

  • База Qt Creator: 4.0.2.

  • Додано підтримку збірки для вбудованих Linux-цілей з перехресною компіляцією, таких як Raspberry Pi: розгортання шрифтів Qt, виправлення обробки chrpath/RPATH, збірка перекладів за допомогою двійкових файлів хосту та додавання відсутньої залежності qml (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • Оновлено вбудовану мікропрограму OpenMV з 2.4.1 до 2.5.0 (96458ccef).

  • Перейменовано папки мікропрограм OMV2/OMV3 на OPENMV2/OPENMV3 та додано оновлені, перебудовані двійкові файли мікропрограм і завантажувача для STM32F427 (OPENMV2) та STM32F765 (OPENMV3) (abd1dacb9).

Зміни, що порушують сумісність

Відсутні. Цей реліз не вносить змін у робочий процес або поведінку, що видимі користувачу, а наявні проєкти продовжують працювати без змін.