v1.7.0

v1.7.0 ajoute le découpage et le réassemblage du tampon d’image série afin que de grandes trames puissent être transférées sur la liaison série de débogage, rend la déconnexion-avec-réinitialisation plus sûre en vidant (et, sous Windows, en éjectant) le lecteur de stockage de masse USB de la caméra, et rafraîchit l’ensemble des exemples. La version est basée sur Qt Creator 4.0.2 (la même base que la version précédente) et ajoute la prise en charge de la compilation pour des cibles Linux embarqué compilées de manière croisée telles que le Raspberry Pi. Il n’y a aucune modification cassante.

Points marquants

  • Découpage du tampon d’image série — les transferts volumineux du tampon d’image sont découpés en fragments de la taille du MTU et réassemblés dans un tampon de pixels, de sorte que de grandes trames peuvent être déplacées sur la liaison série de débogage.

  • Déconnexion-avec-réinitialisation plus sûre — le lecteur de stockage de masse USB de la caméra est vidé avant la réinitialisation (et éjecté de force sous Windows) afin que le système de fichiers soit d’abord synchronisé.

  • Enregistrement atomique des fichiersmain.py et les fichiers de points clés sont écrits de manière atomique, évitant la corruption et corrigeant un bogue de chemin qui écrivait main.py au mauvais emplacement.

  • Raspberry Pi / Linux embarqué — la prise en charge de la compilation croisée est désormais incluse.

  • Exemples rafraîchis — un ensemble Servo Shield, de nouvelles démonstrations de détection de caractéristiques, et des exemples vidéo Image Reader/Writer.

Nouvelles fonctionnalités

  • Découpage et réassemblage du tampon d’image série. Les transferts du tampon d’image sont découpés en fragments de la taille du MTU et réassemblés dans un tampon de pixels, de sorte que de grandes trames peuvent être déplacées sur la liaison série de débogage à l’aide d’un MTU par défaut. Un protocole de négociation automatique du MTU à l’exécution a été ajouté, avec sa borne de version de micrologiciel fixée à 2.5.0, correspondant au micrologiciel 2.5.0 embarqué dans le même commit (96458ccef). La borne a ensuite été relevée à 9.9.9 pour la version finale, valeur qu’aucun micrologiciel livré ne signale, de sorte que les caméras utilisent le MTU par défaut et qu’aucune négociation n’a lieu (abd1dacb9).

  • Vidage/éjection lors de la déconnexion-avec-réinitialisation. La déconnexion avec réinitialisation vide désormais le lecteur de stockage de masse USB de la caméra avant la réinitialisation : sous Windows le lecteur est éjecté de force, tandis que sous Linux et macOS le système de fichiers du lecteur est synchronisé (syncfs / sync_volume_np). Une erreur Failed to eject est signalée en cas d’échec sur les trois plateformes (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Exemples Servo Shield. Ajout d’un ensemble d’exemples 15-Servo-Shield illustrant des servomoteurs pilotés par PCA9685, incluant un pilote pca9685.py et un utilitaire servo.py (abd1dacb9).

  • Nouveaux exemples de détection de caractéristiques. Ajout de find_circles (Hough), find_rects (seuil quadruple), find_numbers (reconnaissance de chiffres LeNet), et d’exemples de régression linéaire rapide et robuste sous 09-Feature-Detection (abd1dacb9).

  • Exemples vidéo et de contrôle de carte. Ajout d’exemples Image Reader/Writer pour enregistrer et rejouer des flux de captures depuis la carte SD, d’un exemple de contrôle de carte RTC, et d’un exécuteur de tests unitaires embarqué dans la caméra (abd1dacb9).

Autres modifications et améliorations

  • Renommage du dossier d’exemples 99-Tests (anciennement 15-Tests) et ajout de l’exécuteur unittests.py (abd1dacb9).

Corrections de bogues

  • Renforcement de l’enregistrement de main.py et des fichiers de points clés. Les écritures ont été basculées vers des écritures atomiques FileSaver (écrire puis finaliser) dans (4fd4e89cf), et un séparateur de chemin manquant qui écrivait main.py au mauvais emplacement a été corrigé dans (1865ffd31).

  • Amélioration de la fiabilité série en agrandissant le tampon de lecture série à 1 Mo sur tous les ports et en augmentant le délai d’expiration en cas de blocage de lecture, remédiant aux pertes de données avec QSerialPort (7f68368dc).

  • Correction d’un défaut de disposition du séparateur de fenêtre en exportant MainWindow et en émettant un signal d’événement d’affichage afin que le greffon OpenMV puisse restaurer la disposition lorsque la fenêtre principale est affichée (4895e20b7).

Prise en charge des plateformes et des outils

  • Base Qt Creator : 4.0.2.

  • Ajout de la prise en charge de la compilation pour des cibles Linux embarqué compilées de manière croisée telles que le Raspberry Pi : déploie les polices Qt, corrige la gestion de chrpath/RPATH, compile les traductions avec les binaires hôtes, et ajoute une dépendance qml manquante (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • Mise à jour du micrologiciel OpenMV embarqué de 2.4.1 à 2.5.0 (96458ccef).

  • Renommage des dossiers de micrologiciel OMV2/OMV3 en OPENMV2/OPENMV3 et livraison des binaires de micrologiciel et de programme d’amorçage STM32F427 (OPENMV2) et STM32F765 (OPENMV3) mis à jour et recompilés (abd1dacb9).

Modifications cassantes

Aucune. Cette version n’introduit aucune rupture de flux de travail ou de comportement visible par l’utilisateur, et les projets existants continuent de fonctionner sans changement.