SerialTool mit Python®.


Inhaltsverzeichnis


Was ist Python?

Python® ist eine interpretierte, objektorientierte, höhere Programmiersprache mit dynamischer Semantik. Ihre hochentwickelten eingebauten Datenstrukturen, kombiniert mit dynamischer Typisierung und Bindung, machen sie sehr attraktiv für die schnelle Anwendungsentwicklung sowie als Skript- oder Verbindungssprache zur Verknüpfung bestehender Komponenten.
Pythons einfache, leicht zu erlernende Syntax betont die Lesbarkeit und reduziert daher die Kosten der Programmwartung. Python unterstützt Module und Pakete, was die Modularität des Programms und die Wiederverwendung von Code fördert. Der Python-Interpreter und die umfangreiche Standardbibliothek sind in Quell- oder Binärform für alle wichtigen Plattformen kostenlos verfügbar und können frei verteilt werden.
Für detailliertere Informationen über Python® besuchen Sie bitte ihre Website: www.python.org

Rechtlicher Hinweis: "Python" ist eine eingetragene Marke der PSF. SerialTool ist nicht mit der PSF verbunden oder von ihr gesponsert. SerialTool verwendet Python als kompatible Programmiersprache zum Ausführen von Skripten und erfordert eine offizielle Version von Python, die auf Ihrem PC installiert ist.

SerialTool und Python

Python-Code-Editor für SerialTool.


Wollten Sie jemals die serielle Schnittstelle nutzen und dabei eine fantastische grafische Schnittstelle zur Verfügung haben, die Daten von und zur seriellen Schnittstelle anzeigen kann?
Wenn Sie dies benötigen und Ihr eigenes Programm erstellen möchten, um die serielle Schnittstelle einfach zu steuern, ohne Bibliotheken in einer einfach zugänglichen Sprache installieren zu müssen, ist SerialTool mit Python das Werkzeug, das Sie gesucht haben.
Einige Programme, die die serielle Schnittstelle nutzen, bieten einige Skriptlösungen an, was bedeutet, dass Sie Ihren Code schreiben und ausführen lassen können, aber sehr oft kennen Sie die Sprache nicht oder Sie müssen Stunden damit verbringen herauszufinden, wie Sie ein paar Zeilen Ihres Codes integrieren können! Mit SerialTool und eingebettetem Python können Sie Ihr Skript in Python schreiben und alle Funktionen von SerialTool ohne Einschränkungen nutzen.
SerialTool integriert grundlegende Funktionen in Form einer Bibliothek (bereits importiert und integriert), und mit wenigen Zeilen können Sie den gewünschten seriellen Port suchen, öffnen, lesen und schreiben. SerialTool verwaltet die gesamte grafische Verwaltung eingehender und ausgehender Pakete und ermöglicht es Ihnen, Ihren Python-Code zur Ausführung der gewünschten Funktionen ohne Einschränkungen zu verwenden.
Um das Schreiben und Testen in Python zu erleichtern, bietet SerialTool einen Texteditor, in dem Sie Ihre Skripte hochladen und ändern können. Der integrierte Editor erkennt die Python-Syntax und ermöglicht eine einfache Codeerstellung.

Mehr Details über serielle Schnittstellen und Python

Wenn wir tiefer in die Funktionen eintauchen, die SerialTool und seine integrierte Python-Bibliothek bieten, beginnen wir mit einem praktischen Beispiel.
Sie beabsichtigen, einem Kunden oder Kollegen eine Software zu liefern, die das Hochladen von Firmware auf ein von uns erstelltes und über die serielle Schnittstelle aktualisierbares Gerät ermöglicht. Ein recht häufiges Szenario, bei dem man eine Software von Grund auf neu erstellen muss, möglicherweise plattformübergreifend, und eine Reihe von Aspekten integrieren muss, beginnend mit der grafischen Schnittstelle und der Benutzerinteraktion, der Dateiauswahl und Fehler- oder Bestätigungsnachrichten.
In diesem Fall macht Python die Arbeit im Gegensatz zu anderen Sprachen einfach, erfordert aber gleichzeitig, dass externe Bibliotheken installiert und aktualisiert werden.
SerialTool löst das Problem von Grund auf, indem es einige einfache Funktionen bietet, die eine schnelle und intuitive Auswahl des seriellen Ports, Dialogfelder zum Laden und Speichern von Dateien und Nachrichtenfelder zur Information des Benutzers über die Programmausführung ermöglichen.
Diese sind sehr einfache Funktionen, die schnell aufgerufen werden, native auf den Plattformen, auf denen SerialTool installiert werden kann (Windows, MacOS und Linux). Dies beseitigt vollständig Abhängigkeiten von externen Bibliotheken, und die grundlegenden Funktionen der Benutzerinteraktion werden einfach, schnell und intuitiv in sehr wenigen Codezeilen gemacht.

Zurück zu unserem Grundbeispiel beginnen wir damit, alle aktiven Ports zu schließen und nach verfügbaren seriellen Ports zu suchen, indem wir die Funktion SerialTool.scan verwenden und die Benutzerauswahl des seriellen Ports mit der Funktion SerialTool.gui_selectport verwenden.
Zu diesem Zeitpunkt kennen wir den Port, den unser Benutzer verwenden möchte, alles, was wir tun müssen, ist, ihn mit der Funktion SerialTool.open zu öffnen, mit den Parametereinstellungen oder mit Parametern, die bereits in der GUI vorhanden sind. Sobald der serielle Port geöffnet ist, können wir die Datei anfordern, die geladen werden soll, indem wir die Funktion SerialTool.gui_loadfile verwenden, die Datei mit den in Python vorhandenen nativen Funktionen öffnen und die Bestätigung für die Ausführung des Firmware-Downloads mit der Funktion SerialTool.gui_showmessage anfordern.
Wir haben den Moment erreicht, in dem wir den in unserer Datei vorhandenen Puffer mit SerialTool.write schreiben, indem wir die Anzahl der zu schreibenden Bytes angeben und auf die Antwort (falls erwartet) des zu aktualisierenden Geräts mit dem Befehl SerialTool.read warten, bis unser Update abgeschlossen ist.
Wenige und einfache Befehle, die es in wenigen Minuten ermöglichen, Ihr eigenes Programm zum Aktualisieren Ihres Geräts oder eines Geräts eines Drittanbieters zu schreiben.
Klingt das kompliziert? SerialTool bietet integrierte, gut kommentierte Beispiele.

Integrierte Beispiele für serielle Schnittstellen in Python

Um das Verständnis und die Erzielung von Ergebnissen zu erleichtern, integriert SerialTool direkt funktionale und kommentierte Beispiele, die die sofortige Nutzung der integrierten Funktionen fördern. Ein großer Vorteil besteht darin, dass die integrierten Funktionen keine externen Python-Bibliotheken benötigen, um einen seriellen Port zu betreiben.
Mit der Basisinstallation von Python ist unser Beispiel bereits funktionsfähig. In den bereitgestellten Beispielen sind alle Funktionen verfügbar, die in der SerialTool-Bibliothek für Python in unserer Software integriert sind. Es reicht aus, einige Teile des vorgeschlagenen Codes für die Anpassung Ihrer Skripte anzupassen, und in wenigen Minuten ist Ihr Programm für die serielle Schnittstelle entwickelt.
Die bereits vorgeschlagenen Beispiele in SerialTool werden von Version zu Version integriert, um immer einen direkten Überblick über die verfügbaren Funktionen und deren Implementierung zu haben, ohne im Internet suchen zu müssen.
Spezielle Dokumentation zu SerialTool-Funktionen ist auf unserer SerialTool API für Python Seite verfügbar.

Installation von Python

Viele Tutorials beginnen mit der Installation von Python auf Ihrem PC, wenn es noch nicht vorhanden ist, und der Konfiguration, um ein Minimum an Benutzbarkeit zu erreichen. Wir haben diesen Teil für den Schluss aufgehoben, weil SerialTool über das Python-Umgebungsmenü die vorhandene Konfiguration für Sie sucht und testet, sobald Python auf Ihrem PC installiert ist.
Wie erwähnt, ist Python eine freie und interpretierte Sprache und erfordert den Interpreter, der auf Ihrem PC installiert ist. Für diejenigen, die mit dieser Sprache vertraut sind, gibt es nicht viele Erklärungen zu geben, jedoch für diejenigen, die diese erstaunliche Sprache und ihre Entwicklungsumgebung zum ersten Mal ausprobieren sollten, sind die Schritte ziemlich einfach.
Für Windows laden Sie einfach die neueste Version von Python (3.12 zum Zeitpunkt der Erstellung dieses Dokuments) herunter und führen das ausführbare Programm bis zur vollständigen Installation aus.

Hinweis für MacOS-Benutzer: In der aktuellen Version von SerialTool für MacOS ist das Python 3.12-Framework bereits integriert, um den Anforderungen von Apple bezüglich der Code-Signierung zu entsprechen. Wenn Sie eine andere Version verwenden möchten, die auf Ihrem System installiert ist, können Sie die Einstellungen im Menü "Python Environment" ändern.

Für MacOS sollte Python bereits installiert sein, wahrscheinlich bezogen auf die Version 2 von Python, und es ist notwendig, es auf die neueste Version (3.12 zum Zeitpunkt der Erstellung dieses Dokuments) zu aktualisieren, indem Sie das ausführbare Programm direkt von der offiziellen Python-Website herunterladen und mit der Installation fortfahren (wie bei Windows).
Für Linux muss es über die Befehlszeile installiert werden Ubuntu sudo apt-get install python3 oder Fedora sudo dnf install python3
Wenn Sie Zweifel oder Schwierigkeiten bei der Installation von Python haben, können Sie jederzeit auf die offizielle Website oder die zahlreichen online verfügbaren Tutorials zurückgreifen.

Einrichtung und Konfiguration der Python-Umgebung.


Sobald die Installation überprüft ist und Sie das "Python Environment"-Menü ausgewählt haben, genügt es, den "Check Installation"-Knopf zu drücken, um die aktuelle Python-Einstellung zu importieren und für spätere Starts von SerialTool zu speichern.

Sie sind bereit! Laden Sie die ersten Beispiele und drücken Sie den [RUN]-Knopf, um Ihr Abenteuer mit SerialTool und Python zu beginnen und Ihr erstes Programm für die serielle Schnittstelle zu schreiben.

Weitere Informationen

Um das Schreiben von Skripten zu erleichtern, verfügt der integrierte Editor über die typischen Funktionen einer IDE, erlaubt jedoch derzeit kein Debugging.
Unter den verfügbaren Optionen wird empfohlen, immer die Option "Serielle Ports automatisch schließen, wenn das Skript ausgeführt wird." zu wählen. Wenn Ihr Skript Schreibfehler aufweist, sorgt SerialTool für das Schließen aller offenen seriellen Ports, um zu vermeiden, dass sie bei späteren Skriptstarts geschlossen werden müssen.
Um das Skript zu stoppen und zu beenden, wird es nicht empfohlen, die Funktion sys.exit() zu verwenden, da dies die vollständige Schließung von SerialTool verursachen würde, da Python integriert ist. Bei Bedarf, das Skript über den Quellcode zu stoppen, wird die Funktion SerialTool.stopscript bereitgestellt.
Wenn Sie sich in einer Schleife befinden, ist es möglich, die Ausführung über den [STOP]-Knopf direkt aus der GUI zu stoppen.
Da Python direkt in SerialTool integriert ist, ist es wichtig, sich daran zu erinnern, dass Ihr Skript Teil der SerialTool-Prozesse wird. In diesem Zusammenhang ist es entscheidend, wenn Sie While True-Schleifen in Ihrem Zyklus einfügen, diese mit einer kurzen Schlafperiode (typischerweise 0,1 Sekunden) zu pairen, indem Sie die Funktion time.sleep(0.1) (aus der Zeitbibliothek) verwenden, um die Ausführung verschiedener Haupt-GUI-Prozesse zu ermöglichen; andernfalls riskieren Sie, die Anwendung vollständig einzufrieren.
Machen Sie sich keine übermäßigen Sorgen, da unsere Beispiele die kritischen Punkte hervorheben, an denen diese kleinen Verzögerungen eingefügt werden sollten.

Häufig gestellte Fragen

Ist die Integration von Python auf einige Funktionen beschränkt?
NEIN. Alle Funktionen von Python-Skripten sind direkt verfügbar, einschließlich des Ladens externer Bibliotheken (falls im System vorhanden).

Funktionieren SerialTool und Python auf allen Betriebssystemen?
JA. Auf allen Plattformen, auf denen SerialTool verfügbar ist und Python verfügbar ist, ist dessen Nutzung möglich, d.h. Windows, MacOS und Linux.

Muss ich Python unbedingt herunterladen und installieren?
JA. Der Python-Interpreter muss auf dem PC vorhanden sein, auf dem er verwendet werden soll. SerialTool basiert auf Python3 und die Rückwärtskompatibilität mit Python2 hängt direkt von der Kompatibilität der beiden Versionen ab. Es wird empfohlen, dass Benutzer von Python2 in jedem Fall Python3 verwenden.

Wie interagiert Python mit SerialTool?
Das Python-Skript interagiert durch die direkt in unsere Software integrierte SerialTool-Bibliothek, indem es die gewünschten Funktionen aufruft. Die über Python eingestellten Parameter, einschließlich des Öffnens und Schließens des seriellen Ports, sind direkt mit der Hauptbenutzeroberfläche verknüpft. Im Wesentlichen steuern Sie SerialTool direkt über Python durch die SerialTool-Bibliothek und deren Funktionen.

Kann ich weiterhin die Funktionen von SerialTool verwenden?
JA. Alle Funktionen von SerialTool bleiben verfügbar, AutoAnswer, Alarm, SerialScope, Paketanzeige, Datenaufzeichnung, Paketversand zum Netzwerk usw. sind und bleiben auswählbar aus der Benutzeroberfläche.

Ist es möglich, mehrere Ports gleichzeitig zu verwenden?
JA. Das grundlegende Merkmal von SerialTool ist die Verwaltung mehrerer serieller Ports gleichzeitig. Von Python aus ist es möglich, die Seriennummer, die verwendet werden soll, dem seriellen Port, den Sie verwenden möchten, über die Funktion SerialTool.assignPort zuzuweisen.

Muss ich immer die GUI verwenden, um die Ports vor der Nutzung zu öffnen und einzustellen?
NEIN. Wie wiederholt erwähnt, ist die Verwaltung der seriellen Ports direkt aus Python heraus verfügbar.

Kann ich auch die RTS- und DTR-Parameter einstellen?
JA. Die Bibliothek ermöglicht es Ihnen, die Einstellungen der RTS- und DTR-Pins beim Öffnen des seriellen Ports und während der Skriptausführung direkt zu steuern.

Kann ich die Implementierung weiterer Funktionen in der SerialTool-Bibliothek anfordern?
JA. Jede weitere Implementierung zusätzlicher Funktionen für die SerialTool-Bibliothek auf Python wird in Betracht gezogen und implementiert, wo möglich und abhängig von den Entwicklungs

Welche Art von Unterstützung kann ich erhalten?
Unser Team steht Ihnen zur Verfügung, um Ihre Skripte zu integrieren und Ihnen bei der Erstellung Ihrer Skripte oder der Identifizierung von Fehlern zu helfen. Die Unterstützung umfasst nicht die Erstellung eigentlicher Python-Skripte oder Auftragsarbeiten. Die Unterstützung bezieht sich auf die Integration von Python mit SerialTool.