v4.8.11¶
v4.8.11 est une version axée sur la stabilité et la correction, centrée sur la robustesse sous macOS, la sérialisation des outils externes et la fiabilité des mises à jour du micrologiciel. Elle est construite sur Qt Creator 14.0.2 (inchangé par rapport à la version précédente) et ne contient aucun changement cassant pour les projets des utilisateurs.
Points forts¶
Renforcement contre les plantages macOS — élimination d’un abandon silencieux et intermittent de type
NSRangeExceptioncausé par la mise à jour des sélections d’arborescences, de listes ou de listes déroulantes avant qu’un panneau ou une fenêtre contextuelle ne soit entièrement construit ou en plein rafraîchissement asynchrone, dans la liste déroulante de la vue d’ensemble, les hiérarchies d’appels et de types, les fenêtres contextuelles de complétion et de localisation, l’arborescence du projet, et plus encore.Outils externes sérialisés — la boîte de dialogue de progression du chargeur est désormais modale au niveau de l’application et suspend toute interrogation des périphériques, de sorte que l’exécution de dfu-util, bossac, picotool et des autres outils ne peut plus être réentrée par le flux de la caméra ou la reconnexion automatique.
Mises à jour fiables du micrologiciel — la reconnexion automatique ne peut plus détourner une mise à jour du micrologiciel en plein flashage, ce qui auparavant interrompait la véritable continuation et faisait apparaître une boîte de dialogue DFU parasite.
Sécurité de Hello World — connecter une carte n’écrase plus occasionnellement un programme Hello World dans lequel vous avez tapé, grâce à une comparaison avec une capture vierge plutôt qu’avec le drapeau « modifié » peu fiable.
Erreurs DFU plus claires — l’erreur « no matching interface » nomme désormais la carte détectée et les noms de fichiers de micrologiciel qu’elle accepte au lieu d’afficher un VID/PID brut.
Nouvelles fonctionnalités¶
ST Edge AI (STM32N6) produit désormais le binaire réseau relocalisable directement via le mode
--relocatabledu compilateur, supprimant l’étape de relocalisation Python distincte ainsi que le champ supplémentaire Relocation CLI Options de la boîte de dialogue (7613135c5).
Autres changements et améliorations¶
Les erreurs d’interface DFU nomment désormais la carte détectée et listent les noms de fichiers de micrologiciel que cette carte accepte, avec des conseils pour renommer ou choisir le bon fichier, au lieu d’afficher un VID/PID brut (ac509b369).
Les raccourcis de navigation par onglets sous macOS utilisent désormais les combinaisons accessibles
Cmd+Shift+[/Cmd+Shift+](précédent/suivant) etCmd+Alt+[/Cmd+Alt+](déplacer) au lieu des inutilisablesCtrl+PageUp/Ctrl+PageDown; les raccourcis Windows et Linux sont inchangés (6c09e10b1).Les requêtes de licence/carte vers
upload.openmv.io(check.php,insert.php,register.php) envoient désormais unUser-Agentde style navigateur propre à chaque plateforme afin que le serveur de licences puisse identifier le système d’exploitation du client (6bfd74b36).
Corrections de bogues¶
Correction d’un plantage macOS intermittent (un abandon silencieux de type
NSRangeExceptionsans boîte de dialogue de plantage) où la mise à jour des sélections d’arborescences, de listes ou de listes déroulantes alors qu’un panneau ou une fenêtre contextuelle était encore masqué ou en plein rafraîchissement asynchrone indexait dans un cache d’accessibilité Cocoa non construit. La sélection, le défilement et le déploiement sont désormais différés ou protégés dans la liste déroulante de la vue d’ensemble, les hiérarchies d’appels et de types, la fenêtre contextuelle de complétion de code, la fenêtre contextuelle de localisation, la boîte de dialogue Save Items, l’arborescence du projet, la navigation dans les dossiers, Open Documents, la liste Issues/Tasks et la liste déroulante de la vue arborescente (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).Correction d’un plantage macOS distinct (
NSRangeException/SIGABRT) dans la liste déroulante de la vue d’ensemble du code, causé par un index obsolète hors limites lorsque le serveur de langage Python rafraîchissait les symboles de manière asynchrone ;setCurrentIndexrevalide désormais les limites de ligne/colonne par rapport au modèle en direct (3e0ce89f1).Renforcement de l”éditeur de modèles ROMFS et de l”éditeur de jeux de données contre les conditions de concurrence asynchrones de
QFileSystemModelen différant le pré-déploiement de l’arborescence jusqu’à ce que le répertoire ait fini de se charger, et en ne sélectionnant les fichiers/dossiers/modèles nouvellement créés qu’une fois que le modèle dispose d’un index valide pour eux (5eaa91aff).Les opérations d’outils externes (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, conversion vidéo) ne permettent plus au flux de la caméra ou au travail en file d’attente de réentrer une opération de périphérique derrière l’outil en cours d’exécution : la boîte de dialogue de progression du chargeur est désormais modale au niveau de l’application et l’interrogation des périphériques est entièrement suspendue pendant son affichage (3069e8ec0).
La reconnexion automatique ne détourne plus une mise à jour du micrologiciel en plein flashage grâce à un drapeau persistant « mise à jour du micrologiciel en cours » verrouillé pendant toute l’opération forcée/programme d’amorçage/effacement, que le minuteur de reconnexion vérifie désormais également (b7745484a).
Connecter une carte n’écrase plus occasionnellement un programme Hello World dans lequel vous avez tapé, grâce à une comparaison du document en direct avec une capture vierge réalisée à l’ouverture, au lieu de s’appuyer sur le drapeau « modifié » peu fiable avant la synchronisation automatique de l’exemple propre à chaque capteur (6f4539d44).
Faire défiler vers le haut dans le terminal série pendant une sortie continue rapide ne ramène plus brusquement la vue vers le bas : les chemins d’ajout suivent désormais le drapeau d’intention de défilement de l’utilisateur au lieu de redériver l’état « en bas » à partir d’une position de barre de défilement que chaque bloc venait de réépingler (9aea0f1a2).
Escapeferme désormais de manière fiable la boîte de dialogue Code Profiler quel que soit le widget enfant qui a le focus (203ffd1e6).Sous macOS, les raccourcis clavier des menus et commandes globaux fonctionnent désormais dans toute l’application au lieu d’agir uniquement lorsque l’éditeur avait le focus, grâce au rattachement de la barre de menus masquée à la fenêtre principale sur toutes les plateformes (6d52cbe73).
L’interpréteur Python intégré est désormais imposé comme valeur par défaut à chaque lancement, de sorte qu’une valeur par défaut persistante obsolète ne désactive plus silencieusement le serveur de langage Python (complétion et indications d’appel) (1d5069a52).
Renforcement des E/S des paramètres OpenMV contre la réentrance :
beginGroup/endGroupsur l’objet de paramètres global partagé (qui génère des boîtes de dialogue modales et exécute des boucles d’événements imbriquées) sont remplacés par des chemins de clés complets, de sorte qu’un accès réentrant aux paramètres pendant une boîte de dialogue modale ne peut plus mal classer les clés sous le mauvais groupe. Les chemins sur disque sont identiques au niveau des octets, de sorte que les paramètres des utilisateurs existants sont préservés à l’identique (91e78a9e3, f4bb9f48c).Correction d’une régression où plusieurs boîtes de dialogue et utilitaires recevant l’objet de paramètres partagé effectuaient des E/S à clé nue à la racine des paramètres au lieu de sous
OpenMV/, perdant la géométrie de fenêtre du model zoo, son séparateur et son état déployé, ainsi que l’état des six boîtes de dialogue de chargeur (dfu-util, imx, bossac, alif, picotool et ST Cube Programmer) ainsi que les options des compilateurs mpy-cross, vela et ST Edge AI ; le groupe est désormais intégré à chaque clé afin que le bon chemin soit utilisé (258448bdf).
Prise en charge des plateformes et des outils¶
Base Qt Creator : 14.0.2.
OpenMV IDE version portée à 4.8.11.
Changements cassants¶
Aucun. Tous les changements sont des corrections de bogues et des améliorations posées sur la base Qt Creator 14.0.2 existante ; les projets et flux de travail existants ne sont pas affectés.