v1.3.0

v1.3.0 réécrit la couche de communication de la caméra autour d’un protocole structuré commande/réponse et ajoute la mise à jour automatique intégrée à l’IDE, tant pour l’IDE lui-même que pour ses ressources fournies. Elle est construite sur Qt Creator 4.0.2 et intègre le micrologiciel 2.0.0 des caméras OpenMV. Sur macOS et Linux, le flashage du micrologiciel via DFU nécessite désormais une installation ponctuelle de Python ainsi que de libusb et pyusb ; voir Changements incompatibles.

Points forts

  • Couche de communication réécrite. Le code de débogage série/USB a été reconstruit autour d’un protocole structuré commande/réponse, avec des longueurs de réponse par commande et des délais d’attente de début et de fin, pour des opérations de connexion, d’exécution de script, de tampon d’image et de programme d’amorçage plus fiables.

  • Outil de mise à jour automatique intégré à l’IDE. L’IDE vérifie désormais sur openmv.io la présence d’une version plus récente et propose un bouton Download, et télécharge et installe séparément les paquets de ressources mis à jour (exemples, micrologiciel, documentation) avant d’inviter au redémarrage.

  • Mise à jour du micrologiciel en un clic. La version du micrologiciel affichée dans la barre d’état est désormais un bouton cliquable qui compare la caméra connectée au micrologiciel fourni et propose une mise à jour en un clic lorsqu’une version plus récente est disponible.

  • Flashage du micrologiciel via DFU sur toutes les plateformes. Le micrologiciel peut désormais être flashé via DFU sous Windows, macOS, Linux x86 et Linux x86_64, et le sélecteur de micrologiciel accepte les fichiers .dfu en plus des .bin.

  • Repli automatique vers DFU. Lorsque le programme d’amorçage série ne peut pas être atteint pendant une mise à jour du micrologiciel, l’IDE propose désormais de procéder à la mise à niveau via le programme d’amorçage DFU de la caméra, en vous guidant pour l’ajout d’un cavalier BOOT/RST.

Nouvelles fonctionnalités

  • Outil de mise à jour intégré à l’IDE. Vérifie sur openmv.io la présence d’une version plus récente de l’IDE et propose un bouton Download qui ouvre openmv.io/download, et télécharge, décompresse et installe les paquets de ressources openmv-ide-resources-X.Y.Z.zip directement dans l’IDE avant d’inviter au redémarrage (8a1f92bb1, 194acd828, b0be97e3e).

  • Bouton cliquable de version du micrologiciel. L’étiquette de version de la barre d’état est devenue un QToolButton relié à un flux updateCam() qui lit le fichier firmware/firmware.txt fourni, le compare à la caméra connectée et propose une Firmware Update avec effacement facultatif du système de fichiers interne lorsqu’une version plus récente est disponible (b2ac8defe).

  • Prise en charge des fichiers DFU. La boîte de dialogue de flashage du programme d’amorçage/micrologiciel accepte désormais les fichiers .dfu en plus des .bin et force un effacement complet du système de fichiers interne lors du flashage d’un .dfu. Le filtre du sélecteur de micrologiciel a été élargi à Firmware Binary (*.bin *.dfu) et le flux d’effacement forcé pour .dfu a été introduit dans 4ad2be5f9, avec la case d’effacement désactivée et toujours cochée qui s’active automatiquement selon l’extension du fichier choisi, ajoutée dans b2ac8defe (4ad2be5f9, b2ac8defe).

  • Repli automatique vers DFU en cas d’échec du programme d’amorçage. Lorsqu’une mise à jour du micrologiciel .bin ne peut pas démarrer le programme d’amorçage série, l’IDE signale désormais Unable to connect to the bootloader! puis propose de procéder à la mise à niveau via le programme d’amorçage DFU de la caméra, en avertissant que le DFU efface le système de fichiers de la mémoire flash interne et en vous guidant pour l’ajout d’un cavalier BOOT/RST et la reconnexion avant d’exécuter DfuSeCommand.exe (Windows) (4ad2be5f9).

  • Exemple HoG. Ajout d’un exemple de visualisation de l’histogramme des gradients orientés (09-Feature-Detection/hog.py) utilisant img.find_hog() (b03a707f7).

Autres changements et améliorations

  • Remplacement de l’ancien code ad hoc de débit en bauds/paquets par les classes OpenMVPluginSerialPortCommand/Result, les opcodes __USBDBG_* et __BOOTLDR_* et les fonctions auxiliaires command()/commandResult() à la place de write()/readAll()/isOpen() (b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).

  • L’installation du pilote de port série sous Windows est désormais silencieuse/sans intervention : les scripts de pilote openmv.cmd/pybcdc.cmd passent à des installateurs basés sur dpinst au lieu de l”InfDefaultInstall interactif, et l’installateur du Visual C++ Redistributable (vcr.cmd, exécutant vcredist_x86.exe et vcredist_x64.exe de manière silencieuse) a été ajouté et corrigé (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).

Corrections de bogues

  • Correction du flashage du micrologiciel et de la communication qui échouaient à l’intérieur des machines virtuelles, et assouplissement de divers délais d’expiration de commandes ainsi que de l’interrogation du tampon d’image/tampon de transmission afin de rendre la connexion et l’exécution plus robustes. La boîte de dialogue de reprogrammation indique désormais qu’elle « peut prendre jusqu’à 5 minutes » et le délai d’expiration du processus DFU a été porté de 240 s à 300 s dans 324f243f9 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).

  • Correction de la comparaison de disponibilité de mise à jour du micrologiciel/IDE afin qu’une version mineure ou corrective plus récente ne se déclenche plus à tort lorsqu’un champ supérieur est égal, et obligation pour la boîte de dialogue du programme d’amorçage de disposer d’un fichier sélectionné valide avant le flashage (4ad2be5f9).

  • Fermeture des descripteurs de fichiers (liste des cartes, fichiers de micrologiciel/version) après lecture et correction du remplissage des fragments de flashage du micrologiciel pour compléter jusqu’à FLASH_WRITE_CHUNK_SIZE, évitant les fuites de descripteurs et les fragments finaux mal complétés lors des mises à jour du micrologiciel (4ad2be5f9).

  • Correction du menu OpenMV Help et des volets de sortie : l’entrée About OpenMV Cam n’entre plus en conflit avec le rôle About de la plateforme (AboutRoleApplicationSpecificRole), et les volets de sortie ne capturent plus les raccourcis Alt/Cmd + chiffre (a0694eac7).

  • L’ouverture de liens web OpenMV externes (forums, téléchargement, support) affiche désormais une boîte de dialogue d’erreur « Failed to open » lorsque l’URL ne peut pas être lancée, au lieu de ne rien faire silencieusement (b0be97e3e).

Prise en charge des plateformes et des outils

  • Base Qt Creator : 4.0.2.

  • Micrologiciel de caméra fourni : mis à jour vers la version 2.0.0, avec de nouveaux firmware.bin/openmv.bin et les nouveaux ajouts firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf pour OMV2 et OMV7.

  • Flashage DFU sous Windows ajouté à l’aide d’un DfuSeCommand.exe ST fourni, du paquet de pilotes USB ST DfuSe (DfuSe v3.0.4.0 sous Win7/Win8, v3.0.5.0 sous Win8.1) et d’un installateur de pilote dfuse.cmd (4ad2be5f9).

  • Le flashage DFU sous macOS et Linux est passé des binaires dfu-util précompilés à un outil de flashage pydfu.py fourni, l’IDE affichant les commandes d’installation libusb/pyusb requises. ac248c0ec a brièvement ajouté les binaires Linux x86_64 dfu-util/dfu-prefix/dfu-suffix, mais 324f243f9 les a ensuite tous supprimés au profit de pydfu.py. Aucun binaire dfu-util n’est livré dans la version finale ; static.pro regroupe le répertoire de données pydfu pour tous les hôtes non Windows, tandis que Windows utilise le flux DfuSe fourni (ac248c0ec, 324f243f9, 7837a07da).

  • Les règles udev Linux ont été mises à jour pour utiliser la correspondance SUBSYSTEM (caméra VID 1209/PID abd1 tty et STM DFU 0483/df11) afin que les liens symboliques de l’appareil et du DFU fonctionnent sous Linux 32 bits, et les requêtes réseau suivant les redirections ont été protégées pour les anciennes versions de Qt (194acd828).

Changements incompatibles

Les binaires autonomes dfu-util fournis pour macOS et Linux ont été supprimés et remplacés par un outil de flashage Python pydfu.py. Sur macOS et Linux, le flashage DFU du micrologiciel nécessite désormais une installation ponctuelle de Python ainsi que de libusb et pyusb (l’IDE affiche les commandes MacPorts/HomeBrew/apt-get exactes). Windows continue d’utiliser le flux basé sur DfuSe fourni. Il n’y a aucune rupture de l’API de script, et la base Qt Creator 4.0.2 reste inchangée.