Bash从ttyUSB0读取并发送到URL

时间:2011-02-09 07:57:28

标签: bash serial-port wget

我是一个bash新手,我正在努力将它们放在一起。

我想做的是:

1)设置端口(stty)
2)从dev / ttyUSB0读取 - 数据应该看起来像000118110000101(cat或Gawk?)
3)将读取数据设置为变量,例如DATA,并创建一个URL,例如http://domain.com/get_data.php?data= $ DATA
4)用wget加载URL?
5)等待来自ttyUSB0的更多数据(轮询或循环?)

我已经尝试过php DIO扩展功能,但不可靠,因为它因某种原因停止/启动。

任何建议都会非常感激,如果有人能建议最好的方法,我会非常满意

由于

布伦特

2 个答案:

答案 0 :(得分:7)

这就是我用的。

#Set permisions
sudo chmod o+rwx /dev/ttyUSB0


#!/bin/bash

# Port setting
stty -F /dev/ttyUSB0 cs7 cstopb -ixon raw speed 1200

# Loop
while [ 1 ]; 
do
    echo 'LOADING...'
    READ=`dd if=/dev/ttyUSB0 count=22 | sed 's/ //g'`
    echo $READ
    wget http://localhost/BASHtest/test.php?signal=$READ
    echo '[PRESS Ctrl + C TO EXIT]'
done

答案 1 :(得分:0)

对于第一步,我建议读取一个文件,然后使用od来获取八进制(尽管我看不到二进制)表示,因为标准awk不能处理NUL(我认为也是gawk )。因此,在获得字节后,您通过sed脚本将其更改为将二进制文件更改为二进制文件,使用$()(或撇号)获取输出并创建一个URL,您将其提供给wget

我能看到的唯一问题是从USB读取阻塞/非阻塞。请报告是否有一个。