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

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

Ich habe ein Mikrocontrollergerät, das durch Zeilenumbrüche beendete Zeichenfolgen über den per USB angeschlossenen seriellen Port sendet, und verwende (bisher) minicomVersion 2.6 zum Lesen /dev/ttyACM0. Ich habe die Terminalanwendung für Zeilenumbrüche eingerichtet, möchte aber, dass sie beim Empfang eines Zeilenvorschubzeichens von meinem seriellen Gerät an den Anfang der nächsten Zeile springt. Kann [und wie] minicomdas funktionieren?

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 Zeilenumbrüche in Wagenrücklauf+Zeilenvorschub (CR+LF) zu übersetzen, und keine davon funktioniert. Ich habe auch andere Optionen ausprobiert (wie ocrnl, falls meine Logik falsch war, nlund -nl), keine funktioniert und ich weiß nicht, warum.

Ah, und ich verwende Manjaro 16.06-rc1.

Antwort1

Es hat lange gedauert, aber jetzt bin ich endlich da! Ich musste den Quellcode von Minicom herunterladen, um eine Vorstellung davon zu bekommen, wie ich das ständige Drücken von Ctrl+ Z, U... vermeiden kann. Hier ist er.

minicomspeichert seine Parameter in einer Konfigurationsdatei, die standardmäßig lautet $HOME/.minirc.dfl. Fügen Sie die folgende Zeile ein:auf den Buchstaben:

pu addcarreturn    Yes

und minicomfügt jetzt allen eingehenden Zeilen einen Wagenrücklauf hinzu. Ich habe keine Ahnung, warum diese Option nicht gleich zusammen mit der Konfigurationsdatei gespeichert wurde, aber, was soll's, ist mir jetzt auch egal!

Beachten Sie, dass jede Option pudanachgenau 16Zeichen, rechts mit Leerzeichen aufgefüllt.

Antwort2

ANTWORT:
Inminicomdrücken Ctrl+A Z. Dadurch wird das Menü angezeigt. Dann drücken Sie U("Add Carriage Ret") undminicomfügt das CRSymbol automatisch zu jedem LFSymbol hinzu.

Möglicherweise möchten Sie den Vorgang erneut durchführen, um diese Funktion auszuschalten.

Problemumgehung:
Versuchen Sie, die Zeilen zu senden, die mit "\r\n"vom Mikrocontroller enden.
\rbedeutet dieWagenrücklauf(ASCII-Code 13 oder 0xd)
\nbedeutet dieZeilenvorschuboderNeue Zeile(ASCII-Code 10 oder 0xa)

verwandte Informationen