2016-04-17 2 views
0

(Python 2.7.9、ラズベリーハードウェアのraspbian) シリアルポートからGPSデータを読み込んでも、入力バッファリングを無効にする方法はありません。これにより、私のデータは、あまりにも多くの時間をかけて大きな爆発的なものになります。私はこのサイトなどを検索し、オープンステートメントにさまざまな形式(バッファリング= 0、バッファリング= -1、バッファリング= 5、...)で「バッファリング」を適用しました。出力のpython:デバイスから読み込むときに入力バッファを無効にするか減らす

INPORT='/dev/ttyAMA0' 
with open(INPORT,'rb',buffering=-1) as infile: 
for INLIN in INFILE: 
    INFIELD=INLIN.split(",") 
    if INFIELD[0][0:1] == "$": 
    print datetime.datetime.now(),INFIELD[0] 

サンプル:

2016-04-17 11:59:20.469383 $GNGSA 
2016-04-17 11:59:20.471004 $GPGSV 
2016-04-17 11:59:20.472660 $GPGSV 
2016-04-17 11:59:20.475128 $GPGSV 
2016-04-17 11:59:20.475743 $GPGSV 
2016-04-17 11:59:20.477228 $GLGSV 
2016-04-17 11:59:20.478902 $GLGSV 
2016-04-17 11:59:20.480494 $GLGSV 
2016-04-17 11:59:20.481994 $GNGLL 
2016-04-17 11:59:20.483569 $GNRMC 
2016-04-17 11:59:20.484283 $GNVTG 
2016-04-17 11:59:33.681551 $GNGGA 
2016-04-17 11:59:33.682010 $GNGSA 
2016-04-17 11:59:33.682357 $GNGSA 
2016-04-17 11:59:33.682693 $GPGSV 
2016-04-17 11:59:33.683025 $GPGSV 
2016-04-17 11:59:33.683359 $GPGSV 
2016-04-17 11:59:33.683680 $GPGSV 
2016-04-17 11:59:33.684017 $GLGSV 
2016-04-17 11:59:33.684467 $GLGSV 
+0

(infile.readline、 "")' –

+0

申し訳ありませんが、パドレイク、ダメ:INLINのITER用(infile.readline、 ""): ^ にSyntaxError:無効な構文 –

+0

申し訳ありませんでしたin it in it in(infile.readline、 ")' –

答えて

1
with open(INPORT,'rb',buffering=-1) as infile: 
for INLIN in iter(infile.readline,""): 
    INFIELD=INLIN.split(",") 
    if INFIELD[0] == "$GPRMC" or INFIELD[0] == "$GNRMC": 
    print datetime.datetime.now(),INLIN 

(提案されるように)完全にトリックを行います - パドレイグに多くの感謝を!あなたはINLINのITERのために `試すことができます

2016-04-17 12:59:23.119878 $GNRMC,125923.00,A,5058.48999,N,00437.42029,E,0.050,,170416,,,D*65 
2016-04-17 12:59:24.119874 $GNRMC,125924.00,A,5058.48998,N,00437.42032,E,0.066,,170416,,,D*6C 
2016-04-17 12:59:25.119593 $GNRMC,125925.00,A,5058.48999,N,00437.42034,E,0.070,,170416,,,D*6D 
2016-04-17 12:59:26.121776 $GNRMC,125926.00,A,5058.49001,N,00437.42033,E,0.082,,170416,,,D*6D 
2016-04-17 12:59:27.119076 $GNRMC,125927.00,A,5058.49002,N,00437.42033,E,0.025,,170416,,,D*62 
2016-04-17 12:59:28.119765 $GNRMC,125928.00,A,5058.49003,N,00437.42035,E,0.113,,170416,,,D*6E 
関連する問題