13.1.4. Exécution de scripts

Le bouton de démarrage – la flèche verte sous le bouton de connexion, ou Ctrl+R – envoie le script de l’onglet d’éditeur courant à la caméra connectée et l’exécute. Pendant qu’un script s’exécute, le bouton de démarrage devient un bouton d’arrêt qui le stoppe. Ces deux boutons constituent la boucle centrale de tout développement sur la caméra : éditer, démarrer, observer, arrêter, éditer à nouveau.

Deux détails de cette boucle sont importants. D’abord, le script est envoyé dans la RAM de la caméra et exécuté là-bas – démarrer un script n’écrit rien dans le stockage de la caméra, et le script disparaît après une réinitialisation. Ensuite, ce qui s’exécute est l”onglet d’éditeur courant, exactement tel qu’affiché, enregistré ou non. Il n’y a pas d’étape de téléversement distincte ni de copie obsolète sur la caméra qui se désynchroniserait avec votre éditeur.

Pendant qu’un script s’exécute, sa sortie print() est diffusée dans le terminal série et chaque trame qu’il capture apparaît dans la visionneuse du tampon d’image. Lorsqu’un script lève une exception non gérée, la trace d’appel s’affiche dans le terminal série et l’IDE positionne l’éditeur sur la ligne fautive – pour une application multifichier, il ouvre d’abord le fichier nommé depuis le lecteur de la caméra.

13.1.4.1. Rendre un script permanent

Pour que la caméra exécute un script sans l’IDE – à la mise sous tension, de manière autonome, sur le terrain – stockez le script sur la caméra sous le nom main.py. Tools → Save open script to OpenMV Cam (as main.py) écrit l’onglet d’éditeur courant sur le lecteur de la caméra sous ce nom, en proposant au passage de supprimer les commentaires et de compresser les espaces – ce qui réduit le fichier mais livre une copie illisible – et Tools → Reset OpenMV Cam redémarre la caméra afin qu’elle démarre sur le script stocké. Ensemble, ils constituent l’étape de déploiement : dès lors, la caméra exécute votre script chaque fois qu’elle est alimentée, avec ou sans IDE.

Pendant qu’une caméra réinitialisée exécute son main.py stocké, l’IDE peut toujours s’y connecter – avec Stop Script on Connect/Disconnect activé (par défaut), la connexion stoppe le script stocké et rend le contrôle à l’éditeur.

Voir aussi

Geler des scripts dans le micrologiciel pour ce que signifie main.py dans la séquence de démarrage de la caméra, et pour déplacer une application terminée hors du stockage modifiable entièrement.

13.1.4.2. Le lecteur de la caméra

Le système de fichiers en mémoire flash de la caméra (et la carte SD, lorsqu’elle est insérée) se monte sur l’hôte comme un lecteur flash USB. Tools → Open OpenMV Cam Drive folder l’ouvre dans votre gestionnaire de fichiers. C’est là que vous copiez les modules de bibliothèque, les fichiers de modèle et les ressources que le script importe ou charge, et c’est là que vous récupérez les images et les journaux qu’il a enregistrés. Le chemin du lecteur apparaît également dans la barre d’état.

Les fichiers qu’un script crée n’apparaissent pas immédiatement sur l’hôte : l’hôte met en cache le système de fichiers à partir du moment où le lecteur est monté, de sorte qu’une capture enregistrée par le script en cours d’exécution reste invisible jusqu’à ce que le lecteur soit remonté. Tools → Reset OpenMV Cam le remonte – le moyen rapide d’accéder à ce que le script vient d’écrire.

Une mise en garde : la caméra et l’hôte partagent ce système de fichiers, et des écritures simultanées des deux côtés peuvent le corrompre. Copiez les fichiers lorsqu’aucun script n’écrit dans le stockage, et éjectez proprement avant de retirer la carte.