bash中的串口交互

时间:2017-10-10 11:36:46

标签: bash serial-port hex

我有一个连接到COM1 /dev/ttyS0

的串行读卡器

我需要发送十六进制序列并接收答案,然后根据答案发送另一个十六进制序列。

示例:

#|/bin/bash
echo -en '\x02\x00\x02\x30\x31\x03\x02' > /dev/ttyS0

#I want something like:
while read -r line < /dev/ttyS0; do
   data = data + $line
done


if [$data = \x06 ]; then
   echo -en '\x05' > /dev/ttyS0
fi

done

可以吗?

现在我正在尝试这个, 但没有来自串口的回复。 如果我使用终端应用程序它会回答

function ReadCard(){

CardReply="reply.txt"
> $CardReply

filesize=$(wc -c < "$CardReply")

until [  $filesize -gt 0 ]; do
    filesize=$(wc -c < "$CardReply")
    echo "Size:$filesize"
    echo -en '\x02\x00\x04\x45\x30\x30\x32\x03\x72' > $SerialPort
    echo -en '\x05' > $SerialPort
    cat $SerialPort >> $CardReply
done

}

0 个答案:

没有答案