- Mitglied seit
- 11 Feb 2006
- Beiträge
- 108
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo,
ich habe am seriellen Port meiner FB eine C-Control Steuerung angeschlossen. Da die C-Control auch nur eine V24-Schnittstelle mit TTL-Pegel hat, reicht ja als Pegelwandler eine Diode aus. Die Programmierung der C-Control erfolgt allerdings von einem Windows Programm aus, welches nur lokale COM-Ports unterstützt. Mangels Pegelwandler ist nun ein Umstecken der C-Control an den Port meines Windows-PC nicht möglich und ich habe eine Möglichkeit gesucht, den COM-Port der FritzBox in meinem Windows-PC "remote" zu betreiben.
Gesucht und gefunden:
Grundlage ist die Freeware "HW Virtual Serial Port" von hw-group.com, die unter Windows einen virtuellen COM-Port anlegt und die Daten vom/für den COM-Port auf einen TCP-Port umleitet. Eine passende Gegenstelle für Linux habe ich allerdings nicht gefunden. Und nachdem mir klargeworden ist, dass Realisierungen via bash, xinetd oder pearl auf der FB wohl nicht verfügbar sind, habe ich als Netzwerk-Newbie ein entsprechendes Programm - mein 1. Netzwerkprogramm - geschrieben.
Ergänzung: Wie ich mittlerweile lernen durfte, arbeitet das Linux-Programm/Projekt ser2net mit der Windows-Software zusammen, damit ist dann eine stabile Lösung für die Anwendung verfügbar.
Wer das also gebrauchen kann, kann es hier herunterladen, übersetzt habe ich es mit dem ds-mod compiler "gcc -O2 ttytotcp.c" (mit makefiles usw. kenne ich mich nicht aus), ein Binary für die aktuelle Firmware "lege ich bei".
Das Programm hat die Aufrufparameter:
-p portnummer (Default ist hier der Port 33333)
-t tty-port (default ist hier /dev/ttyS0)
-n macht keine Initialisierung der V24
-v erzählt was es tut (-v1 ohne Daten)
Die V24-Parameter sind in dem Programm fest für meine C-Control (9600 Baud...) eingestellt, das kann man mit der Option -n abschalten und per stty vorher selbst machen. Allerdings sind die Einstellungen evtl. etwas kniffelig, da die V24 Daten teilweise erst mit Return weitergegeben werden, was für meine Anwendung (Binärdaten) unbrauchbar war.
"HW Virtual Serial Port" muss dann auf dem Windows-PC installiert werden, als Einstellungen braucht man in der Lasche "Virtual Serial Port", IP-Adresse der FB, Port und Server Port (beide gleich mit ttytotcp) und den Portnamen. In der Lasche "Settings" sollte man "NVT Enable" abwählen. Und schon kann man in der 1. Lasche mit "Create COM" eine Port anlegen. Und hoffentlich darüber auf den COM-Port der FB zugreifen.
Ergänzung: ser2net hat bei mit nur mit ports < 10000 funktioniert.
Das Ganze funktioniert bei mir bisher auf einer 7170 mit USB-seriell Adapter und einer C-Control Station. Der Test mit dem internen Port steht noch aus, sollte aber genauso tun (wenn man die Voraussetzungen dafür geschaffen hat: Kernel ohne V24-Ausgabe...). Und andere V24-Geräte sollten auch tun, dafür muss man dann aber die tty-Einstellungen anpassen.
Wie gesagt, mein erstes Netzwerkprogramm (vor einer Woche musste ich nur entfernt was ein "socket" ist), da ist sicherlich Verbesserungpotential drin - feel free to do it. Und ich hoffe mit dem Programm keine Sicherheitslücke oder sonstiges Risiko aufgemacht zu haben - also Benutzung auf eigene Gefahr. Und vielleicht gibt's für die Anforderung eine viel einfachere Lösung und ich habe sie nur nicht gefunden...
Gruss, rusmueller
ich habe am seriellen Port meiner FB eine C-Control Steuerung angeschlossen. Da die C-Control auch nur eine V24-Schnittstelle mit TTL-Pegel hat, reicht ja als Pegelwandler eine Diode aus. Die Programmierung der C-Control erfolgt allerdings von einem Windows Programm aus, welches nur lokale COM-Ports unterstützt. Mangels Pegelwandler ist nun ein Umstecken der C-Control an den Port meines Windows-PC nicht möglich und ich habe eine Möglichkeit gesucht, den COM-Port der FritzBox in meinem Windows-PC "remote" zu betreiben.
Gesucht und gefunden:
Grundlage ist die Freeware "HW Virtual Serial Port" von hw-group.com, die unter Windows einen virtuellen COM-Port anlegt und die Daten vom/für den COM-Port auf einen TCP-Port umleitet. Eine passende Gegenstelle für Linux habe ich allerdings nicht gefunden. Und nachdem mir klargeworden ist, dass Realisierungen via bash, xinetd oder pearl auf der FB wohl nicht verfügbar sind, habe ich als Netzwerk-Newbie ein entsprechendes Programm - mein 1. Netzwerkprogramm - geschrieben.
Ergänzung: Wie ich mittlerweile lernen durfte, arbeitet das Linux-Programm/Projekt ser2net mit der Windows-Software zusammen, damit ist dann eine stabile Lösung für die Anwendung verfügbar.
Wer das also gebrauchen kann, kann es hier herunterladen, übersetzt habe ich es mit dem ds-mod compiler "gcc -O2 ttytotcp.c" (mit makefiles usw. kenne ich mich nicht aus), ein Binary für die aktuelle Firmware "lege ich bei".
Das Programm hat die Aufrufparameter:
-p portnummer (Default ist hier der Port 33333)
-t tty-port (default ist hier /dev/ttyS0)
-n macht keine Initialisierung der V24
-v erzählt was es tut (-v1 ohne Daten)
Die V24-Parameter sind in dem Programm fest für meine C-Control (9600 Baud...) eingestellt, das kann man mit der Option -n abschalten und per stty vorher selbst machen. Allerdings sind die Einstellungen evtl. etwas kniffelig, da die V24 Daten teilweise erst mit Return weitergegeben werden, was für meine Anwendung (Binärdaten) unbrauchbar war.
"HW Virtual Serial Port" muss dann auf dem Windows-PC installiert werden, als Einstellungen braucht man in der Lasche "Virtual Serial Port", IP-Adresse der FB, Port und Server Port (beide gleich mit ttytotcp) und den Portnamen. In der Lasche "Settings" sollte man "NVT Enable" abwählen. Und schon kann man in der 1. Lasche mit "Create COM" eine Port anlegen. Und hoffentlich darüber auf den COM-Port der FB zugreifen.
Ergänzung: ser2net hat bei mit nur mit ports < 10000 funktioniert.
Das Ganze funktioniert bei mir bisher auf einer 7170 mit USB-seriell Adapter und einer C-Control Station. Der Test mit dem internen Port steht noch aus, sollte aber genauso tun (wenn man die Voraussetzungen dafür geschaffen hat: Kernel ohne V24-Ausgabe...). Und andere V24-Geräte sollten auch tun, dafür muss man dann aber die tty-Einstellungen anpassen.
Wie gesagt, mein erstes Netzwerkprogramm (vor einer Woche musste ich nur entfernt was ein "socket" ist), da ist sicherlich Verbesserungpotential drin - feel free to do it. Und ich hoffe mit dem Programm keine Sicherheitslücke oder sonstiges Risiko aufgemacht zu haben - also Benutzung auf eigene Gefahr. Und vielleicht gibt's für die Anforderung eine viel einfachere Lösung und ich habe sie nur nicht gefunden...
Gruss, rusmueller
Anhänge
Zuletzt bearbeitet: