Terminal Zeilenumbruch

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Hi,

ich arbeite nun schon seit einiger Zeit an einem CLI. Dieses CLI kann über verschiedene Terminals angesprochen werden wie z.B. PUTTY(Serial und SSH), HyperTerminal etc
Wie kann ich nun den geforderten Zeilenumbruch des jeweiligen Terminals herausbekommen? HyperTerminal erwartet zum Beispiel \n\r damit alles richtig angezeigt wird. Putty in der Regel nur ein \n
Ich möchte aber nicht unbedingt dass der User bei jedem Zugriff auf das CLI den Zeilenumbruch umstellen muss...

Das CLI läuft übrigens unter Linux

Danke für die Hilfe :)
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Meinst Du NL-CR oder vllt. CR-NL im Hyperterminal?
In Putty könntest Du die Settings für eine bestimmte Verbindung speichern, kA ob das im Hyperterminal geht.
Ob da was programmatisch zu machen ist, hängt davon ab, was Du zur Verfügung hast. Mit curses könntest Du den Terminaltypen erfragen, mit termios/Pseudoterminals könntest Du das newline-Verhalten selbst setzen.
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Also am liebsten wäre es mir wie gesagt wenn das Programm selbst herausfindet welchen Umbruch es benutzen soll...
Ich werde mir mal die genannten Module anschauen
Danke (:
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Für eine nett formatierte Ausgabe der termios-Einstellungen ist

Code: Alles auswählen

subprocess.call(['stty', '-a'])
ganz hilfreich. Damit kannst Du Deine Einstellungen erstmal debuggen. Besonders interessant düfte ONLCR/OCRNL für Dich sein.
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Das stty command habe ich nach einiger Zeit rumsuchen auch schon entdeckt. Hat aber nicht den Anschein als wären die Einstellungen zwischen HyperTerm und Putty Serial unterschiedlich :-/

Ich hatte auch schon einen Workaround gebaut der tty ausliest und je nach dem ob SSH benutzt wird /n oder bei Serieller Verbindung \n\r als trenner genommen wird. Hat auch gut geklappt, bis die Kunden angefangen haben nicht mehr HyperTerm für Serial zu benutzen :P

Also das Hauptproblem besteht wohl auf Client Seite... HT benutzt wohl die Windows Standards für den Zeilenumbruch... :-/

Ich werde nochmal intensiv alles durchprobieren und ansonsten werde ich einfach eine Option zum umschalten des Zeilenumbruchs einbauen :-(
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Über die Terminalschnittstelle (/dev/ttySx) könntest Du noch versuchen, mittels AT-Kommandos an den Identifier des gegenüberliegenden Gerätes zu kommen. Meine AT-Kommandozeiten liegen allerdings 20 Jahren zurück, könnte sein, dass Du damit die Terminalkommunikation zerschiesst bzw. restaurieren musst.

Vllt. gibt das Aufschluss: http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

Klingt interessant :) Werde ich mich mal einlesen.

Vielen Dank :)
Antworten