Wie kann minicom eingehende Zeilenumbrüche (\ n) „dauerhaft“ in CR + LF übersetzen?


12

Ich habe ein Mikrocontroller-Gerät, das Strings mit Zeilenabschluss über die über USB angeschlossene serielle Schnittstelle sendet, und (bisher) verwende ich minicomVersion 2.6 zum Lesen /dev/ttyACM0. Ich habe die Terminalanwendung für den Zeilenumbruch eingerichtet, möchte jedoch, dass beim Empfang eines Zeilenvorschubzeichens von meinem seriellen Gerät der Anfang der nächsten Zeile angezeigt wird. Kann [und wie] das minicommachen?

BEARBEITEN : Ich habe auch mir bekannte Methoden wie stty /dev/ttyACM0 ...,inlcrund ausprobiert screen /dev/ttyACM0 ...,inlcr, von denen ich weiß, dass sie Optionen haben, um eingehende neue Zeilen in Wagenrücklauf + Zeilenvorschub (CR + LF) zu übersetzen, und auch keine dieser Funktionen funktioniert. Ich habe auch andere Optionen ausprobiert (z. B. ocrnlfalls meine Logik falsch war nlund -nl), keine funktioniert und ich weiß nicht warum.

Ah, und ich verwende Manjaro 16.06-rc1.

Antworten:


10

Hat lange genug gedauert, aber hier bin ich endlich! Ich musste den Minicom-Quellcode herunterladen, um eine Vorstellung davon zu bekommen, was zu tun ist, um den Aufwand zu vermeiden, ständig Ctrl+ Z, U... zu drücken. Hier ist es.

minicomspeichert seine Parameter in einer Konfigurationsdatei, die standardmäßig verwendet wird $HOME/.minirc.dfl. Setzen Sie die folgende Zeile in den Buchstaben :

pu addcarreturn    Yes

und minicomfügt jetzt allen eingehenden Zeilen einen Wagenrücklauf hinzu. Ich habe keine Ahnung, warum es diese Option nicht zusammen mit der Konfigurationsdatei gespeichert hat, aber es ist mir jetzt egal!

Beachten Sie, dass jede Option danach genau 16 Zeichen enthalten pumuss, die rechts mit Leerzeichen aufgefüllt sind.


5

ANTWORT:
In Minicom drücken Ctrl+A Z. Dies zeigt das Menü. Drücken Sie dann U("Add Carriage Ret") und minicom fügt das Symbol automatisch CRzu jedem LFSymbol hinzu.

Möglicherweise möchten Sie dies erneut tun, um diese Funktion auszuschalten.

Umgehung:
Versuchen Sie, die mit "\r\n"dem Mikrocontroller endenden Leitungen zu senden .
\rbedeutet , dass der Wagenrücklauf (ASCII - Code 13 oder 0xd)
\ndas bedeutet Zeilenvorschub oder Neue Zeile (ASCII - Code 10 oder 0xa)


Also bekomme ich die Antwort « Nein, tut es nicht », oder?

@Nasha Ich habe noch nie versucht, das zu tun. Ich bin gerade auf das sehr ähnliche Problem gestoßen und habe es so gelöst, wie ich es beschrieben habe. Es war also nicht die Antwort auf Ihre eigentliche Frage, sondern ein Umgehungsvorschlag. Bitte beachten Sie meine bearbeitete Antwort für Minicom v.2.7.
v_2e

Ok, es scheint jetzt zu funktionieren. Gibt es ein Befehlszeilenargument, um zu vermeiden, dass es ständig interaktiv ausgeführt wird?

Sie können minicom -sals Root ausführen , auswählen Screen and keyboardund dann drücken T - Add carriage returnund Save setup as dfldiese Option systemweit aktivieren. Oder Sie können diese Konfiguration in einer separaten Onfig-Datei speichern und dann als verwenden minicom -D /dev/ttyUSB0 /etc/minicom/minirc.myconfig. Leider scheint die Version von Minicom 2.7 eine alte Manpage zu enthalten, sodass diese neuen Optionen dort nicht beschrieben werden.
v_2e

Das Speichern der add carriage returnOption in der Konfigurationsdatei scheint nicht zu funktionieren. Ich muss durch die Setup-Bildschirme gehen und minicom manuell anweisen, den Wagenrücklauf hinzuzufügen (dh Ctrl+ Zdann U) ... Seltsamerweise, wenn ich zum Menü ( Ctrl+ Z) gehe , wähle configure minicom ( O) und konfiguriere dann das Display und die Tastatur, die Option Add carriage returnist auf gesetzt No! Stelle dir das vor!
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.