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.iola 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
.dfuen 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.iola présence d’une version plus récente de l’IDE et propose un bouton Download qui ouvreopenmv.io/download, et télécharge, décompresse et installe les paquets de ressourcesopenmv-ide-resources-X.Y.Z.zipdirectement 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
QToolButtonrelié à un fluxupdateCam()qui lit le fichierfirmware/firmware.txtfourni, 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
.dfuen plus des.binet 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.dfua été introduit dans4ad2be5f9, avec la case d’effacement désactivée et toujours cochée qui s’active automatiquement selon l’extension du fichier choisi, ajoutée dansb2ac8defe(4ad2be5f9, b2ac8defe).Repli automatique vers DFU en cas d’échec du programme d’amorçage. Lorsqu’une mise à jour du micrologiciel
.binne peut pas démarrer le programme d’amorçage série, l’IDE signale désormaisUnable 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 cavalierBOOT/RSTet la reconnexion avant d’exécuterDfuSeCommand.exe(Windows) (4ad2be5f9).Exemple HoG. Ajout d’un exemple de visualisation de l’histogramme des gradients orientés (
09-Feature-Detection/hog.py) utilisantimg.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 auxiliairescommand()/commandResult()à la place dewrite()/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.cmdpassent à des installateurs basés surdpinstau lieu de l”InfDefaultInstallinteractif, et l’installateur du Visual C++ Redistributable (vcr.cmd, exécutantvcredist_x86.exeetvcredist_x64.exede 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
Helpet des volets de sortie : l’entrée About OpenMV Cam n’entre plus en conflit avec le rôle About de la plateforme (AboutRole→ApplicationSpecificRole), et les volets de sortie ne capturent plus les raccourcisAlt/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.binet les nouveaux ajoutsfirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfpour OMV2 et OMV7.Flashage DFU sous Windows ajouté à l’aide d’un
DfuSeCommand.exeST 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 pilotedfuse.cmd(4ad2be5f9).Le flashage DFU sous macOS et Linux est passé des binaires
dfu-utilprécompilés à un outil de flashagepydfu.pyfourni, l’IDE affichant les commandes d’installation libusb/pyusb requises.ac248c0eca brièvement ajouté les binaires Linux x86_64dfu-util/dfu-prefix/dfu-suffix, mais324f243f9les a ensuite tous supprimés au profit depydfu.py. Aucun binairedfu-utiln’est livré dans la version finale ;static.proregroupe le répertoire de donnéespydfupour 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.