3.7 KiB
3.7 KiB
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.1fü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.0aktualisiert go.bug.st/serialwird in Versionv1.7.1verwendetgolang.org/x/sys v0.43.0wird als indirekte Abhängigkeit verwendet- Die Serial-Bibliothek
go.bug.st/serialwurde zusätzlich auf dem privaten Git-Server des Projektes als Ausfallsicherung gespiegelt:git.lang-dieter.de/third-party/go-serial - Der
DataListenerwurde nebenläufigkeitssicher implementiert - Das Schließen eines
DataListenerkann gleichzeitig mit einem laufendenAccept()erfolgen
Tests
go test ./...erfolgreichgo test -race ./...erfolgreich- Race Condition im
DataListenererkannt 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
.gitignorefü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.
socatkann 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.