Hallo, ich programmiere am µC gerade ein kleines "Terminal Interface". Der µC kommuniziert also über die RS232 mit Hyperterminal. Allerdings ist mir momentan nicht klar, wie man Hyperterminal "sagen" kann, dass ein Zeichen an der aktuellen Cursor Position eingefügt werden soll (so, dass das nachfolgende Zeichen nicht überschrieben wird, sonder um 1 nach rechts geschoben wird)? Das gleiche gilt für das Löschen eines Zeichens in einem Text. Da sollen dann natürlich alle Zeichen nach dem Cursor um 1 nach links geschoben werden. Bei meinen Suchen im Internet bin ich auf die VT-100 Escape Sequenzen gestoßen: http://ascii-table.com/ansi-escape-sequences-vt-100.php Allerdings bin ich mir auch nicht sicher, ob es da eine Sequenz zum Einstellen des "Einfüge-Modus" gibt. Die namen der Sequenzen waren mir zumindest diesbezüglich nicht schlüssig. Vielen Dank für eure Hilfe!
Peter S. schrieb: > dass ein > Zeichen an der aktuellen Cursor Position eingefügt werden soll Och das ist leicht: gar nicht. Wenn du ein Zeichen einfügen willst, dann gibst du das Zeichen aus, genauso wie den nachfolgenden Text der Zeile und positionierst den Cursor wieder zurück hinter das eingefügte Zeichen. > Das gleiche gilt für das Löschen eines Zeichens in einem Text. Da sollen > dann natürlich alle Zeichen nach dem Cursor um 1 nach links geschoben > werden. Selbes spiel: du gibst den dahinterliegenden Text um eine Stelle nach links verschoben erneut aus und positionierst anschliessend wieder den Cursor an die Löschstelle. > Allerdings bin ich mir auch nicht sicher, ob es da eine Sequenz zum > Einstellen des "Einfüge-Modus" gibt. Die namen der Sequenzen waren mir > zumindest diesbezüglich nicht schlüssig. Du traust dem Terminal zuviel zu. Diese Terminal haben keine Vorstellung davon, was ein 'Text' ist oder wie damit zu verfahren ist. Denn: was soll denn zb mit dem letzten Zeichen einer Bildschirmzeile passieren, wenn du ein Zeichen einfügst? Das muss ja dann wohl in die nächste Zeile an den Anfang wandern. Oder auch nicht. Kann ja sein, dass du den Zeileninhalt ins Nirvana schieben willst. So ein Terminal ist eine einfache Sache: Du drückst eine Taste und das Terminal sendet einen Code für die Taste. Das Gegenüber schickt Zeichen und das Teriminal stellt sie dar. Alles andere ist dein Bier.
Danke für die Antwort! Ich hatte halt gehofft, dass dies direkt vom Terminal unterstützt wird... Aber dann muss ich es halt "händisch" machen.
Hi, Natürlich geht das: 1.) Hyperterminal, diesen Moskwitsch der Terminalprogramme, löschen. 2.) Besorgen eines richitgen Terminalprogrammes, z. Zap-O-Com. Sollte mindestens VT100 Emulation unterstützen, besser VT220. 3.) VT100 Steuercodes auf Google suchen und ins Programm einbauen. 4.) Fertig.
gnuopfer schrieb: > 2.) Besorgen eines richitgen Terminalprogrammes, z. Zap-O-Com. Sollte > mindestens VT100 Emulation unterstützen, VT100 kann HyperTerminal aber auch ...
> VT100 kann HyperTerminal aber auch ... Stimmt, "Insertion-Replacement Mode" geht erst ab VT102 (http://vt100.net/docs/vt102-ug/chapter5.html#S5.5.2.22). Das VT102 Terminal ist aber noch so neu (gebaut ca. 1980-83), da darf man natürlich nicht erwarten, dass Microsoft das 2007 schon im XP-Hyterterminal unterstützt...
gnuopfer schrieb: > Das VT102 Terminal ist aber noch so neu (gebaut ca. 1980-83), da darf > man natürlich nicht erwarten, dass Microsoft das 2007 schon im > XP-Hyterterminal unterstützt... Inzwischen hat MS das Problem anscheinend gelöst. Mit Win8 wird anscheinend gar kein Terminalprogramm mehr ausgeliefert.
gnuopfer schrieb: > da darf > man natürlich nicht erwarten, dass Microsoft das 2007 schon im > XP-Hyterterminal unterstützt... Wolfgang schrieb: > Inzwischen hat MS das Problem anscheinend gelöst. Mit Win8 wird > anscheinend gar kein Terminalprogramm mehr ausgeliefert. Weil es kein MS Produkt war sondern eines wo der Hersteller das Kunststück fertig gebracht hat das ganze Qualitativ noch unter dem Standard aus Redmond anzusiedeln. Peter S. schrieb: > Der µC kommuniziert also über die RS232 mit Hyperterminal. Warum nimmst du nicht Hterm statt dieses Konsumerteil?
A * B = B + A schrieb: > Warum nimmst du nicht Hterm statt dieses Konsumerteil? Der Vorschlag ist grandios. Hterm ist kein Terminalprogramm und versteht exakt gar nichts von irgendwelche Terminalsteuersequenzen.
A * B = B + A schrieb: > Weil es kein MS Produkt war sondern eines wo der Hersteller das > Kunststück fertig gebracht hat das ganze Qualitativ noch unter dem > Standard aus Redmond anzusiedeln. Die Qualität der, von DEC kreierten, VT102-SW anzuzweifeln, kann nur einem mausverwöhnten Tastaturmuffel einfallen. ;-)
http://www.chiark.greenend.org.uk/~sgtatham/putty/ ist noch eine gute Alternative die Terminals emulieren kann.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.