Arduino串口与Bash

时间:2015-06-19 12:16:27

标签: bash shell arduino serial-port

我有一个Arduino Sketch,它将一些二进制数据写入串口。 类似的东西:

0110101010010

01010100011011110

10101000110

这些代码可以有不同的长度。 现在我需要一个bash脚本,它逐行读取串行输出,显示读取代码和微调器,并将代码附加到文本文件中。

这就是我提出的:(脚本的相关部分)

spinner()
{
    local pid=$1
    local delay=0.2
    local spinstr='|/-\'
    while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
        local temp=${spinstr#?}
        printf " [%c]  " "$spinstr"
        local spinstr=$temp${spinstr%"$temp"}
        sleep $delay
        printf "\b\b\b\b\b\b"
    done
    printf "    \b\b\b\b"
}

function monitor {
    trap ctrl_c INT
    echo "Starting Monitor Mode"
    echo "Receiving..."
    stty -f $1 raw speed 9600
    ( cat $1 ) & spinner $!
}

function ctrl_c() {
        echo -e "\nAborting. Collected keys were saved."
                #save keys
                exit 0
}

显示微调器的方法取自:http://fitnr.com/showing-a-bash-spinner.html

实际上我试图用这两个命令读取串行输出:

stty -f $1 raw speed 9600
( cat $1 >> $keyfile) & spinner $!

不幸的是,这不起作用。以下是我发送的代码的示例屏幕截图:

correct codes

这是我得到的输出:

wrong codes

你能帮我纠正我的代码吗?可以完成所需的行为(标记为粗体)?

编辑:没关系我在这个帮助下自己开始工作:

( tee -a < $1 $keyfile ) & spinner $!

0 个答案:

没有答案