10 KiB
Changelog
Alle wesentlichen Änderungen am Projekt werden in dieser Datei dokumentiert.
[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