1

ラズベリー パイに接続された GPS があり、それを使用して着信カメラからの写真にジオタグを付けようとしています。コマンド「gpsd -nND2 /dev/ttyUSB0」を発行することで、後で解析できる継続的な gps データの bash エコー出力を取得できます。ただし、平均する必要があるのは 10 個程度のデータ ポイント (10 秒間で収集) だけであり、その後 gpsd を閉じたいと考えています。

私の一般的なタイムラプス プログラムは python で書かれているので、これは私がこれまでに持っているものです:

(stdout, stderr) = Popen(["gpsd","-nND2,"/dev/ttyUSB0"], stdout=PIPE).communicate()

残念ながら、これは解析できない無制限の数のデータ ポイントを変数stdoutに出力します。出力は、終わりのない ping ルーチンによく似ています。合理的/解析可能なデータ ダンプを作成するためにデータ収集を停止するにはどうすればよいですか?

ご協力ありがとうございました。

4

2 に答える 2

3

docsによると、コンソール出力を見るのではなく、デーモンとして使用て、TCP経由で通信する必要があります。gpsd

クライアント アプリケーションは、TCP/IP ポート (デフォルトでは 2947) 経由で gpsd と通信します)。

于 2012-11-05T22:05:56.530 に答える
2

これは機能しますか?私はそれをテストしていません。

proc = Popen(["gpsd","-nND2","/dev/ttyUSB0"], stdout=PIPE)

samples = []
for _ in range(10):
    samples.append(proc.stdout.readline())

proc.terminate()
于 2012-11-05T21:54:12.727 に答える