我有一个gps连接到我的覆盆子pi,我正试图用它来传入来自相机的照片。通过发出命令“gpsd -nND2 / dev / ttyUSB0”,我可以得到连续gps数据的bash echo输出,以后可以解析。然而,我只需要平均10个数据点(在10秒内收集),并希望在此之后关闭gpsd。
我的一般游戏中时光倒流程序是用python编写的,所以这就是我到目前为止所做的:
(stdout, stderr) = Popen(["gpsd","-nND2,"/dev/ttyUSB0"], stdout=PIPE).communicate()
不幸的是,这会输出到变量 stdout 无限数量的数据点,我无法解析。输出很像一个永无止境的ping例程。如何停止数据收集以进行合理/可解析的数据转储?
感谢您的帮助。
答案 0 :(得分:3)
根据the docs,您应该不查看控制台输出,而是使用gpsd
作为 d aemon,进行通信它通过TCP:
客户端应用程序默认情况下将通过TCP / IP端口2947与gpsd通信。
答案 1 :(得分:2)
这有用吗?我没有测试过它。
proc = Popen(["gpsd","-nND2","/dev/ttyUSB0"], stdout=PIPE)
samples = []
for _ in range(10):
samples.append(proc.stdout.readline())
proc.terminate()