Hi, ich sende mit gtkterm Zeichen an ein Arduino. Auf dem läuft reiner c code. Das ganze funktioniert auch super, nur das das gtkterm mit kein LF schickt, sondern nur ein CR wenn ich ENTER drücke. Ausserdem macht es einen Zeilenumbruch wenn ich vom Arduino ein CR schicke. Eigentlich sollte doch der Cursor an die erste Stelle der selben Zeile springen wenn ich ein CR schicke, oder? erst dachte ich das das ich Müll schicke, aber in der HEX Ansicht des gtkterm sehe ich eindeutig das ein 0x0D schicke. Ich hab auch schon nach Einstellungen gesucht um das Verhalten zu ändern, aber ohne Erfolg :/ Kennt jemand des Rätsels Lösung? Gruss Bouni
Elias B. schrieb: > Eigentlich sollte doch der Cursor an die erste Stelle der selben Zeile > springen wenn ich ein CR schicke, oder? Das gilt schon lange nicht mehr. Das war früher mal so, als es noch Fernschreiber gab.
Hi, Danke erst mal für die Antwort. Ist das bei allen (den üblichen) Seriellen Terminals so?
Bei Putty kann man sogar folgendes einstellen: > # implicit LF in every CR > # implicit CR in every LF Das geht aber nicht für Sende- und Empfangsseite getrennt. mfg mf
> Das geht aber nicht für Sende- und Empfangsseite getrennt.
Ist sich die Welt denn einig was bei einem Druck auf Enter gesendet
werden muss/soll?
Ich bekomm von gtkterm nämlich CR.
Die schlechte Nachricht * Nein, die Welt ist sich nicht einig * Die gute Nachricht: Im wesentlichen werden 2 Systeme benutzt Enweder CR alleine Oder CR gefolgt von einem LF Die Varianten: LF alleine LF gefolgt von einem CR sind relativ selten. Zumindest sind sie mir nicht oft begegnet. Die Einfachsttrategie beim Empfangen CR wird ausgewertet (und macht CR+LF) LF wird ignoriert ist schon eine spürbare Hilfe. Hilft dir nur beim Senden nicht viel, da musst du unter Umständen konfigurierbar haben, was du den senden willst. Wenn du den Empfänger noch mehr absichern willst, dann zb so CR wird immer ausgewertet und macht (CR+LF) LF nur dann, wenn das Zeichen davor kein CR war (und macht dann ebenfalls einen CR+LF). Ansonsten wird ein LF ignoriert. Behandle also beides so, als ob sie einen Zeilenumbruch samt Zeilenvorschub bewirken. Einzig der Fall, wenn die beiden Zeichen hintereinander kommen, wird erkannt und führt dann nur zu lediglich einem Umbruch+Vorschub. Mit der Strategie wirst du von fast allen Geräten über die Serielle problemlos empfangen können.
Elias B. schrieb: > Ausserdem macht es einen Zeilenumbruch wenn ich vom Arduino ein CR > schicke. MMn. ist das ein Fehler. Andere Terminalprogramme machen das jedenfalls anders. --> Minicom oder cu nehmen. Vielleicht hast Du aber auch die alte Version (0.99.5). Die ist in Debian Testing auch noch drin. Das Programm wird auf https://fedorahosted.org/gtkterm/ weiter gepflegt, und dort im Changelog:
1 | 3 * Released gtkterm 0.99.7-rc1 30-oct-2011 |
2 | 6 Cleaned up auto-crlf stuff |
3 | 12 * Released gtkterm 0.99.6 16-aug-2010 |
4 | 18 Made CR/LF configurable |
Hi, Danke erst mal für die ausführliche Antwort! @Leo Ich hab in der Tat das 0.99.5 aus dem Mint repo installiert. Werd mal schauen das ich mir ne neuere Version installiere. Danke :)
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.