Vom Python-Prototyp zum Go-Geschoss: Wie mein Tischmultimeter fliegen lernte. Owon XDM1041 Teil 2

Im ersten Teil meines Produkttests habe ich es bereits angedeutet: Die Hardware des Owon-Tischmultimeters ist klasse, die mitgelieferte Herstellersoftware lässt einen aber eher schreiend weglaufen. Meine erste Rettung war ein schnell gezimmertes Python-Skript.

Es funktionierte. Es spuckte Daten aus. Aber wie das mit Prototypen so ist: Irgendwann juckt es in den Fingern, und man fragt sich: „Geht das nicht noch eleganter, schneller und ohne Python-Laufzeitumgebung?“

Spoiler: Es geht. Und die Reise von Python zu Go (Golang) war ein wilder Ritt voller KI-Sessions, Visual Studio Code und überraschender Erkenntnisse.

Akt I: Das Python-Drama (Oder: Warum Tkinter mich in den Wahnsinn trieb)

Versteht mich nicht falsch: Python ist großartig für schnelle Skripte. Aber als ich die Software um einen Datenlogger, CSV-Export und eine Live-Tabelle erweitern wollte, ging das Gehustel los:

  • Das GUI-Chaos: Tkinter ist super für simple Fenster. Wenn man aber Threads, serielle Kommunikation und eine Live-Tabelle verheiraten will, ohne dass das Fenster einfriert, fühlt man sich schnell wie ein Jongleur auf einem Einrad.
  • Das -minsize-Trauma: Wenn dir Python wegen einer einzigen falschen Layout-Option mitten im Betrieb um die Ohren fliegt, hinterfragt man kurz seine Lebensentscheidungen.
  • Die Abhängigkeiten: „Ey, probier mal mein Tool aus!“ – „Brauche ich dafür erst Python 3.12, pyserial, tk und fünf virtuelle Umgebungen?“ – „Äh… ja.“

Ich wollte eine einzige .exe-Datei. Einfach doppelt anklicken, ohne Python-Installation, ohne DLL-Hölle.

Akt II: Warum ausgerechnet Go (Golang)?

Ich wollte eine Sprache, die:

  1. Rauschende Performance bietet (kompiliert direkt in Maschinencode).
  2. Echte Nebenläufigkeit (Concurrency) über Goroutines mitbringt (perfekt für das dauerhafte Abfragen des USB-Ports im Hintergrund).
  3. Plattformübergreifend eine einzelne Binary ausspuckt (keine Dependencies!).

Go schien die perfekte Wahl zu sein. Zusammen mit modernen GUI-Frameworks für Go (wie z. B. Fyne oder Wails) lässt sich damit eine saubere, extrem schnelle Desktop-App bauen.

Akt III: KI als Copilot in VS Code – Debugging auf Steroiden

Egal ob man Go neu lernt oder ein bestehendes Projekt portiert: Man stolpert über Stolpersteine. Mein Go-to-Setup war Visual Studio Code mit KI-Code-Assistenten.

Die Erkenntnisse aus meinem ersten Python-Skript bildeten die perfekte Blaupause. Ich wusste genau, welche SCPI-Befehle das Multimeter braucht (FUNC?\n und MEAS?\n) und wie das Parsing der Strings aussehen muss. Die KI half mir in VS Code blitzschnell dabei, diese Logik in idiomatischen Go-Code zu übersetzen:

// Ein kleiner Einblick: SCPI-Abfrage in Go mit Goroutines
func (m *Multimeter) ReadValue() (string, error) {
    m.mu.Lock()
    defer m.mu.Unlock()

    // Befehl an Owon senden
    _, err := m.port.Write([]byte("MEAS?\n"))
    if err != nil {
        return "", err
    }

    // Antwort einlesen
    buf := make([]byte, 128)
    n, err := m.port.Read(buf)
    if err != nil {
        return "", err
    }

    return strings.TrimSpace(string(buf[:n])), nil
}

Spaß am Debuggen (?)

Während Python gerne erst zur Laufzeit tief im Menü abstürzt, meckert Go dank starker Typisierung schon beim Schreiben – und die KI schlägt direkt die passende Fehlerbehandlung (if err != nil) vor.

Der Vergleich: Python vs. Go

FeaturePython PrototypGo Final Version
Startzeit~1–2 SekundenBlitzschnell (< 0.1s)
VerteilungSkript + Python-Setup nötig1 einzelne .exe / Binary
MultithreadingThreads & Tkinter after()-TricksEleganter Hintergrund-Prozess via Goroutines
Arbeitsspeicher~50–80 MBExtrem leichtfüßig

Das Ergebnis & Release!

Das finale Programm macht genau das, was die Owon-Originalsoftware von Anfang hätte machen sollen:

  • Keine Installation nötig: Herunterladen, doppelklicken, läuft.
  • Auto-Port-Erkennung: Findet den USB-COM-Port auf Knopfdruck.
  • Echtzeit-Anzeige & Verlauf: Tabelle mit automatischer Skalierung der Einheiten (V, A, Ω, Hz…).
  • Rechtsklick-Copy & CSV-Export: Werte direkt in die Zwischenablage werfen oder als sauber formatierte CSV abspeichern.

Kostenloser Download

Weil ich aus eigener Erfahrung nur zu gut weiß, wie frustrierend und nervig der Software-Kram bei Messgeräten aus Fernost manchmal sein kann, werde ich euch die kompilierte Go-App völlig kostenlos zur Verfügung stellen!

Messen und Datenlogger – Tool für Owon Messgeräte

☕ Hat dir dieser Beitrag geholfen?
Ich stecke viel Herzblut und Zeit in diesen Blog. Wenn du mir danke sagen möchtest, kannst du mir hier einen virtuellen Kaffee spendieren: buymeacoffee oder Ko-fi. Vielen Dank für deine Unterstützung!

Von Tobi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert