SerialTool avec Python®.


Table des matières


Qu'est-ce que Python ?

Python® est un langage de programmation de haut niveau, orienté objet et interprété, avec une sémantique dynamique. Ses structures de données de haut niveau intégrées, combinées à une typographie dynamique et une liaison dynamique, le rendent très attrayant pour le développement rapide d'applications, ainsi que pour une utilisation comme langage de script ou de colle pour connecter des composants existants ensemble.
La syntaxe simple et facile à apprendre de Python met l'accent sur la lisibilité et réduit donc le coût de la maintenance des programmes. Python prend en charge les modules et les packages, ce qui encourage la modularité des programmes et la réutilisation du code. L'interpréteur Python et la vaste bibliothèque standard sont disponibles gratuitement sous forme source ou binaire pour toutes les principales plateformes et peuvent être librement distribués.
Pour plus d'informations détaillées sur Python®, veuillez consulter leur site Web : www.python.org

Avis légal : "Python" est une marque déposée de la PSF. SerialTool n'est pas affilié ni sponsorisé par la PSF. SerialTool utilise Python comme un langage de programmation compatible pour exécuter des scripts et nécessite une version officielle de Python installée sur votre PC.

SerialTool et Python

Éditeur de code Python pour SerialTool.


Avez-vous déjà voulu utiliser le port série et disposer d'une interface graphique fantastique capable d'afficher des données de et vers le port série ?
Si vous en avez besoin et souhaitez créer votre propre programme pour contrôler facilement le port série sans avoir à installer de bibliothèques dans un langage simple accessible à tous, SerialTool avec Python est l'outil que vous recherchiez.
Certains programmes utilisant le port série offrent des solutions de script, ce qui signifie que vous pouvez écrire votre code et l'exécuter, mais très souvent vous ne connaissez pas le langage ou vous devez passer des heures à comprendre comment intégrer quelques lignes de votre code ! Avec SerialTool et Python intégré, vous pouvez écrire votre script en Python et profiter de toutes les fonctionnalités de SerialTool sans aucune limite.
SerialTool intègre des fonctions de base sous forme de bibliothèque (déjà importée et intégrée), et avec quelques lignes, vous pouvez rechercher le port série désiré, l'ouvrir, lire et écrire. SerialTool gérera toute la gestion graphique des paquets entrants et sortants et vous permet d'utiliser votre code Python pour effectuer les fonctions que vous désirez sans aucune limite.
Pour faciliter la rédaction et les tests en Python, SerialTool fournit un éditeur de texte où vous pouvez télécharger et modifier vos scripts. L'éditeur intégré reconnaît la syntaxe Python et permet une rédaction facile du code.

Plus de détails sur le port série et Python

En approfondissant les fonctionnalités offertes par SerialTool et sa bibliothèque Python intégrée, commençons par un exemple pratique.
Vous avez l'intention de livrer à un client ou à un collègue un logiciel qui permet le téléchargement de firmware sur un dispositif créé par nous et mis à jour via le port série. Un scénario assez courant dans lequel il faut créer un logiciel à partir de zéro, éventuellement multiplateforme, et intégrer une série d'aspects à partir de l'interface graphique et de l'interaction utilisateur, de la sélection de fichiers et des messages d'erreur ou de confirmation.
Dans ce cas, contrairement à d'autres langues, Python facilite le travail mais nécessite en même temps l'installation et le suivi des mises à jour des bibliothèques externes.
SerialTool résout le problème à sa base en offrant quelques fonctions simples qui permettent une sélection rapide et intuitive du port série, des boîtes de dialogue pour le chargement et l'enregistrement des fichiers, et des boîtes de messages pour informer l'utilisateur de l'exécution du programme.
Ce sont des fonctions très simples qui sont rapidement appelées, natives sur les plateformes où SerialTool peut être installé (Windows, MacOS et Linux). Cela élimine complètement les dépendances aux bibliothèques externes, et les fonctions de base d'interaction avec l'utilisateur sont rendues simples, rapides et intuitives en très peu de lignes de code.

Revenant à notre exemple de base, nous commençons par fermer tous les ports actifs et en recherchant les ports série disponibles en utilisant la fonction SerialTool.scan et la sélection du port série par l'utilisateur avec la fonction SerialTool.gui_selectport.
À ce stade, nous savons le port que notre utilisateur veut utiliser, tout ce que nous avons à faire est de l'ouvrir en utilisant la fonction SerialTool.open avec les paramètres ou avec des paramètres déjà existants dans l'interface utilisateur graphique. Une fois le port série ouvert, nous pouvons demander que le fichier soit chargé en utilisant la fonction SerialTool.gui_loadfile, ouvrir le fichier en utilisant les fonctions natives en Python, et demander la confirmation pour l'exécution du téléchargement du firmware avec la fonction SerialTool.gui_showmessage.
Nous avons atteint le moment où nous écrivons le tampon présent dans notre fichier avec SerialTool.write en indiquant le nombre de octets à écrire et attendons la réponse (si attendue) du dispositif à mettre à jour avec la commande SerialTool.read jusqu'à la fin de notre mise à jour.
Peu de commandes simples qui permettent en quelques minutes d'écrire votre propre programme pour mettre à jour votre dispositif ou un dispositif tiers.
Cela vous semble-t-il compliqué ? SerialTool fournit des exemples bien commentés intégrés.

Exemples intégrés pour le port série en Python

Pour faciliter la compréhension et l'obtention de résultats, SerialTool intègre directement des exemples fonctionnels et commentés qui favorisent l'utilisation immédiate des fonctions intégrées. Un énorme avantage est donné par le fait que les fonctions intégrées ne nécessitent aucune bibliothèque Python externe pour fonctionner sur un port série.
Avec l'installation de base de Python, notre exemple est déjà fonctionnel. Dans les exemples fournis, toutes les fonctions disponibles dans la bibliothèque SerialTool pour Python intégrées dans notre logiciel sont disponibles. Il suffira d'adapter certaines parties du code proposé pour la personnalisation de vos scripts et en quelques minutes, votre programme pour le port série est développé.
Les exemples déjà proposés dans SerialTool seront intégrés version par version pour avoir toujours un aperçu direct des fonctions disponibles et de leur mise en œuvre sans avoir à chercher sur Internet.
Une documentation dédiée aux fonctions de SerialTool est disponible sur notre page API SerialTool pour Python.

Installation de Python

De nombreux tutoriels commencent par l'installation de Python sur votre PC si elle n'est pas déjà disponible, et la configuration pour pouvoir arriver à un minimum d'usabilité. Nous avons laissé cette partie pour la fin parce que SerialTool à travers le menu Environnement Python recherchera et testera la configuration existante pour vous une fois Python installé sur votre PC.
Comme mentionné, Python est un langage libre et interprété et nécessite l'installation de l'interprète sur votre PC. Pour ceux qui connaissent déjà ce langage, il n'y a pas beaucoup d'explications à donner, cependant pour ceux qui devraient essayer pour la première fois ce langage étonnant et son environnement de développement, les étapes à suivre sont assez simples.
Pour Windows, il suffit de télécharger la dernière version de Python (3.12 au moment de la rédaction de ce document) et d'exécuter l'exécutable jusqu'à son installation complète.
Pour MacOS, Python devrait déjà être installé probablement en se référant à la version 2 de Python et il est nécessaire de le mettre à jour à la dernière version (3.12 au moment de la rédaction de ce document) en téléchargeant l'exécutable directement depuis le site officiel de Python et en procédant à l'installation (comme sous Windows).

Note pour les utilisateurs de MacOS: Dans la version actuelle de SerialTool pour MacOS, le framework Python 3.12 est déjà intégré pour se conformer aux exigences d'Apple en matière de signature de code. Si vous souhaitez utiliser une version différente installée sur votre système, vous pouvez modifier les paramètres depuis le menu "Python Environment".

Pour Linux, il sera nécessaire de l'installer via la ligne de commande Ubuntu sudo apt-get install python3 ou Fedora sudo dnf install python3
Si vous avez des doutes ou des difficultés à installer Python, vous pouvez toujours consulter le site officiel ou les dizaines de tutoriels disponibles en ligne.

Configuration et configuration de l'environnement Python.


Une fois installé et vérifié l'installation depuis le menu "Environnement Python", il suffira de presser le bouton "Vérifier l'Installation" pour importer la configuration actuelle de Python et la sauvegarder pour les démarrages ultérieurs de SerialTool.

Vous êtes prêt ! Chargez les premiers exemples et appuyez sur le bouton [RUN] pour commencer votre aventure avec SerialTool et Python en écrivant votre premier programme pour le port série.

Informations supplémentaires

Pour faciliter la rédaction de scripts, l'éditeur incorporé possède les caractéristiques typiques d'un IDE mais ne permet pas le débogage pour le moment.
Parmi les options disponibles, il est conseillé de toujours sélectionner l'option "Fermer automatiquement les ports série lorsque le script termine son exécution." Si votre script rencontre des erreurs d'écriture, SerialTool prévoit la fermeture de tout port série ouvert pour éviter d'avoir à les fermer lors des démarrages ultérieurs du script.
Pour arrêter le script et sortir, il n'est pas conseillé d'utiliser la fonction sys.exit() car cela provoquerait la fermeture totale de SerialTool puisque Python est intégré. Si nécessaire pour arrêter l'exécution du script via le code source, la fonction SerialTool.stopscript est fournie.
Si vous vous trouvez à l'intérieur d'une boucle, il est possible d'arrêter l'exécution via le bouton [STOP] directement depuis l'interface graphique.
Étant donné que Python est intégré directement dans SerialTool, il est important de se rappeler que votre script devient partie intégrante des processus de SerialTool. À cet égard, lorsque vous incluez des boucles While True dans votre cycle, il est crucial de les associer à un petit sommeil (typiquement 0,1 seconde) en utilisant la fonction time.sleep(0.1) (de la bibliothèque time) pour permettre l'exécution des divers processus principaux de l'interface graphique ; sinon, vous risquez de geler complètement l'application.
Ne vous inquiétez pas excessivement, car nos exemples mettent en évidence les points critiques où insérer ces petits délais.

FAQ

L'intégration de Python est-elle limitée à certaines fonctionnalités ?
NON. Toutes les fonctionnalités des scripts Python sont directement disponibles, y compris le chargement de bibliothèques externes (si présentes dans le système).

SerialTool et Python fonctionnent-ils sur tous les systèmes d'exploitation ?
OUI. Sur toutes les plateformes où SerialTool est disponible et où Python est disponible, son utilisation est possible, c'est-à-dire Windows, MacOS et Linux.

Dois-je nécessairement télécharger et installer Python ?
OUI. L'interpréteur Python doit être présent sur le PC où il est destiné à être utilisé. SerialTool est basé sur Python3 et la compatibilité rétroactive avec Python2 dépend directement de la compatibilité des deux versions. Il est recommandé aux utilisateurs de Python2 d'utiliser Python3 dans tous les cas.

Comment Python interagit-il avec SerialTool ?
Le script Python interagit à travers la bibliothèque SerialTool directement intégrée dans notre logiciel en appelant les fonctions souhaitées. Les paramètres définis via Python, y compris l'ouverture et la fermeture du port série, sont directement liés à l'interface utilisateur principale. Essentiellement, vous pilotez SerialTool directement depuis Python à travers la bibliothèque SerialTool et ses fonctions.

Puis-je continuer à utiliser les fonctions de SerialTool ?
OUI. Toutes les fonctions de SerialTool restent disponibles, AutoAnswer, Alarm, SerialScope, Affichage des paquets, Enregistrement des données, Envoi de paquets au réseau, etc. sont et restent disponibles et sélectionnables depuis l'interface utilisateur.

Est-il possible d'utiliser plusieurs ports simultanément ?
OUI. La caractéristique de base de SerialTool est la gestion de plusieurs ports série simultanément. Depuis Python, il est possible d'assigner le numéro de série à utiliser au port série que vous souhaitez utiliser via la fonction SerialTool.assignPort.

Dois-je toujours utiliser l'interface graphique pour ouvrir et configurer les ports avant utilisation ?
NON. Comme réitéré, la gestion des ports série est directement disponible directement depuis Python.

Puis-je également régler les paramètres RTS et DTR ?
OUI. La bibliothèque vous permet de piloter directement le réglage des broches RTS et DTR lors de l'ouverture du port série et pendant l'exécution du script.

Puis-je demander l'implémentation d'autres fonctions dans la bibliothèque SerialTool ?
OUI. Toute implémentation supplémentaire de fonctions supplémentaires pour la bibliothèque SerialTool sur Python sera prise en considération et mise en œuvre, lorsque possible et selon les dynamiques de développement de SerialTool.

Quel type de soutien puis-je avoir ?
Notre équipe est disponible pour vous aider à intégrer vos scripts pour faciliter la rédaction de vos scripts ou identifier toute erreur. Le soutien n'est pas inclus dans la rédaction de scripts Python réels ou sur commande. Le soutien est lié à l'intégration de Python avec SerialTool.