RS232-Verbindungen (serielle Schnittstelle) mittels Software-Konverter auf TCP (Internet) übertragen
Find a file
2026-08-09 18:50:25 +02:00
cmd Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
internal/version Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
scripts Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
.gitignore Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
CHANGELOG.md Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
go.mod Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00
LICENSE Initial commit 2026-08-09 17:55:34 +02:00
README.md Version 0.0.1 - Projektgrundlage und Buildsystem 2026-08-09 18:50:25 +02:00

rs2322tcp

Zweck

rs2322tcp überträgt Daten zwischen seriellen RS232-Schnittstellen und einem TCP/IP-Netzwerk.

Das Projekt besteht aus einem Client und einem Server:

  • Der Client stellt auf einem lokalen Rechner eine virtuelle serielle Schnittstelle für vorhandene Software bereit.
  • Der Server läuft auf einem Raspberry Pi und stellt die dort angeschlossenen echten RS232-Schnittstellen bereit.
  • Die serielle Kommunikation wird transparent über TCP übertragen.

Die vorhandene Software auf dem Client sowie die angeschlossenen Geräte auf der Serverseite sollen dabei möglichst keinen Unterschied zu einer direkten seriellen Verbindung feststellen.

Plattformen

Client

Der Client soll gleichberechtigt auf folgenden Plattformen betrieben werden können:

  • Windows
  • Linux

Die plattformspezifische Bereitstellung der virtuellen seriellen Schnittstelle wird vom gemeinsamen Client-Kern getrennt.

Server

Der Server ist zunächst für den Betrieb auf einem Raspberry Pi 5 vorgesehen.

Mehrere USB-to-RS232-Adapter können angeschlossen und über die Konfiguration einzelnen Geräten zugeordnet werden.

Netzwerk

Für die RS232-Datenübertragung wird TCP verwendet.

Das Projekt geht zunächst davon aus, dass die beteiligten Rechner über ein vertrauenswürdiges Tailscale-Netz miteinander verbunden sind.

Eine zusätzliche TLS-Verschlüsselung ist deshalb zunächst nicht vorgesehen.

Für eine spätere Übertragung von Audio-Daten ist ein separates Transportkonzept vorgesehen. Dafür soll UDP untersucht werden.

Konfiguration

Client und Server erhalten jeweils eine eigene config.json.

Darin werden unter anderem serielle Schnittstellen, Parameter, Gerätebezeichnungen und Netzwerkparameter konfiguriert.

Diagnose und Logging

Für Debugging und Diagnose soll eine Protokollierung des übertragenen Datenverkehrs möglich sein.

Dabei soll insbesondere eine Darstellung der übertragenen Bytes möglich sein.

socat kann während der Entwicklung und für Diagnosezwecke als zusätzliches Werkzeug eingesetzt werden.

Versionierung

Die Version des Programms wird über Git verwaltet und beim Build in das Programm eingebunden.

Die Entwicklung erfolgt schrittweise über versionierte Entwicklungs- stände.

Lizenz

GPLv3