Seriellen / V24 Port der FB als virtuellen Port auf Windows PC nutzen

rusmueller

Neuer User
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
 

Anhänge

  • ttytotcp.zip
    8 KB · Aufrufe: 58
Zuletzt bearbeitet:
Hi,
klingt sehr interessant. Zwei Gedanken meinerseits dazu:
1.) für Linux gibts auch noch ser2net.
2.)
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 ist.
Könnte das daran liegen, dass die Ausgabe gepuffert ist und die Bibliiothek quasi erst mit Auftreten eines Zeilenvorschubs den Puffer entleert? Das kann man m.W. irgendwie abschalten...
 
derheimi schrieb:
1.) für Linux gibts auch noch ser2net.
Hallo, danke für die Info! Ich wusste zwar, dass es ein solches Projekt gibt, allerdings habe ich bei meiner Suche mit der Windows-Seite begonnen und war froh dort eine passende Freeware gefunden zu haben. Das die zu dem Linux-Projekt passen könnte, auf die Idee bin ich gar nicht gekommen... Wollte den Stream eigentlich nur mit "cat </dev/tcp/host/port >/dev/ttyS0" umleiten, das geht aber auf der FB nicht. Dehalb das Program, viel mehr macht das ja auch nicht.
Hab übrigens ser2net ausprobiert - es tut tatsächlich ebenso (und kann natürlich noch viel mehr)!

derheimi schrieb:
2. Könnte das daran liegen, ...
Ja, die Linux-TTY-Einstellungen sind etwas unübersichtlich. Aber irgendwann findet man die richtige Einstellung.
 
Zuletzt bearbeitet:
tty von Konsole befreien - für freie Kominkation mit seriellem Gerät

Hi,

kann man den die tty der FritzBox mit der Bindung zur Konsole trennen?
Weil stört die Konsole müsste doch die Komunikation mit der C-Controll oder einem sonstigen seriellen-Gerät an der tty (meist dann noch ein Pegelwanlder rein MAX232 und Co. :) ) stören oder?

Gruß.
 
Es gibt Möglichkeiten dazu, aber die Ausgabe beim Start der Box läßt sich damit nicht verhindern. Daher ist es geschickter, einen unterstützten USB-Seriell Adapter zu verwenden.
 
Hi,
[Edit frank_m24: Sinnfreies Fullquote vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

Wie geht das mit dem abschalten?

Danke.
 
Wenn man sich per Telnet mit der Box verbindet, wird die Konsolen-Ausgabe auf die telnet-Verbindung umgeleitet. Das läßt sich sicher auch automatisieren, auch wenn ich dafür nichts fertiges habe. Man müßte dafür ein PTY öffnen und darauf die Meldungen der Konsole umlenken.

Evtl. kann man auch die Kernel-Meldungen beim Start unterdrücken, notfalls mit einem modifizierten Kernel.

Vorher kommen aber noch die Meldungen vom Bootloader, und die bekommt man ohne eine Modifikation des Bootloaders wohl nicht weg.
 
Hi,
[Edit frank_m24: Sinnfreies Fullquote vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

wieviel Mühe / Arbeit / Zeit kostet das einen Linux-Profi?
Und könnte das einer hier im Forum mal machen / erklären?

Gruß.
 
1. Relativ einfach, kann man beim telnetd-Programm nachsehen, wie es geht.

2. Weiß ich nicht sicher, entweder Konfiguration der serielle Konsole im Kernel entfernen oder die Ausgabe-Funktion entfernen.

3. Schwierig bis nicht möglich.
 
Hallo,
Ich habe eine USB-seriall Adapter an einer 7170, damit gibt's diese Probleme nicht.

Ich experimentiere aber auch mit einer C-Control an einer FritzBox Fon.
- Der Bootloader stört mich nicht, ich schalte die C-Control mit der Fritzbox ein (die CC bekommt die Spannung aus der FB) und die C-Control bleibt auf der V24 "solange ruhig", bis ich die Kommunikation über eine definierte V24-Kommandosequenz einschalte.
- Ich verwende auf der Box ds-mod, die Kernelmeldungen habe ich mit einer config-option ("serielle Console" oder so) abgeschaltet.
- Die Umleitung mit telnet habe ich auch schon gemacht, und zwar einfach von der Box auf sich selbst (da es kein telnet auf der Box hab ich das mit nc gemacht). Allerdings widerstrebt mir eine solche Lösung prinzipiell, deshab hab ich's dann doch per Kernel gemacht.


Gruss, Reiner
 
Hi,

was macht den deine C-Control zu feienes an der FritzBox?
Hast du mal ein paar Fotos?

Gruß.
 
Hallo WV-Fan,

zum einen habe ich eine CControl Station per USB->seriell angeschlossen und kann deren Daten (Temperatursonsoren usw.) auf meiner Homepage einsehen. Z.B. ob meine Heizung noch läuft - die fällt leider manchmal aus, meist im tiefsten Winter und im Urlaub... Bisher ist die Anzeige aber leider im Textmode (cgi-script), weil ich keine Ahnung von HTML und Co habe. Und wenn ich es mal schaffe einen Button anzuzeigen und auszuwerten, werde ich damit meinen Uralt-Laserdrucker fernschalten können, dann müssen meine Töchter nicht immer dazu runterrennen.

Zum anderen möchte ich ein kleines Bedienpanel an die FB bauen, um z.B. die entgangenen Anrufe abrufen zu können, ohne immer einen Rechner einschalten zu müssen. Hier bin ich aber inzwischen von CControl auf AtMega umgestiegen (mag kein Basic und CC und deren Peripherie ist teuer) hab ein 4*27 Zeilen Display und ein paar Tasten zur Bedienung angeschlossen und ein kleines Besy geschrieben. Der Aufbau ist aber noch auf Steckboard und die Fritzbox-Seite fehlt noch komplett. Ich mache das so als Winterprojekt und "zum lernen", z.Z. ist aber Garten- bzw. Autoreperatursaison. Fotos machen also nicht viel Sinn. Vielleicht im nächsten Jahr...

Viel Erfolg beim "Ideen sammeln",

Gruss, Reiner
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.