rs2322tcp/CHANGELOG.md
2026-08-10 10:38:14 +02:00

3.7 KiB
Raw Blame History

Changelog

Alle wesentlichen Änderungen am Projekt werden in dieser Datei dokumentiert.

[Unreleased]

Added

  • Implementierung der seriellen Schnittstellenschicht unter internal/serial
  • Verwendung von go.bug.st/serial v1.7.1 für die Ansteuerung der seriellen Schnittstellen
  • Konfigurationsunterstützung für Baudrate, Datenbits, Parität und Stopbits
  • Öffnen und Schließen serieller Schnittstellen über die interne Serial-Abstraktion
  • Lesen und Schreiben von RS232-Daten über die Serial-Abstraktion
  • Dynamische TCP-Data-Listener für konfigurierte Geräte
  • Session-Verwaltung für dynamische Data-Listener
  • Session-Verwaltung für aktive DataConnections
  • Bidirektionale Datenübertragung zwischen TCP und RS232
  • Öffnen der seriellen Schnittstelle erst beim Aufbau einer tatsächlichen Data-Verbindung
  • Begrenzung auf eine aktive Data-Verbindung pro konfiguriertem Gerät
  • Integrationstest mit virtuellen seriellen Schnittstellen über socat
  • Tests für TCP → RS232 und RS232 → TCP
  • Tests für Session-Reconnect und Ressourcenverwaltung

Changed

  • Go-Version des Projektes auf Go 1.25.0 aktualisiert
  • go.bug.st/serial wird in Version v1.7.1 verwendet
  • golang.org/x/sys v0.43.0 wird als indirekte Abhängigkeit verwendet
  • Die Serial-Bibliothek go.bug.st/serial wurde zusätzlich auf dem privaten Git-Server des Projektes als Ausfallsicherung gespiegelt: git.lang-dieter.de/third-party/go-serial
  • Der DataListener wurde nebenläufigkeitssicher implementiert
  • Das Schließen eines DataListener kann gleichzeitig mit einem laufenden Accept() erfolgen

Tests

  • go test ./... erfolgreich
  • go test -race ./... erfolgreich
  • Race Condition im DataListener erkannt und behoben

Status

Die grundlegende Server-seitige TCP-/RS232-Datenübertragung ist implementiert und durch automatisierte Tests abgesichert.

Der Datenpfad ist derzeit:

TCP-Control-Verbindung
        │
        ▼
     Session
        │
        ▼
 dynamischer Data-Port
        │
        ▼
 TCP-Data-Verbindung
        │
        ▼
 internal/serial
        │
        ▼
   RS232-Gerät

Die Client-seitige Bereitstellung einer virtuellen seriellen Schnittstelle ist noch nicht implementiert.


[0.0.1] - 2026-08-09

Added

  • Grundstruktur des Projektes rs2322tcp
  • Go-Modul git.lang-dieter.de/rs2322tcp
  • separates Programmgerüst für rs2322tcp-client
  • separates Programmgerüst für rs2322tcp-server
  • gemeinsame Versionierungsinformationen
  • Git-basierte Build-Informationen
  • zentrales Build-Skript scripts/build.sh
  • automatische Quellcode-Formatierung beim Build
  • automatische Tests beim Build
  • SHA256-Prüfsummen der erzeugten Binärdateien
  • .gitignore für Build- und Entwicklungsdateien
  • erste Projekt- und Architekturdokumentation

Build-Ziele

Der erste Build unterstützt:

  • Linux amd64 Client und Server
  • Linux arm64 Server
  • Windows amd64 Client

Architekturentscheidungen

  • TCP wird für die Übertragung der RS232-Daten verwendet.
  • Windows und Linux werden als gleichberechtigte Client-Plattformen betrachtet.
  • Der Server ist zunächst für den Raspberry Pi 5 vorgesehen.
  • Tailscale wird als vertrauenswürdiges Netzwerk verwendet.
  • Eine zusätzliche TLS-Schicht ist zunächst nicht vorgesehen.
  • Für eine spätere Audioübertragung ist ein separates UDP-basiertes Transportkonzept vorgesehen.
  • socat kann für Entwicklung und Diagnose eingesetzt werden.
  • Eine Sniffer-/Logging-Funktion für den übertragenen Datenverkehr ist vorgesehen.

Status

Version 0.0.1 enthält ausschließlich die Projektgrundlage.

Die eigentliche TCP-/RS232-Kommunikation und die virtuelle serielle Schnittstelle sind noch nicht implementiert.