【发布时间】:2014-11-15 17:52:01
【问题描述】:
我正在尝试运行 RFSniffer 进程以侦听传入的 433mhz 信号。
如果我运行该过程,它只会输出来自 433mhz 接收器的值。我想用 Python 读取此输出,以便执行特定操作。
我找到了很多方法来运行它并使用 Python 获取输出,但那些命令是自终止的 (ls -ial)。 RFSniffer 进程会一直运行,直到您手动停止为止。
这是我现在拥有的(不工作):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import subprocess, time, os, sys
cmd = ["sudo", "/home/pi/433Utils/RPi_utils/RFSniffer"]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1)
for line in iter(p.stdout.readline, b''):
print line,
p.stdout.close()
p.wait()
【问题讨论】:
-
您能否更具体地说明什么不起作用?是不是你只得到了命令的部分输出?当您直接运行命令时(在 Python 之外),该命令的输出是什么样的?
-
我没有得到任何输出,当我在 python 之外用完时输出是:收到 14446784 收到 14446640 收到 14446784 收到 14446784 收到 14446784
-
您也可以编辑 RFSniffer.cpp 并重新编译它,这样它就可以直接写入文件或数据库中。
标签: python linux raspberry-pi