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