senden von hex-bytes auf die serielle in der bash

Ich bin in der Lage zu senden, die einen hec-bytes zu einem Seriell-port mit

stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
echo -en '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' > /dev/ttyUSB0

Aber wenn ich versuche, dies in einem loop test Lesen aus einer Datei, die es nicht arbeiten wollen

#!/bin/bash
stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
while read line
do
    name=$line
    echo -en $name | tr -d ' ' > /dev/ttyUSB0
    sleep 0.04
done < $1

Rufe ich das Skript wie dieses

./sendData.sh file.txt

file.txt hat einige einfache Inhalte wie diese

Versuchen 1

\\ xFF\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00\\ x00

Versuchen 2

\xFF\xF2\x00\xFF\xF2\x00\xFF\xF2\x00\xFF\xF2\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF

Könnte mir jemand zeigen Sie mir, was fehlt.

echo ist schwierig, versuchen printf oder einen speziellen hex-Konvertierung tool wie xxd oder hexdump.
können Sie schlagen alle Probe zu versuchen ?
printf "%s\n" "$line"? Viel Glück.
funktioniert nicht 🙁
Wenn Sie die erste Fehlermeldung, am besten Bearbeiten Sie Ihre Frage so, dass Informationen enthalten. Am besten angeben, wie Sie wissen, es funktioniert. Diese erschöpft sich mein wissen (von denen es keines gibt) über die Kommunikation zu einem /dev/USB*. Ich werde nicht in der Lage sein, zu Debuggen, was da passiert. Viel Glück!

InformationsquelleAutor Pavan K | 2014-03-19

Schreibe einen Kommentar