Linux-Comandline-Programm, serielle Übertragung (COM-Port), Hex

8351
Lyndon White

Also brauche ich ein Programm, das ich auf Embedded Linux (OpenWRT 8.09) ausführen kann, über die Befehlszeile. Ich muss 8N1 übertragen können, ich muss in HEX (nicht in ASCII,) senden und auch in Dezimalzahlen bevorzugen.

Soweit ich erkennen kann, dass Microcom und Picocom kein Hex übertragen.

Klarstellung bearbeiten: Ich möchte Daten in Hex eingeben und die binäre (8N1) Repressentaion jedes 2-stelligen Hex-Paares senden.

3
Ich meine, Sie meinen, es sollte Dateien sowohl in BINARY als auch (oder anstelle von) ASCII übertragen. pavium vor 14 Jahren 2
Keine Dateien, ich möchte Bytes senden, die ich von meiner Tastatur aus eingebe, wie es br @ ys ternimal in Windows tut. Ich kann auch nicht einfach die Ascci-Äquivalente senden, da einige der Optionen, die ich brauche, um Corrispongd an keine druckbaren Zeichen zu senden Lyndon White vor 14 Jahren 0
@oxinabox: Dateien, Daten, was auch immer. Zur Verdeutlichung benötigen Sie einen BINARY-Übertragungsmodus anstelle eines ASCII-Modus, und Sie möchten die Daten eingeben können, die als Hexadezimal übertragen werden sollen. quack quixote vor 14 Jahren 1
8N1 = 8 Datenbits, kein Paritätsbit und 1 Stoppbit. Peter Mortensen vor 14 Jahren 0

3 Antworten auf die Frage

1
John T

Wenn das Programm keine Übertragung in Hex zulässt, gibt es Workarounds. Sie können die Informationen odweiterleiten, um sie in Hex umzuwandeln, bevor Sie sie an Microcom oder Picocom senden.

Konvertieren Sie zum Beispiel "etwas Text" in Hex:

Echo "etwas Text" | od -tx1 | Schnitt -c 8- | tr -d ""
Leider ist od nicht in opnwrt distro enthalten - dies erfordert eine Neukompilierung des Betriebssystems. openwrt ist nicht so toll, ich denke, dass die Installation von Debian oder sogar Freebsd eine bessere Option sein könnte, auch wenn dies Portieren und Crosscopiling bedeutet Lyndon White vor 14 Jahren 0
@oxinabox: Was läuft auf openwrt? Sie könnten "od" für die openwrt-Umgebung crosscompile. Wenn es sich dabei um einen Router handelt, ist "scp" der Binärcode über das Netzwerk. quack quixote vor 14 Jahren 0
Kann ich bitte mehr Informationen darüber haben, wie man diese Verrohrung macht? Ich habe ein benutzerdefiniertes Programm erstellt, das hexadezimale oder dezimale Werte oder Kellereien als Parameter für den entsprechenden Binery-Stream konvergiert. Lyndon White vor 14 Jahren 0
1
srnka

Versuchen Sie, CuteCom zu verwenden: http://cutecom.sourceforge.net/

Es ist noch kein Projekt, aber es funktioniert einwandfrei und es ist in der Lage, eine Hex-Darstellung von Zeichen darzustellen.

Aber es ist grafisch, so dass Sie es nicht für Embedded Linux verwenden können (wenn Sie nicht X unterstützen und QT4 unterstützen).

0
MarSoft

Ich denke, sstermsollte für dich arbeiten. Es ist in Python geschrieben (was wahrscheinlich schlecht ist), ist jedoch konsolenbasiert und unterstützt die hexadezimale Eingabe und Ausgabe.

Sie können es wie folgt starten:

ssterm /dev/ttyAMA0 -b 9600 -i hex -o split 

Dann sollte es hexadezimale Zeichen aus stdin lesen, jeweils 2 Zeichen in Byte umwandeln und dieses Byte an die serielle senden.

Außerdem liest er Daten vom Gerät und zeigt sie in folgender hexdumpWeise an: Hex-Darstellung links und ASCII-Darstellung rechts.