v4.0.1¶
v4.0.1 est une modernisation en profondeur qui rebase OpenMV IDE depuis sa base historique Qt Creator 4.0.2 vers Qt Creator 10.0.1. L’ensemble de la pile de plugins OpenMV (visionneuse de tampon d’image, série/protocole, terminal, histogramme, éditeurs de seuils et de points clés, outils vidéo et wrappers de flashage du micrologiciel) est ré-appliqué par-dessus la nouvelle base, accompagné d’une paire de thèmes soignés Flat Light/Flat Dark, d’une coloration syntaxique Python adaptée à OpenMV, d’une boîte de dialogue unifiée de chargement du micrologiciel et d’une prise en charge étendue de la détection des périphériques sous Linux ARM64 et macOS. Le changement de base Qt Creator est une vaste modernisation interne mais ne casse pas les projets des utilisateurs ; quelques comportements par défaut et définitions de cartes ont toutefois changé (voir Changements incompatibles).
Points forts¶
Rebase sur Qt Creator 10.0.1. L’IDE passe de Qt Creator 4.0.2 à 10.0.1 : la version amont de Qt Creator est réduite à ses fondamentaux de compilation (98b95fd3b) et l’intégralité du plugin OpenMV est réintégrée sur la nouvelle base (0e8047372).
Thèmes Flat Light et Flat Dark. Une paire de thèmes clair/sombre soignés est fournie avec des styles personnalisés de coloration syntaxique de l’éditeur assortis ; le sélecteur de thème est de nouveau accessible dans les paramètres généraux, restreint à ces deux thèmes uniquement, et le thème par défaut est désormais
flat-dark(21348924b, 13c3849e8).Terminal série Raw-REPL. Le terminal exécute, interrompt, recharge et colle désormais les scripts via une machine à états REPL brut (Raw-REPL) MicroPython correcte (CTRL-A/CTRL-D), gérant de façon fiable les scripts plus volumineux (a7241079c).
Édition Python adaptée à OpenMV. Les modules, classes, fonctions, méthodes et arguments OpenMV bénéficient d’une coloration syntaxique issue de la documentation intégrée, avec une auto-complétion plus intelligente et une indentation automatique tenant compte des crochets et des deux-points (801eab8a8, 8e9f967e7, 9fdff9c6d).
Boîte de dialogue unifiée de chargement du micrologiciel. Le flashage affiche désormais une seule boîte de dialogue contextuelle (Effacement du disque / Flashage du micrologiciel / Flashage du programme d’amorçage) avec une barre de progression et un journal Afficher/Masquer les détails repliable qui mémorise son état (5b51356f8).
Prise en charge de l’OpenMV Cam RT1062. Le micrologiciel, les chargeurs DFU/flash, l’énumération SDP/blhost et une étape de programmation par brûlage d’eFuse sont ajoutés pour la nouvelle carte de classe i.MX RT1060 (a6595f5f7), à laquelle est ensuite attribuée une variante de carte Secure Bootloader (SBL) distincte (d2b11c6c8).
Nouvelles fonctionnalités¶
Indicateurs d’automatisation. Les indicateurs
-auto_update(release/development/ chemin),-auto_eraseet-auto_runpermettent à l’IDE d’amorcer/effacer le micrologiciel puis d’exécuter le script ouvert à la connexion ; après une reconnexion du programme d’amorçage, l’IDE attend jusqu’à 10 s que la caméra se ré-énumère avant de continuer (b54affe79, f4e03d978).L’indicateur ``-disable_stop`` et une bascule de menu
stop on connect/disconnectpermettent aux utilisateurs de désactiver l’arrêt du script lors de la connexion ou de la déconnexion (02724ca7d).La bascule Stop Script on Connect/Disconnect (activée par défaut) découple la connexion/déconnexion de l’arrêt du script en cours d’exécution ; la reconnexion automatique est désormais désactivée par défaut (a0e78057f).
Invite de type de carte. Lorsqu’une carte connectée signale une architecture absente du mappage du micrologiciel, l’IDE invite désormais l’utilisateur à choisir le type de carte (en mémorisant le dernier choix) au lieu d’abandonner avec une erreur « Unsupported board architecture! » (b7165eb3d).
La coloration syntaxique Python OpenMV colore les modules, classes, données, fonctions, méthodes et arguments OpenMV connus à l’aide de listes de mots-clés alimentées par la documentation intégrée (801eab8a8, b4d481bf5).
~300 définitions de langages KSyntaxHighlighting sont fournies avec l’éditeur, de sorte que les fichiers source dans de nombreux langages sont colorés d’emblée (39674a4dc).
Les scripts d’exemple OpenMV intégrés (Hello World, capture, enregistrement vidéo, flux optique, caméras événementielles, obturateur global, FLIR Lepton, et plus encore) sont désormais inclus dans l’IDE et livrés avec celui-ci (938ac6bbe).
L’éditeur binaire/hexadécimal est activé pour que les utilisateurs puissent ouvrir et inspecter des fichiers binaires, avec sa barre d’outils allégée pour s’adapter à l’interface OpenMV (675bda966).
Comparaison de documents en mémoire. Les nouveaux fichiers et les exemples en lecture seule reçoivent désormais un fichier temporaire de sauvegarde afin que les documents non enregistrés puissent être comparés, et la boîte de dialogue de comparaison de fichiers externes mémorise le dernier dossier utilisé (5281e5f6c, 2934d5216).
Le plugin d’éditeur à onglets est réintégré, donnant à l’IDE une barre de documents à onglets ; la source du plugin minimap a été réintégrée mais laissée désactivée dans la compilation de cette version (0e8047372).
Le flashage de secours DfuSe et pydfu est rétabli pour les périphériques DFU qui ne peuvent pas être ciblés par numéro de série, avec une gestion automatique de l’effacement sans boîte de dialogue lors de la connexion (e42a5be7d).
Brûlage d’eFuse i.MX RT. La programmation du micrologiciel brûle désormais un eFuse (
efuse-program-once) pour les cartes de classe RT1060 (8053bb578, a6595f5f7).La page d’assistant Installations root sous Linux permet à l’utilisateur d’accepter ou de refuser l’installation élevée de la bibliothèque apt et l’installation des règles udev au lieu de les exécuter systématiquement (6bac80984).
Autres changements et améliorations¶
Analyse des ports série en arrière-plan. L’énumération des ports a été déplacée hors du thread d’interface vers un worker
ScanSerialPortsThreaddédié afin que l’IDE reste réactif pendant l’analyse (7be4dab26).Détection de périphériques plus large. L’analyse des ports a été refactorisée en un assistant réutilisable
filterPorts()qui intègre les périphériques picotool et i.MX DFU et reclasse les ports série de programme d’amorçage Arduino connus (anciens PID NRF/RPI et PID de chargeur) en périphériques DFU (25a5d30fd).Plus de solutions de repli pour le terminal. Lors du lancement des outils de lecture vidéo intégrés (Play Video File / Play RTSP Stream) sous Linux, l’IDE se replie désormais sur
lxterminal,konsoleetxfce4-terminalen plus dextermetgnome-terminal(df54007e0).Compte rendu des clés de carte. L’enregistrement de la caméra analyse désormais une réponse « Remaining N » pour indiquer à l’utilisateur combien de clés de carte il reste, et ajoute un message d’erreur distinct « Invalid Board Key for Board Type » (5759e73eb).
Téléchargements hébergés sur GitHub. Les vérifications de version et les téléchargements de ressources utilisent désormais
raw.githubusercontent.com/openmv/openmv-ide-versionet les versionsopenmv/openmv-ideau lieu deupload.openmv.io(994109c28).HTTPS partout. Toutes les requêtes web OpenMV (vérifications de version, enregistrement d’ID SWD, téléchargements de ressources et de micrologiciel) utilisent désormais
https://(54347cad0).Automatisation de la configuration sous Linux. L’installateur détecte les bibliothèques et règles udev manquantes et, si nécessaire, génère un fichier exécutable
setup.shcontenant les commandes exactes d’installation apt-get/pip et de règles udev (ainsi qu’unREADMEindiquant à l’utilisateur de l’exécuter) (c6dc705e6).Tolérance aux cartes lentes. Le terminal série porte son délai d’attente par lecture de 1 ms à 10 ms et émet un accusé de réception « OK » lorsqu’un script se termine (c935e4489).
Progression de flashage plus fluide. Les barres de progression du chargeur de micrologiciel passent désormais immédiatement de l’état indéterminé à 0-100 % plutôt qu’après le premier incrément de pourcentage, pour dfu-util, bossac, picotool et le flashage i.MX (19d947308, 86d021f92).
La récupération de programme d’amorçage ancien est réintégrée via un mode de programme d’amorçage non rapide qui envoie les commandes d’effacement/écriture sans le remplissage de synchronisation par requête du mode rapide (c20112c07).
Consoles d’outils plus propres. Les terminaux de flashage du micrologiciel (bossac, dfu-util, picotool, imx, outils vidéo) s’exécutent désormais comme des processus de console autonomes avec une sortie de commande mieux formatée (8053bb578).
Peaufinage de l’auto-complétion. La complétion distingue les classes, méthodes et fonctions avec des indications d’arguments séparées, utilise les icônes appropriées du modèle de code et respecte la portée publique/protégée/privée selon le préfixe de soulignement ; le processeur de complétion de mots-clés ignore également l’espace blanc en tête avant le curseur lors d’une complétion invoquée explicitement (manuellement) (8e9f967e7, 68b26b5fc).
Boîtes de dialogue consolidées. Les boîtes de dialogue ad hoc « Don’t show this again » d’OpenMV – y compris la boîte de dialogue d’information de démarrage
OpenMV Cam LED Colorsainsi que les invites de mise à niveau du micrologiciel et des exemples – sont unifiées sur des boîtes de dialogueCheckableMessageBox« Do Not Ask/Show Again », un bouton « Reset Do Not Ask/Show Again Dialogs » a été ajouté aux paramètres généraux, et les marqueurs de repli de code sont désactivés par défaut (9fdff9c6d).Marque adaptée au thème. Des écrans de démarrage en mode sombre, des logos de puces ST et NXP clairs/sombres dans la boîte À propos, des couleurs d’info-bulle en mode sombre et des couleurs d’icônes d’auto-complétion appropriées ont été ajoutés (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Nettoyage de la visionneuse d’images. Les actions partager, arrière-plan, contour et « définir par défaut » sont masquées, une action d’ajustement à l’écran a été ajoutée, et le dimensionnement des images animées a été corrigé (b37c55e25).
Nettoyage du menu contextuel. Les entrées « Show in File System View », « Open Terminal », « File Properties » et « Add/Delete UTF-8 BOM on Save » sont masquées (5d862c78e).
Terminal série sombre. Le terminal autonome utilise un véritable thème sombre avec des barres de défilement stylisées, des icônes de barre d’outils mises à jour et un rechargement correct des icônes de barre de défilement haute résolution (high-DPI) entre écrans (5c3af6880).
Nettoyage de la recherche. Le panneau de résultats reçoit un thème sombre, le sélecteur de moteur de recherche est masqué, les libellés sont simplifiés, et la recherche dans les fichiers cible par défaut le dossier Documents/OpenMV (20a806550).
Identité de l’application. L’IDE affiche désormais l’icône OpenMV appropriée sur le bureau, la barre de titre et la barre des tâches (avec gestion haute résolution (high-DPI) sous Windows), et l’identifiant de l’IDE a été remplacé par
openmvide(8ad1eed1f).Écran de démarrage haute résolution affiche une image de démarrage 2x sur les écrans Retina/à l’échelle 200 % (626ff673e).
Réparation de la barre d’actions. La barre d’actions de gauche (Nouveau fichier, Ouvrir, Enregistrer, Annuler, Rétablir, Couper, Copier, Coller) a été réparée et dotée d’icônes OpenMV personnalisées (b8479b5d0).
Logos de la boîte À propos. Les logos des partenaires Arduino et Edge Impulse sont désormais tous deux affichés (Edge Impulse était auparavant masqué) avec des variantes 2x haute résolution, et l’illustration de l’écran de démarrage intégrée a été mise à jour (
splash-small-2/splash-large-2) (5facd8d9a).Sélectionner le mot sous le curseur est activé ; les commandes Aller au début/à la fin du bloc (Ctrl+[ / Ctrl+]) et Sélectionner le bloc vers le haut/bas ont été brièvement réactivées (36ed5b1a8) mais laissées désactivées dans la version (626ff673e).
L’entrée de bureau Linux gagne une catégorie Electronics, un commentaire de description et des mots-clés de recherche (electronique embarquée, microcontrôleur, micropython, vision par ordinateur/industrielle) (470e5702e).
Migration des ressources. Les ressources utilisateur ont été déplacées vers un emplacement versionné (l’ancien dossier qtcreator est supprimé au démarrage), et les avertissements inoffensifs de fonte DirectWrite sous Windows sont supprimés (a04af5351, 70765dc2a).
Options internes masquées. Les options Core internes
-coloret-themesont masquées de la sortie d’aide, et le mode présentation a été réactivé (434c7b4cc).Réapplication des personnalisations du cœur à la barre d’actions/widget d’onglets élégant, au gestionnaire de messages/fenêtre de sortie, aux actions proxy, au surligneur de syntaxe et à l’éditeur de texte (0e8047372).
QCustomPlot 2.1.1. La bibliothèque de tracé intégrée a été mise à jour pour la compatibilité avec Qt 6.4 et la gestion correcte du changement dynamique de la résolution (DPI) d’affichage (8801415fe).
Nettoyages cosmétiques de l’interface des icônes de flèche de barre de défilement, de la barre d’état, des boutons de fermeture de la barre d’onglets de documents et de la largeur du défileur de l’éditeur ; l’indicateur « Display File Line Ending » de l’éditeur est désormais désactivé par défaut (e0c4d2325, 6a26f4430, e130988fb).
Corrections de bogues¶
Correction de la détection VID/PID sous Linux en lisant
/sys/class/tty/<port>/device/ueventpour obtenir les véritables VID/PID du périphérique, contournant le fait queQSerialPortInforenvoie les identifiants du concentrateur USB, de sorte que les caméras derrière des concentrateurs sont correctement détectées (28220b351).Correction du flashage du micrologiciel du programme d’amorçage sous Mac en assouplissant les assertions de taille de point de terminaison et en n’ajoutant le paquet de requête de synchronisation que lorsqu’une écriture fait exactement la taille d’un point de terminaison USB (86d021f92).
Correction des outils de lecture vidéo sous Linux : Play Video File / Play RTSP Stream sont désormais masqués sous Linux 32 bits et ARM (pas de ffplay intégré), avec une solution de repli gnome-terminal lorsque xterm n’est pas disponible, et le binaire ffmpeg pour macOS a été restauré depuis un espace réservé (d342649cc, d896f4225).
Augmentation des délais de début/fin de réinitialisation du programme d’amorçage de 0 à 5 pour éviter le chevauchement des commandes d’effacement et d’écriture pendant les mises à jour du micrologiciel (fabc168b6).
Rationalisation de la récupération du programme d’amorçage : forcer le programme d’amorçage pour réparer une caméra défectueuse saute les invites redondantes, et après une réinitialisation du programme d’amorçage DFU, l’IDE réessaie automatiquement la mise à jour au lieu de demander à l’utilisateur de se reconnecter (12b924088).
Possibilité d’interrompre en cours de transaction les commandes de vidage du tampon d’image/tampon TX par série (4a4afae1b).
Suppression du contournement d’abandon en cas de blocage de lecture du port série qui pouvait remplir les réponses avec des octets nuls, améliorant la fiabilité des transferts USB rapides (0ee1d8e91).
Correction du débogage WiFi et de la reconnexion automatique : les ports WiFi actualisent leur horodatage de dernière détection lors de la redécouverte, plusieurs bogues d’itérateur après effacement dans le retrait des ports WiFi et la détection DFU/programme d’amorçage ont été corrigés, et la reconnexion automatique attend désormais que l’IDE ne soit plus occupé avant de se reconnecter (cf0b67dc6).
Correction du convertisseur vidéo vers MJPEG afin qu’il analyse la fréquence d’images depuis la sortie de l’encodeur et écrive le delta en millisecondes par trame correct, de sorte que les vidéos converties se lisent à la bonne vitesse (4a7ad2057).
Correction du flashage du micrologiciel et des outils en ligne de commande intégrés qui échouaient à se lancer en forçant le backend QProcess et en corrigeant la garde de la boucle d’événements du processus bloquant (200fe9f3c).
Correction des icônes de branche développer/réduire de l’arborescence de l’éditeur de jeux de données pour qu’elles s’affichent correctement sur les écrans HiDPI en rechargeant la feuille de style des icônes lors d’un changement de ratio de pixels du périphérique (a0e78057f).
Les mises à jour de paquets/ressources redémarrent désormais automatiquement OpenMV IDE au lieu de simplement quitter après l’installation (178ee1b8e).
Correction de la mise en évidence des résultats de recherche et adaptation des actions de résultat de recherche/ouverture de fichier pour qu’elles se replient sur le premier éditeur visible lorsqu’il n’y a pas d’éditeur courant (48c402dfc).
Correction de la boîte de dialogue du chargeur de micrologiciel afin que son texte d’avertissement soit effacé et que la fenêtre soit correctement redimensionnée à la fin d’une opération de flashage (c505c6ade).
Correction de plusieurs bogues d’interface macOS : la barre d’onglets ne génère plus une avalanche d’erreurs de chargement d’icônes et s’affiche correctement à l’ouverture d’un fichier (9be8c58de, 5322cf968).
Correction du style de la barre d’état / du volet de sortie et de l’alignement de la ligne de base sous macOS et Linux (4fc4545de, d29b2baa0, a440d5cd8).
Correction de l’impression du code source afin que l’en-tête du titre de page ait des marges supérieures et latérales correctes au lieu de toucher le bord de la page (786d6012c).
Prise en charge des plateformes et des outils¶
Base Qt Creator : 10.0.1 (rebasée depuis 4.0.2).
OpenMV IDE : 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060) : le micrologiciel RT1062 initial, le chargeur flash, les images signées, l’entrée
imx.txtet les clés de configurationblhostdu programme d’amorçage sécurisé/eFuse ont été ajoutés dans le dossier de micrologicielOPENMV5(a6595f5f7) ; la carte a ensuite été consolidée dans un unique dossierOPENMV_RT1060, et une variante de carte Secure Bootloader (SBL) distincte (OpenMV_Cam_RT1062_SBL) a été ajoutée (d2b11c6c8, 5baf28c6e).La chaîne d’outils de flashage intégrée (blhost, bossac, dfu-util, dfuse + pilotes STM32, picotool, sdphost, ffmpeg, pilotes FTDI/Arduino) a été ré-intégrée pour Windows/macOS/Linux, les binaires Linux étant marqués comme exécutables (fbfa4903a, bfb6b32e2, 9551c64da).
DFU Linux ARM64 : un
dfu-utilaarch64 intégré ainsi que la détection arm64 dans la liste des périphériques et le téléchargement du micrologiciel permettent le flashage DFU sur des hôtes tels que le Raspberry Pi (16bc6fe0f, 470e5702e).La détection des périphériques i.MX fonctionne désormais sous Linux (analyse de
lsusb) et macOS (analyse deioreg), permettant le chargement du micrologiciel i.MX RT sur ces plateformes (e03ccbe71, 7cf505d09).Restriction par plateforme : l’utilisation d’i.MX est restreinte à Windows/macOS/Linux-x86_64 avec une erreur critique ailleurs, et le flashage Portenta/Nicla sous Linux ARM/ARM64 affiche un avertissement « DFU Util may not be stable on this platform » (9513f6475).
OpenGL sous Windows : le rendu logiciel a été restauré en intégrant
opengl32sw,Qt6OpenGLet la prise en charge OpenGL de Qt6Gui dans le paquet déployé (aaaa1928f).Dossiers/ids de cartes Arduino renommés. Les dossiers de micrologiciel et les ids de carte
boards.txtdes Portenta, Nicla Vision et Nano 33 BLE Sense ont été renommés enARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONetARDUINO_NANO_33_BLE_SENSE(a70d6562a) ; le dossier/id de carte Nano 33 BLE Sense a ensuite été mis en minuscules enarduino_nano_33_ble_sensepour correspondre au nom de carte signalé par le périphérique (22750d8c7, a801a81de).Chargeurs flash du programme d’amorçage OPENMV_RT1060 (
blhost_flash_loader.bin,sdphost_flash_loader.bin) ont été mis à jour (5baf28c6e).QCustomPlot : 2.1.1 (bibliothèque de tracé intégrée) (8801415fe).
Les images de micrologiciel sur disque ont été ré-intégrées pour toutes les cartes OpenMV/Arduino prises en charge (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, ainsi que le micrologiciel WiFiWINC1500), avec les images de micrologiciel et, le cas échéant, de programme d’amorçage/uvc (fbfa4903a).
Changements incompatibles¶
Il s’agit de changements de flux de travail et de comportement visibles par l’utilisateur ; le rebase sur Qt Creator 10.0.1 en lui-même ne casse pas les projets ni les scripts des utilisateurs.
Les définitions de carte i.MX RT1060 ont changé. Les entrées
EVKBMIMXRT1060etOPENMV5ont été remplacées par une unique carteOPENMV_RT1060(OpenMV Cam RT1062, plus une variante SBL), et les anciens dossiers de micrologiciel ont été supprimés (d2b11c6c8).Le délai d’expiration par défaut des réponses aux commandes est de 10000 ms (il était de 5000 ms dans la 4.0.0) ; le texte d’aide de
-override_read_timeouta été mis à jour en conséquence (4a4afae1b).Le comportement de connexion/déconnexion a changé. La reconnexion automatique est désormais désactivée par défaut, et la connexion ou la déconnexion n’arrête plus le script en cours d’exécution par défaut, sauf si la nouvelle bascule « Stop Script on Connect/Disconnect » est activée (elle est activée par défaut) (a0e78057f).
Le flux de mise à jour redémarre l’IDE. Les mises à jour de paquets/ressources redémarrent désormais OpenMV IDE automatiquement au lieu de quitter après l’installation (178ee1b8e).
Ids de cartes Arduino renommés. Les ids de carte
boards.txtet les dossiers de micrologiciel des Portenta, Nicla Vision et Nano 33 BLE Sense ont été renommés enARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONetARDUINO_NANO_33_BLE_SENSE(ce dernier ensuite mis en minuscules enarduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).