264 lines
9 KiB
Markdown
264 lines
9 KiB
Markdown
# Changelog
|
|
|
|
Alle wesentlichen Änderungen am Projekt werden in dieser Datei dokumentiert.
|
|
|
|
## [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_device` kennzeichnet 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_device` erfolgreich getestet
|
|
- `go test ./internal/config` erfolgreich
|
|
- `go test ./internal/gui` erfolgreich
|
|
- `go test -race ./internal/gui` erfolgreich
|
|
- `git diff --check` erfolgreich
|
|
## [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 ./...` erfolgreich
|
|
- `go 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/ttyUSB100` bis
|
|
`/dev/ttyUSB199`
|
|
- Abweichender Portbereich kann über `virtual_port_range` in 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 `VirtualPort` und `ManagedVirtualPort`
|
|
- Umfangreiche Tests für Portauswahl, Portfreigabe, Symlink-Verwaltung
|
|
und Linux-PTY-Integration
|
|
|
|
### Tests
|
|
|
|
- `go test ./...` erfolgreich
|
|
- `go test -race ./...` erfolgreich
|
|
- Bidirektionale Kommunikation über `/dev/ttyUSB100` erfolgreich getestet
|
|
- Externe Software kann ausschließlich `/dev/ttyUSB100` verwenden
|
|
- Übertragung vom virtuellen `/dev/ttyUSB100` zum Client erfolgreich getestet
|
|
- Übertragung vom Client zum virtuellen `/dev/ttyUSB100` erfolgreich getestet
|
|
- Zweistufige Symlink-Kette von `/dev/ttyUSB100` über
|
|
`~/.rs2322tcp/virtual/ttyUSB100` bis 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 `00` bis `FF` getestet
|
|
- Übertragung vom PTY-Slave zum PTY-Master getestet
|
|
- Übertragung vom PTY-Master zum PTY-Slave getestet
|
|
- `go test ./...` erfolgreich
|
|
- `go 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-sim` als 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 `00` bis `FF` erfolgreich ü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.1` fü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
|
|
- `DataConnection` für die bidirektionale Datenübertragung
|
|
- `DataListener` zur 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 `DataListener` behoben
|
|
|
|
### 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:
|
|
|
|
```text
|
|
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:
|
|
|
|
```text
|
|
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
|