14 KiB
Changelog
Alle wesentlichen Änderungen am Projekt werden in dieser Datei dokumentiert.
[0.0.11] - 2026-08-25
Hinzugefügt
- Windows-Client erfolgreich mit Fyne-GUI gestartet.
- Übertragung der konfigurierten
startup_bytesan das zugeordnete Remote-Gerät beim Verbindungsaufbau getestet.
Geändert
- Windows-spezifische Behandlung virtueller serieller Ports angepasst.
- Öffnen und Verwaltung virtueller serieller Schnittstellen unter Windows überarbeitet.
Getestet
- Minimaler Fyne-Test unter Windows erfolgreich gestartet.
rs2322tcp-clientunter Windows erfolgreich mit Fyne-GUI gestartet.- Verbindung des Windows-Clients zum
rs2322tcp-servererfolgreich aufgebaut. - Rotor-Startcode erfolgreich vom Windows-Client bis zum Server übertragen.
[0.0.10] - 2026-08-21
Behoben
- Linux-Portverwaltung nach der Windows-Client-Erweiterung korrigiert.
- Doppelte Linux-Definitionen der virtuellen Portverwaltung entfernt.
- Plattformübergreifende Trennung der virtuellen Port-Erzeugung korrigiert.
- Dauerhafte Installations-Symlinks für virtuelle Linux-Ports bleiben beim Schließen eines Ports erhalten.
- Gesamter Go-Testlauf unter Linux erfolgreich.
[0.0.9] - 2026-08-21
Added
- Windows-Unterstützung für den rs2322tcp-Client
- Plattformabhängige Verwaltung virtueller serieller Schnittstellen
- Windows-COM-Port-Unterstützung über
go.bug.st/serial - Unterstützung des virtuellen Windows-Portbereichs COM100 bis COM199
- Windows-spezifische Portvalidierung und Portpfadverwaltung
- Technischer Windows-Client unter
cmd/rs2322tcp-client-test - Plattformabhängige Implementierungen für das Öffnen und Verwalten virtueller serieller Schnittstellen
- Windows-spezifische Implementierung von
VirtualSerial
Changed
- Virtuelle Portverwaltung für Linux und Windows auf eine gemeinsame Schnittstelle umgestellt
- Clientseitige Portvalidierung für die unterschiedlichen Plattformen erweitert
- Client-Konfiguration für den Windows-Betrieb angepasst
Tests
- Windows 11 / amd64 erfolgreich getestet
- Windows-COM-Port COM100 über com0com erfolgreich geöffnet
- com0com-Portpaar
COM10 ↔ COM100erfolgreich getestet - Verbindung des Windows-Clients über Tailscale zum Raspberry-Pi-Server erfolgreich getestet
- Bidirektionale Datenübertragung zwischen Windows-Client und Raspberry-Pi-Server erfolgreich getestet
- Bidirektionale Datenübertragung mit einem realen SPID Rot2Prog erfolgreich getestet
- Rot2Prog mit
P5 = 59(SPID) und Function ModeA(Auto) erfolgreich betrieben - Tatsächliche Antwort des Rot2Prog erfolgreich über den vollständigen Datenweg übertragen:
57 07 01 06 00 01 03 06 02 00 01 20
go test ./internal/clienterfolgreich
Status
Der Windows-Client kann über einen virtuellen Windows-COM-Port mit dem rs2322tcp-Server auf einem Raspberry Pi kommunizieren.
Der vollständige Datenweg wurde mit einem realen SPID Rot2Prog bidirektional erfolgreich getestet:
COM10
│
▼
com0com
│
▼
COM100
│
▼
rs2322tcp-client (Windows)
│
▼
TCP / Tailscale
│
▼
rs2322tcp-server (Raspberry Pi)
│
▼
RS232 / SPID Rot2Prog
Der technische Windows-Client bleibt als separates Testprogramm erhalten.
Die grafische Fyne-Oberfläche des Windows-Clients ist noch nicht vollständig abgeschlossen.
[0.0.8] - 2026-08-12
Added
- Prüfung der lokal vorhandenen virtuellen Ports beim Client-Start
- Abgleich der vorhandenen symbolischen Links mit den in
client.jsondefinierten virtuellen Schnittstellen - Erkennung von in
client.jsondefinierten, aber lokal nicht vorhandenen virtuellen Ports - Erkennung von lokal vorhandenen, aber nicht in
client.jsondefinierten virtuellen Ports - Verständlicher Fehlerdialog bei einer abweichenden virtuellen Portkonfiguration
- Beenden des Clients nach Bestätigung einer fehlerhaften Portkonfiguration
Changed
- Virtuelle Ports werden entsprechend der in
client.jsonfestgelegten Portnummern gezielt geöffnet - Die Verwaltung virtueller Ports arbeitet weiterhin ohne Root-Rechte
- Der Fehlerdialog verwendet einen einzelnen OK-Button
- Allgemeine Schriftgröße der grafischen Benutzeroberfläche auf 22 erhöht
- Hauptfenster des Clients auf 800 × 600 Pixel vergrößert
Tests
- Prüfung vorhandener und konfigurierter virtueller Ports erfolgreich getestet
- Fehlender virtueller Port erfolgreich erkannt und im Fehlerdialog angezeigt
- Zusätzlicher, nicht konfigurierter virtueller Port erfolgreich erkannt
- Clientstart nach Korrektur der virtuellen Portkonfiguration erfolgreich getestet
- Gerätezuordnung nach Neustart des Clients erfolgreich aus
client.jsongeladen go test ./...erfolgreichgo test -race ./internal/clienterfolgreichgo test -race ./internal/guierfolgreichgit diff --checkerfolgreich
[0.0.7] - 2026-08-12
Added
- Pflege der Gerätezuordnung über die grafische Benutzeroberfläche
- Zuordnung der vom Server angebotenen Geräte zu den konfigurierten virtuellen seriellen Schnittstellen
- Unterstützung des Zustands „nicht verbunden“
- Freie virtuelle Schnittstellen werden bei der Gerätezuordnung automatisch neu angeboten
- Verhinderung der gleichzeitigen Zuordnung einer virtuellen Schnittstelle zu mehreren Geräten
- Bereits zugeordnete Geräte können nur auf ihre aktuelle Schnittstelle oder „nicht verbunden“ gesetzt werden
- Ungespeicherte Änderungen werden beim Schließen des Hauptfensters erkannt und dem Anwender angezeigt
- Änderungen werden beim Schließen des Gerätezuordnungsfensters in der Client-Konfiguration gespeichert
- Virtuelle Schnittstellen bleiben auch ohne Gerätezuordnung in der Client-Konfiguration erhalten
- Ein leerer Wert für
remote_devicekennzeichnet eine freie virtuelle Schnittstelle Application.SaveConfig()zum zentralen Speichern der Client-Konfiguration
Changed
- Validierung der Client-Konfiguration erlaubt nun virtuelle Schnittstellen ohne aktuelle Gerätezuordnung
- Die Gerätezuordnung arbeitet auf Basis der vorhandenen virtuellen
Schnittstellen und verändert bei einer Trennung nur deren
remote_device-Zuordnung
Tests
- Gerätezuordnung mit mehreren Server-Geräten praktisch getestet
- Freigabe einer virtuellen Schnittstelle und anschließende erneute Auswahl erfolgreich getestet
- Speicherung einer Gerätezuordnung über die GUI erfolgreich getestet
- Speicherung einer getrennten Gerätezuordnung mit leerem
remote_deviceerfolgreich getestet go test ./internal/configerfolgreichgo test ./internal/guierfolgreichgo test -race ./internal/guierfolgreichgit diff --checkerfolgreich
[0.0.6] - 2026-08-10
Added
- Clientseitige Runtime zur Verwaltung mehrerer virtueller serieller Ports
- Verbindung konfigurierter virtueller Ports mit den vom Server bereitgestellten Remote-Geräten
- Clientseitige TCP-Data-Connections zu den dynamischen Data-Ports des Servers
- Bidirektionale Datenübertragung über eine
Bridge - Verwaltung des Lebenszyklus von virtuellen Ports, Bridges und Client-Verbindung
- Integrationstest für den vollständigen Datenweg zwischen virtuellem seriellen Port und Server
- Tests für Verbindungsaufbau, Gerätezuordnung und Runtime-Lebenszyklus
Tests
go test ./...erfolgreichgo test -race ./...erfolgreich- Bidirektionale Übertragung über Runtime, Bridge, TCP und PTY erfolgreich
- Race Conditions in Client-Control-Verbindung, PTY und virtuellen Ports behoben
[0.0.5] - 2026-08-10
Added
- Konfigurierbarer Bereich für lokale virtuelle serielle Schnittstellen
- Standardbereich für virtuelle Ports von
/dev/ttyUSB100bis/dev/ttyUSB199 - Abweichender Portbereich kann über
virtual_port_rangein der Client-Konfiguration festgelegt werden - Rückwärtskompatibilität für bestehende Client-Konfigurationen ohne
virtual_port_range - Verwaltung virtueller Ports über
VirtualPortManager - Automatische Auswahl des nächsten freien virtuellen Ports
- Freigabe reservierter Ports bei deren Schließen
- Linux-spezifische Verwaltung der virtuellen Port-Symlinks unter
~/.rs2322tcp/virtual/ - Verknüpfung der virtuellen
/dev/ttyUSBxxx-Schnittstellen mit den vom Client erzeugten PTYs - Einführung von
VirtualPortundManagedVirtualPort - Umfangreiche Tests für Portauswahl, Portfreigabe, Symlink-Verwaltung und Linux-PTY-Integration
Tests
go test ./...erfolgreichgo test -race ./...erfolgreich- Bidirektionale Kommunikation über
/dev/ttyUSB100erfolgreich getestet - Externe Software kann ausschließlich
/dev/ttyUSB100verwenden - Übertragung vom virtuellen
/dev/ttyUSB100zum Client erfolgreich getestet - Übertragung vom Client zum virtuellen
/dev/ttyUSB100erfolgreich getestet - Zweistufige Symlink-Kette von
/dev/ttyUSB100über~/.rs2322tcp/virtual/ttyUSB100bis zum PTY erfolgreich getestet
[0.0.4] - 2026-08-10
Added
- Interaktiver Geräte-Simulator
rs2322tcp-device-sim - Senden beliebiger Bytefolgen über eine interaktive Hex-Eingabe
- Ausgabe empfangener Daten als Hex-Dump
- Unterstützung von Hex-Eingaben mit und ohne Leerzeichen
- Fehlerbehandlung für ungültige Hex-Eingaben
- Automatisierte Tests für die Hex-Konvertierung
- Erweiterte Dokumentation des Geräte-Simulators und des PTY-Testaufbaus
- Möglichkeit, den Simulator als virtuelle serielle Gegenstelle für externe Software zu verwenden
Tests
- Byte-orientierte Übertragung mit beliebigen Binärdaten getestet
- Übertragung aller Bytewerte
00bisFFgetestet - Übertragung vom PTY-Slave zum PTY-Master getestet
- Übertragung vom PTY-Master zum PTY-Slave getestet
go test ./...erfolgreichgo test -race ./...erfolgreich
[0.0.3] - 2026-08-10
Added
- Linux-PTY-Unterstützung für die clientseitige virtuelle serielle Schnittstelle
- Abstraktion der virtuellen seriellen Schnittstelle über
VirtualSerial - Automatisierter bidirektionaler PTY-Test mit allen 256 möglichen Bytewerten
- Eigenständiges Programm
rs2322tcp-device-simals Simulator für ein angeschlossenes serielles Gerät - Hexadezimale Darstellung der vom Geräte-Simulator empfangenen Rohdaten
Tests
- PTY-Slave und PTY-Master erfolgreich miteinander getestet
- Bidirektionale Übertragung von Binärdaten getestet
- Bytefolgen mit Werten von
00bisFFerfolgreich übertragen - Empfang beliebiger Datenblöcke über den PTY-Master getestet
[0.0.2] - 2026-08-09
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
- Serielle Geräte können über Konfiguration definiert werden
- Server-Control-Verbindung
- Session-Verwaltung
- Dynamische Data-Ports pro Gerät
- Serverseitiger Aufbau der TCP-Data-Verbindung
DataConnectionfür die bidirektionale DatenübertragungDataListenerzur Annahme von Data-Verbindungen- TCP → RS232 Datenübertragung
- RS232 → TCP Datenübertragung
- Client-Control-Verbindung unter
internal/client - Clientseitige Verarbeitung von
HELLO - Clientseitige Abfrage der konfigurierten Geräte über
GET_DEVICES - Clientseitige Verarbeitung der vom Server gelieferten Geräteinformationen einschließlich dynamischem Data-Port
- Clientseitiger Aufbau der TCP-Data-Verbindung
- Integrationstest für die vollständige Client-/Server-Kommunikation
- End-to-End-Test der TCP-/RS232-Datenübertragung in beide Richtungen
Changed
- Serial-Kommunikation vollständig über
go.bug.st/serial - Server öffnet serielle Schnittstellen erst bei aktiver Data-Verbindung
- Pro Gerät wird nur eine aktive Data-Verbindung zugelassen
- Session- und Ressourcenverwaltung überarbeitet
- Race Condition im
DataListenerbehoben
Tests
- Unit-Tests für Serial
- Unit-Tests für Session
- Unit-Tests für DataConnection
- Unit-Tests für DataListener
- Integrationstest mit virtuellen seriellen Schnittstellen über
socat - Tests für TCP → RS232 und RS232 → TCP
- Tests für Session-Reconnect und Ressourcenverwaltung
- Client-/Server-Integrationstest erfolgreich
- Race-Test des Client-/Server-Integrationstests erfolgreich
Status
Die grundlegende TCP-/RS232-Datenübertragung ist serverseitig implementiert und der Client kann die Control-Verbindung sowie die zugehörige Data-Verbindung aufbauen.
Der aktuelle Datenpfad ist:
Client
│
├── TCP-Control-Verbindung
│ │
│ ▼
│ Session
│ │
│ ▼
│ GET_DEVICES
│ │
│ ▼
│ Geräteinformationen
│ │
│ ▼
│ dynamischer Data-Port
│ │
└── TCP-Data-Verbindung
│
▼
DataListener
│
▼
DataConnection
│
▼
internal/serial
│
▼
RS232-Gerät
Die Datenübertragung wurde bereits in beide Richtungen erfolgreich getestet:
TCP → RS232
RS232 → TCP
Die clientseitige Linux-PTY-Grundlage für eine virtuelle serielle Schnittstelle ist implementiert und durch automatisierte Tests abgesichert.
Der Geräte-Simulator ist als eigenständiges Testprogramm vorhanden und kann eine serielle Schnittstelle öffnen und empfangene Rohdaten hexadezimal anzeigen.
Die interaktive TX-Funktion des Geräte-Simulators sowie die vollständige Integration der virtuellen seriellen Schnittstelle in den produktiven Client-Datenpfad sind noch nicht abgeschlossen.
[0.0.1] - 2026-08-09
Added
- Initiale Projektstruktur
- Go-Modul und Build-Grundlagen
- Basis für Server und Client
- Konfigurationsgrundlagen
- Versionsverwaltung und Build-Metadaten
- Erste Dokumentation